<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Programmation Réseaux :: Teknolabs</title>
    <link>https://teknolabs.net/courses/python/programmation-reseaux/index.html</link>
    <description>Download the video Module 1 : Fondations DevOps – Versioning et collaboration avec Git &amp; GitHub Partie théorique Pourquoi versionner : traçabilité, retour arrière, travail d’équipe. VCS centralisé vs distribué. Modèle interne de Git : commits, arbre, blobs, graphe (DAG), références et HEAD. Les trois zones : working directory, index (staging), dépôt. Local vs distant : remote, origin/upstream, clone, fetch vs pull, push, fork. Branches et stratégies de branching : GitHub Flow, GitFlow, trunk-based. Intégration des changements : merge (fast-forward, 3-way) vs rebase, origine des conflits. Qualité de l’historique : commits atomiques, Conventional Commits, tags et versionnement sémantique. Collaboration sur GitHub : issues, labels, milestones, Pull Requests, revue de code, CODEOWNERS. Gouvernance et sécurité : protection de branches (rulesets), status checks obligatoires, commits signés, gestion des secrets (.gitignore, secret scanning). Travaux pratiques TP 1 : Git en local – Cycle de vie d’un dépôt Initialisation, staging, commits, lecture de l’historique (log, diff, show), annulation (restore, reset, revert) et .gitignore. Fil rouge : versionner des fichiers de configuration d’équipements réseau (exports MikroTik, configs Cisco). TP 2 : Branches, merge, rebase et résolution de conflits Feature branches, merge fast-forward et 3-way, rebase, résolution d’un conflit sur un fichier de configuration, stash, cherry-pick et tags. TP 3 : Dépôts distants avec GitHub – Clone, push, fork et issues Gestion des remotes, fetch/pull/push, authentification SSH, fork et synchronisation avec upstream. Suivi du travail avec issues, labels, milestones et GitHub Projects. TP 4 : Pull Requests, revue de code et protection de branches Workflow d’équipe complet en binôme : PR avec templates, revues croisées, CODEOWNERS. Règles de protection de main : reviews obligatoires, status checks, historique linéaire, commits signés, interdiction du force-push. Module 2 : Fondamentaux des API REST et de l’embarqué Partie théorique De la CLI manuelle à l’API : limites de la configuration à la main, plan de gestion des équipements. Principes REST : ressources, verbes HTTP ↔ CRUD, codes de statut, stateless, idempotence. Formats et protocoles : JSON, JSON-RPC (ubus, eAPI) vs REST. Authentification (Basic, token, clé API), TLS et validation des certificats. Bonnes pratiques client : sessions, timeouts, gestion d’erreurs. Secrets hors du dépôt (.env, lien avec le Module 1). Travaux pratiques TP 5 : MikroTik CHR (v7) – Introduction à l’API RESTful Automatisation des opérations CRUD (adressage IP, interfaces, routage statique) en Python avec la bibliothèque requests. TP 6 : Fortinet FortiGate (FortiOS VM) – Sécurité Programmatique Création dynamique d’objets réseaux, de VIPs (Virtual IPs) et de règles de filtrage via la FortiOS REST API. TP 7 : OPNsense – Provisioning Zero-Touch Automatisation du déploiement des services d’infrastructure (serveur DHCP, règles NAT) via l’API REST native. TP 8 : OpenWrt – L’écosystème IoT et Edge Découverte du micro-bus système : interrogation des interfaces et modification de la configuration réseau via des requêtes JSON-RPC (ubus) en Python. Module 3 : Standards industriels (YANG) et approche Cloud/SDN Partie théorique Programmabilité réseau : plans de gestion, de contrôle et de données. Limites de SNMP et de la CLI. Modélisation des données avec YANG : modules, containers, lists, leafs. Modèles natifs vs OpenConfig. NETCONF : datastores (running, candidate), opérations (get-config, edit-config, commit), transport SSH, encodage XML. RESTCONF : correspondance avec YANG, encodage JSON, différences avec NETCONF. Télémétrie : pull vs push (streaming). Notion de SDN : contrôleur, interfaces northbound/southbound. Travaux pratiques TP 9 : Cisco IOS-XE – Modélisation YANG et RESTCONF Exploration des modèles de données YANG et modification de la configuration (OSPF, interfaces loopback) via des requêtes HTTP avec charge utile JSON. TP 10 : Cisco IOS-XE – Télémétrie et NETCONF Interaction avec le routeur via des flux XML encapsulés sur SSH en utilisant la bibliothèque Python ncclient. TP 11 : Arista vEOS – Administration Cloud Networking Prise en main de l’interface JSON-RPC HTTPs (eAPI) d’Arista et automatisation d’une fabric réseau avec la bibliothèque officielle pyeapi. Module 4 : Approche NetDevOps et Orchestration globale Partie théorique Infrastructure as Code appliquée au réseau : approche déclarative vs impérative. État désiré, idempotence et dérive de configuration (config drift). Source de vérité et inventaire ; templating (YAML, Jinja2). Automatiser sans API moderne : SSH/CLI, parsing, limites du screen scraping. Orchestration multi-constructeurs : exécution parallèle, modèle de tâches et d’inventaire (Nornir). Travaux pratiques TP 12 : VyOS – Infrastructure as Code et Routage Déclaratif Génération de payloads JSON pour configurer un environnement de routage dynamique (BGP) via l’API HTTP intégrée de VyOS. TP 13 : Netmiko – Le pont vers le réseau Legacy Automatisation CLI via SSH : extraction (scraping) d’états opérationnels et configuration conditionnelle pour les équipements dépourvus d’API modernes. TP 14 : Nornir – Orchestration Multi-Constructeurs Création d’un script d’orchestration global en pur Python pour exécuter des tâches en parallèle sur une topologie hétérogène (par exemple : collecte d’inventaire simultanée sur MikroTik, VyOS et Cisco). Module 5 : NetSecDevOps et Sécurité Automatisée Partie théorique DevSecOps appliqué au réseau : shift-left, étapes d’un pipeline CI/CD (lint, validation, tests, déploiement). Firewall-as-Code : tests de non-régression sur les flux, revue et déploiement contrôlés (lien avec les PR et les status checks du Module 1). Zero Trust : principes, ZTNA vs VPN classique, réseau overlay WireGuard, moindre privilège. SOAR : cycle détection → décision → réponse, playbooks, webhooks, risque de faux positifs. Micro-segmentation Kubernetes : NetworkPolicy, default deny, sélecteurs de labels, rôle du CNI. Compliance-as-Code : benchmarks de sécurité (CIS), audit continu, rapports automatisés. Travaux pratiques TP 15 : CI/CD &amp; Firewall-as-Code (FaC) avec FortiGate Intégration de la configuration d’un pare-feu dans un pipeline DevOps (GitLab CI, GitHub Actions ou Jenkins). Automatisation de la validation syntaxique, exécution de tests de non-régression sur les ouvertures de flux réseau, et déploiement continu des règles via l’API REST FortiOS. TP 16 : Déploiement Zero Trust Network Access (ZTNA) avec NetBird Automatisation d’une architecture réseau overlay sécurisée (basée sur WireGuard). Utilisation des API REST (par exemple, avec NetBird) pour provisionner dynamiquement des pairs, gérer les clés de routage, et appliquer des politiques de contrôle d’accès strictes entre les serveurs. TP 17 : Réponse Automatisée aux Incidents (Auto-Remédiation) Création d’un script Python agissant comme un outil SOAR (Security Orchestration, Automation, and Response). Écoute d’alertes de sécurité réseau (via un webhook depuis un IDS/IPS) et interaction avec l’API REST d’OPNsense pour blacklister ou isoler dynamiquement une adresse IP compromise. TP 18 : Micro-segmentation et Sécurité des Réseaux Kubernetes Automatisation de la sécurité réseau pour les environnements cloud-native. Déploiement programmatique de Network Policies Kubernetes en Python pour restreindre les flux de trafic entrants et sortants, isolant ainsi efficacement les communications inter-microservices. TP 19 : Compliance-as-Code (Audit Réseau Continu) Développement d’un scanner d’audit en Python qui interroge régulièrement l’API d’un équipement (MikroTik, Cisco) pour vérifier que la configuration respecte les normes de sécurité de l’entreprise : détection des services d’administration exposés sur internet, vérification de la robustesse des tunnels IPsec, et génération d’un rapport automatisé.</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://teknolabs.net/courses/python/programmation-reseaux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Module 1 : Versioning et collaboration avec Git &amp; GitHub</title>
      <link>https://teknolabs.net/courses/python/programmation-reseaux/module-1/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://teknolabs.net/courses/python/programmation-reseaux/module-1/index.html</guid>
      <description>Le versioning Définition Un système de gestion de versions (VCS) :&#xA;enregistre l’historique des modifications d’un projet, permet de revenir à un état antérieur, permet à plusieurs personnes de travailler sur le même projet. Centralisé vs distribué Centralisé (SVN) : un seul dépôt sur un serveur, pas de travail hors ligne. Distribué (Git) : chaque poste possède une copie complète du dépôt (historique inclus). Git : les trois zones Working directory --git add--&gt; Index (staging) --git commit--&gt; Dépôt local Working directory → Index → Dépôt local → Remote, selon la commande utilisée.</description>
    </item>
    <item>
      <title>Module 2 : Fondamentaux des API REST et de l&#39;embarqué</title>
      <link>https://teknolabs.net/courses/python/programmation-reseaux/module-2/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://teknolabs.net/courses/python/programmation-reseaux/module-2/index.html</guid>
      <description>De la CLI à l’API Limites de la configuration manuelle pas de traçabilité (lien avec le Module 1 : Git versionne, l’API applique), pas de reproductibilité ni de mise à l’échelle, risque d’erreur humaine élevé. Plan de gestion Plan de management : accès à l’équipement pour le configurer (CLI, API, GUI), Plan de contrôle : décisions de routage/filtrage, Plan de données : trafic réel traversant l’équipement. L’automatisation agit sur le plan de management.</description>
    </item>
    <item>
      <title>Module 3 : Standards industriels (YANG) et approche Cloud/SDN</title>
      <link>https://teknolabs.net/courses/python/programmation-reseaux/module-3/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://teknolabs.net/courses/python/programmation-reseaux/module-3/index.html</guid>
      <description>Limites des approches vues au Module 2 les API REST/JSON-RPC propriétaires (MikroTik, FortiOS, ubus…) diffèrent d’un constructeur à l’autre, pas de modèle de données commun → chaque intégration est à refaire. L’industrie réseau a normalisé une partie de cela avec YANG, NETCONF et RESTCONF.&#xA;Modélisation des données avec YANG Définition YANG (Yet Another Next Generation) est un langage de modélisation de données qui décrit la structure de la configuration et de l’état d’un équipement, indépendamment du protocole de transport.</description>
    </item>
    <item>
      <title>Module 4 : Approche NetDevOps et Orchestration globale</title>
      <link>https://teknolabs.net/courses/python/programmation-reseaux/module-4/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://teknolabs.net/courses/python/programmation-reseaux/module-4/index.html</guid>
      <description>Infrastructure as Code appliquée au réseau Déclaratif vs impératif Impératif : suite d’actions ordonnées. Déclaratif : un état désiré, l’outil calcule les actions.&#xA;Impératif : décrire la suite d’actions à exécuter (« crée cette interface, puis ajoute cette route »). Déclaratif : décrire l’état final souhaité ; l’outil détermine les actions nécessaires pour l’atteindre. # Déclaratif : l&#39;état souhaité interfaces: eth0: address: 192.168.10.1/24 Les TP précédents (Modules 2 et 3) étaient majoritairement impératifs (appels séquentiels POST/PATCH). Ce module introduit une logique déclarative.</description>
    </item>
    <item>
      <title>Module 5 : NetSecDevOps et Sécurité Automatisée</title>
      <link>https://teknolabs.net/courses/python/programmation-reseaux/module-5/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://teknolabs.net/courses/python/programmation-reseaux/module-5/index.html</guid>
      <description>DevSecOps appliqué au réseau Définition Intégrer la sécurité à chaque étape du cycle DevOps, plutôt qu’en contrôle final avant mise en production.&#xA;Shift-left Déplacer les contrôles de sécurité le plus tôt possible dans le pipeline (dès le commit), pour détecter un problème avant le déploiement plutôt qu’après.&#xA;Étapes типiques d’un pipeline CI/CD sécurisé Commit --&gt; Lint --&gt; Validation --&gt; Tests --&gt; Déploiement --&gt; Monitoring Les contrôles de sécurité (lint, validation, tests) sont poussés le plus tôt possible dans le pipeline.</description>
    </item>
  </channel>
</rss>