Lab VLAN : VLAN et routage inter-VLAN sur une VM Ubuntu dans le navigateur

Ce lab donne à chaque élève un petit réseau de bureau à diviser. Cinq machines sont construites dans l’unique VM Ubuntu de l’élève : un commutateur, un routeur, une machine et un serveur qui appartiennent à un même VLAN et une seconde machine qui appartient à un autre. Au départ tout est branché et rien n’est configuré, donc tout forme un seul réseau. L’élève crée deux VLAN sur le commutateur, les relie de nouveau par le routeur avec un seul câble, et ajoute une règle qui tient un VLAN à l’écart du serveur.

Rien n’est installé sur l’ordinateur de l’élève et aucun commutateur ni routeur n’est nécessaire : chaque machine est un espace de noms réseau, le commutateur est un pont Linux avec filtrage VLAN, et les commandes sont les vraies, bridge vlan, ip link et nft.

Ce que les élèves apprennent

Ce qu’est un VLAN et pourquoi un commutateur en a besoin : donner un VLAN à chaque port du commutateur, un port d’accès sans étiquette pour une machine, et faire passer les deux VLAN étiquetés sur un port trunk vers le routeur, avec la commande bridge vlan ; créer sur le routeur une sous-interface 802.1Q par VLAN avec ip link, lui donner l’adresse de passerelle attendue par ses machines et activer le transfert, c’est-à-dire le routage inter-VLAN sur un routeur sur un bras ; et écrire sur le routeur une règle nft qui tient un VLAN à l’écart d’un serveur et laisse tout le reste fonctionner. Ils testent avec ping, arping, traceroute et tcpdump, et écrivent tout dans deux fichiers pour que cela revienne après un redémarrage.

La topologie

Le commutateur sw a quatre ports. La machine h10 et le serveur srv appartiennent au VLAN 10, sur 10.10.0.0/24, et la machine h20 au VLAN 20, sur 10.20.0.0/24. Le routeur r1 a un seul câble, vers le quatrième port, et pas encore d’adresse. Au départ tous les ports sont dans le VLAN 1 par défaut : h20 joint donc encore srv directement à travers le commutateur, et personne ne joint une passerelle. Le travail de l’élève va dans deux fichiers, l’un exécuté dans le commutateur et l’autre dans le routeur à chaque démarrage du lab. Les adresses sont dans le README que le lab laisse dans le dossier personnel, qui dit quoi faire et ne donne aucune réponse.

Le lancer dans votre navigateur

Les labs VM se donnent comme une tâche de lab dans un module, et l’exemple se trouve sur la page du lab. La machine est petite : un CPU, 1 Go de mémoire et 10 Go de disque.

  1. Ajouter le lab. Dans un module que vous enseignez, ajoutez une tâche et choisissez la carte Lab VM Ubuntu. La page affiche une courte description de la machine au lieu d’un fichier compose.
  2. Partir de l’exemple. La page propose des labs prêts à l’emploi pour démarrer. Choisissez VLANs et routage inter-VLAN. Utiliser un exemple remplace le texte, et Annuler rend le vôtre.
  3. Publier et démarrer votre propre copie. Publiez, puis Démarrez. Le script setup du lab installe iproute2, nftables et quelques petits outils réseau depuis l’archive d’Ubuntu, et écrit la commande vlanlab, deux fichiers de configuration vides et le README, au premier démarrage de la VM, en quelques secondes.
  4. Ouvrir le terminal. Ouvrez son terminal et lisez README.md dans le dossier personnel : il dit ce qu’il faut construire et ne donne aucune réponse.

Une leçon de base sur ce lab

VLAN Basics est une petite leçon donnée dans ce lab, qui est une VM Ubuntu : chaque étape est expliquée et a un bouton Exécuter qui tape sa commande dans le terminal de la machine et montre ce qu’elle a affiché. L’élève découvre les machines et voit tous les ports du commutateur dans le VLAN 1, demande srv depuis h20 avec arping et obtient une réponse directement à travers le commutateur, envoie un ping vers l’autre réseau et n’obtient rien, et constate que le routeur n’a pas encore d’adresse.

La leçon regarde autour d’elle et laisse à l’élève la tâche propre au lab, construire les VLAN, donc elle ne donne aucune réponse. Elle est volontairement petite : elle montre à un enseignant ce qu’est une leçon donnée dans un lab, et le lab fait le reste. Copiez-la dans un module à vous pour la modifier.

Comment il est noté

Le lab a une vérification. Elle s’exécute sur une copie de la machine enregistrée après un démarrage à neuf, charge les deux fichiers de l’élève comme le fait le démarrage, puis teste ce qui se passe réellement entre les machines : les machines d’un même VLAN se répondent directement et celles de VLAN différents non, le routeur a une sous-interface 802.1Q et l’adresse de passerelle de chaque VLAN et transfère, h10 et h20 se joignent à travers le routeur, et h20 ne joint srv par aucun port ni protocole alors que h10 le peut encore. Une règle qui coupe le VLAN 20 de tout ne réussit pas, pas plus qu’une règle posée sur le serveur, une traduction d’adresses, un filtrage VLAN désactivé ou des commandes tapées à la main et jamais enregistrées dans les fichiers. La première ligne de ce que la vérification a affiché dit pourquoi.

  1. Le distribuer. Attribuez le lab comme n’importe quelle tâche, avec une échéance si vous le souhaitez. Chaque élève reçoit une VM à lui, conservée d’une séance à l’autre.
  2. Lancer la vérification. Sur la ligne d’un élève dans la liste de la classe, appuyez sur Lancer la vérification. Elle démarre une copie de sa machine enregistrée, qui n’est pas sauvegardée ensuite, exécute le script de vérification du lab en root et indique s’il a réussi, ce qu’il a affiché et quand. L’élève n’est pas informé du résultat.
  3. Noter. Lisez la première ligne de ce que la vérification a affiché : elle dit ce qui ne va pas, par exemple une machine qui joint encore un autre VLAN directement à travers le commutateur ou un ping qui n’est pas passé par le routeur. Renvoyez le travail avec un motif s’il faut aller plus loin.

La définition sur GitHub

Le fichier est la définition complète du lab, le même texte que celui exécuté par la plateforme : taille, script setup, outil de topologie, README et vérification. Copiez-le et changez les adresses, ou ajoutez un VLAN, pour faire un lab plus long.

Questions fréquentes

Le lab demande-t-il un commutateur administrable, un routeur ou une licence ?
Non. Le commutateur est un pont Linux avec filtrage VLAN et le routeur est Linux qui transfère des paquets, tous deux dans le noyau d’Ubuntu. Les outils sont installés depuis l’archive d’Ubuntu au démarrage de la VM de l’élève, et nous ne distribuons rien d’eux.
Un élève peut-il joindre le vrai Internet depuis le lab ?
Non. La VM joint l’archive d’Ubuntu, PyPI, npm et GitHub et rien d’autre, et le réseau entre les cinq machines est virtuel et se trouve dans la VM. Les machines sont des espaces de noms réseau et non des ordinateurs séparés.
Que construit l’élève dans le lab VLAN ?
Deux VLAN sur le commutateur, avec un port d’accès non étiqueté pour chaque hôte et un trunk étiqueté vers le routeur, puis une sous-interface 802.1Q par VLAN sur le routeur, ce qui est du routage inter-VLAN avec un routeur sur un bras. Enfin, une règle nft sur le routeur tient le VLAN 20 à l’écart du serveur.