Un réseau complet sur un seul ordinateur
Mininet est un outil qui construit un réseau de test complet sur une seule machine : des hôtes, des commutateurs, des liaisons et un contrôleur. Il permet d’essayer un réseau défini par logiciel sans acheter un seul câble.
Un enseignant veut que 30 étudiants testent chacun un réseau de quatre salles. Avec Mininet, chacun le construit en une commande, le teste, puis le détruit.
À la fin de cette leçon
Remarque
Je peux construire un petit réseau de test et vérifier que ses machines se joignent.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Mininet | un outil qui construit un réseau de test sur une machine | |
| Hôte | une machine simulée, reliée au réseau | h1 |
| Liaison | un câble simulé entre deux éléments | |
| Topologie | la forme du réseau : qui est relié à qui | |
| pingall | le test où chaque hôte envoie un ping à tous les autres | |
| Perte | un paquet envoyé qui n’arrive pas |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Un réseau virtuel tient sur une machine
Mininet donne à chaque hôte son propre espace réseau : il a son adresse et ses programmes, comme une vraie machine. Les liaisons sont des câbles virtuels. Le commutateur est un Open vSwitch, le même que dans votre labo.
Tout reste dans la machine du labo. Rien ne sort sur un vrai réseau.
Une topologie dit qui est relié à qui
On choisit la forme du réseau avec l’option --topo. Trois formes suffisent pour commencer.
single,3 met trois hôtes sur un seul commutateur. linear,4 met quatre commutateurs en ligne, chacun avec un hôte. tree,depth=2,fanout=2 fait un arbre : un commutateur en haut, deux en dessous, et deux hôtes sous chacun.
Trois réseaux à construire et à tester
Chaque commande ci-dessous construit un réseau, lance un pingall, puis démonte tout. Elle dure quelques secondes. Un avertissement sur les limites de ressources peut s’afficher, il est sans gravité.
Regardez la ligne qui commence par *** Results:. Elle dit combien de pings ont été perdus.
Un commutateur, trois hôtes
sudo mn --mac --topo single,3 --test pingallAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Quatre commutateurs en ligne
sudo mn --mac --topo linear,4 --test pingallAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Un arbre à deux niveaux
sudo mn --mac --topo tree,depth=2,fanout=2 --test pingallAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Exemple travaillé : les trois réseaux construits
| Topologie | Hôtes | Commutateurs | Liaisons | Pings reçus |
|---|---|---|---|---|
| single,3 | 3 | 1 | 3 | 6 sur 6 |
| linear,4 | 4 | 4 | 7 | 12 sur 12 |
| tree,depth=2,fanout=2 | 4 | 3 | 6 | 12 sur 12 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Combien de pings un pingall envoie-t-il ?
Chaque hôte envoie un ping à chacun des autres hôtes. Avec 4 hôtes, un hôte a 3 cibles, donc 4 fois 3 font 12 pings.
Le sens compte : de h1 vers h2 et de h2 vers h1 sont deux pings différents. Le résultat se lit en pourcentage : 0% dropped veut dire qu’aucun ping n’a été perdu.
Exemple travaillé : pings selon les hôtes
| Hôtes | Cibles par hôte | Pings envoyés |
|---|---|---|
| 2 | 1 | 2 |
| 3 | 2 | 6 |
| 4 | 3 | 12 |
| 5 | 4 | 20 |
| 10 | 9 | 90 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Erreur fréquente
Attention
Beaucoup de gens pensent qu’un pingall essaie une fois chaque paire d’hôtes. Il teste chaque sens : une paire donne deux pings. Avec 4 hôtes, il y a 6 paires et 12 pings. Comptez les pings, pas les paires.
Nettoyer avant de revenir au labo
Mininet démonte son réseau tout seul à la fin d’un test. Si une session s’est arrêtée de travers, la commande sudo mn -c efface ce qui traîne.
Elle supprime aussi tous les commutateurs Open vSwitch, br0 compris. Pour retrouver le commutateur du labo, lancez ensuite sudo sdnlab flows.