Aller au contenu
Mathis Vila

projets but3 r511-tp3-mininet-sdn

BUT3 · R5.ROM.11 (R511) Terminé

Mininet et SDN OpenFlow : piloter un réseau par ses tables de flux

J'ai piloté un réseau émulé sous Mininet sans contrôleur, en rétablissant la connectivité protocole par protocole avec des règles de flux OpenFlow.

Année
BUT3 · S5
Module
R5.ROM.11 (R511) Virtualisation et automatisation des réseaux
Type
TP
Date
15/09/2026
Équipe
seul
Mon rôle
Auteur unique : installation, manipulations, scripts Python et analyse

Contexte et objectif

Ce TP porte sur l'émulation de réseaux et sur le paradigme SDN (Software Defined Networking). L'objectif était double : monter un réseau virtuel réaliste avec Mininet, puis exploiter le protocole OpenFlow pour piloter explicitement le comportement de commutateurs virtuels, d'abord à la main, ensuite par automatisation en Python.

Ce que j'ai réalisé

  • J'ai installé Mininet et Open vSwitch sur une VM Debian 13 hébergée sous Hyper-V.
  • J'ai lancé une topologie en arbre de trois commutateurs OpenFlow sans contrôleur, et constaté qu'aucune trame ne circulait (0 paquet reçu sur 12).
  • J'ai rétabli la connectivité protocole par protocole en ajoutant des règles de flux : d'abord ARP, puis ICMP.
  • J'ai interprété une règle de filtrage de niveau 4 (accès à un serveur de base de données depuis un sous-réseau client).
  • J'ai adapté et corrigé un script Python (à partir de l'exemple de l'énoncé) qui reconstruit la topologie et installe automatiquement les flux sur les trois commutateurs.
  • J'ai mis en place un routeur virtuel entre deux sous-réseaux et prouvé le routage par l'observation du TTL.

Difficultés rencontrées et solutions

  • Le script d'installation officiel, figé en 2023, échouait à trois reprises sur Debian 13 (sudo absent, paquet renommé, PEP 668 qui interdit les installations globales par pip) : j'ai abandonné le script au profit des paquets de la distribution.
  • Un contrôleur de test, actif par défaut, aurait faussé la démonstration : je l'ai désactivé.
  • Mes scripts importaient les sources clonées au lieu de la bibliothèque installée : je les ai placés dans un répertoire distinct.
  • Le pont cité par l'énoncé n'existait pas dans la topologie : j'ai appliqué la règle sur le commutateur réellement concerné.

Résultats

  • Passage de 100 % de perte à 0 % (12 paquets reçus sur 12) sur une topologie identique, par simple installation de règles de flux.
  • Compteurs de flux vérifiés au paquet près (42 octets par trame ARP, 98 octets par paquet ICMP).
  • Routage inter-sous-réseaux validé : TTL de 64 en local, 63 après traversée du routeur.

Ce que j'en retiens

Un commutateur OpenFlow n'a aucune intelligence propre : son plan de données n'exécute que ce que le plan de contrôle a inscrit dans ses tables. Cette inertie est aussi une garantie de sécurité, puisque rien n'est transmis sans décision explicite. J'en retiens surtout une méthode de diagnostic transposable à un réseau de production : distinguer un rejet par le commutateur d'un échec de résolution local, et confronter les compteurs au trafic attendu.

Technologies

  • Mininet 2.3
  • Open vSwitch 3.5
  • OpenFlow 1.3
  • ovs-ofctl
  • Python 3
  • espaces de noms réseau
  • Debian 13
  • Hyper-V
  • ARP
  • ICMP

En images

Sans règle de flux : 0 paquet reçu sur 12, table ARP incomplète
Sans règle de flux : 0 paquet reçu sur 12, table ARP incomplète
Règle ARP seule : la résolution d'adresse aboutit, le ping échoue encore
Règle ARP seule : la résolution d'adresse aboutit, le ping échoue encore
Table de flux d'un commutateur après installation des règles
Table de flux d'un commutateur après installation des règles
Script Python : reconstruction de la topologie et installation automatique des flux
Script Python : reconstruction de la topologie et installation automatique des flux
Connectivité totale rétablie : 12 paquets reçus sur 12
Connectivité totale rétablie : 12 paquets reçus sur 12
Routage virtuel : le TTL passe de 64 à 63 quand le routeur est traversé
Routage virtuel : le TTL passe de 64 à 63 quand le routeur est traversé
SDN : topologie en arbre et effet des règles de flux
SDN : topologie en arbre et effet des règles de flux