Le réseau local segmenté
Ce que ce chapitre apporte
- Expliquer ce qu'un VLAN sépare, et ce qu'il faut pour franchir la séparation.
- Distinguer un port d'accès d'un lien d'agrégation, et dire pourquoi l'étiquetage est nécessaire.
- Reconnaître les pannes causées par un VLAN natif discordant.
- Expliquer pourquoi une boucle entre commutateurs ne ralentit pas le réseau mais l'effondre.
- Décrire le calcul de l'arbre couvrant en trois règles.
- Justifier qu'un lien bloqué n'est pas un lien inutile.
Un commutateur, laissé à lui-même, fait deux choses qui posent problème dès que le réseau grandit. Il livre à tout le monde ce qu'il ne connaît pas encore, si bien que rien n'est séparé de rien. Et il recopie fidèlement les diffusions, ce qui rend une simple boucle de câblage capable de mettre à genoux un réseau entier en quelques secondes.
Les deux mécanismes de ce chapitre traitent chacun l'un de ces problèmes. Les VLAN découpent un commutateur en plusieurs réseaux qui s'ignorent. L'arbre couvrant désactive juste assez de ports pour qu'aucune boucle ne subsiste, tout en gardant les câbles en réserve.
Séparer sans multiplier les équipements
Un VLAN regroupe des ports d'un ou plusieurs commutateurs en un réseau qui se comporte comme s'il était seul sur un équipement dédié. Aucune trame, aucune diffusion, ne franchit la frontière.
La formule à retenir est plus dure que la définition : séparer, c'est interdire. Deux machines branchées sur deux prises voisines du même commutateur cessent de communiquer si leurs ports ne portent pas le même VLAN. Aucune diffusion ne passe, donc aucune conversation ne peut même commencer.
C1
livréePC1 → PC2Gi0/1 puis Gi0/2 : même commutateur et même VLAN 10 : la trame est remise directement.
- 1 envoi aboutit sur 2, pour 3 ports d'accès répartis en 2 VLAN.
- 1 est séparé par les VLAN : les machines sont branchées au même équipement et ne s'entendent pas.
C'est exactement ce qu'on attend d'un découpage, et c'est aussi ce qui rend le diagnostic déroutant : le câble est bon, le voyant est vert, la machine a une adresse, et rien ne répond. La configuration des ports est invisible depuis le poste.
Pour passer d'un VLAN à l'autre, il faut un routeur, au même titre qu'entre deux réseaux distants. Un VLAN correspond d'ailleurs presque toujours à un sous-réseau IP, ce qui rend le rapprochement littéral : franchir un VLAN, c'est changer de réseau.
Étendre un VLAN sur plusieurs commutateurs
Un VLAN qui s'arrêterait à un équipement n'aurait guère d'usage. Le lien entre deux commutateurs doit donc transporter les trames de tous les VLAN à la fois, et celui d'en face doit pouvoir les trier.
Un port d'accès dessert une machine et appartient à un seul VLAN. Les trames y circulent nues.
Un lien d'agrégation relie deux équipements et porte plusieurs VLAN. Chaque trame y reçoit une étiquette qui indique son VLAN, ajoutée à l'entrée et retirée à la sortie.
L'étiquette n'existe que sur le lien. La machine émettrice ne l'ajoute pas, la machine réceptrice ne la voit jamais : c'est une convention entre commutateurs, et rien d'autre.
Une exception s'y glisse, et elle coûte cher. Un VLAN par lien, appelé natif, traverse sans étiquette. À l'arrivée, une trame nue est donc rattachée au VLAN natif déclaré de l'autre côté. Tant que les deux bouts s'accordent, tout va bien.
C1
C2
livréePC1 → PC3Gi0/1 puis Gi0/24 puis C2-Gi0/24 puis C2-Gi0/1 : étiquetée 10 à l'entrée du lien, l'étiquette est retirée à la sortie.
- 1 envoi aboutit sur 2, pour 4 ports d'accès répartis en 3 VLAN.
- 1 est séparé par les VLAN : les machines sont branchées au même équipement et ne s'entendent pas.
Deux réglages du lien méritent attention. La liste des VLAN autorisés est un filtre : une trame d'un VLAN absent de la liste est jetée à l'entrée du lien, sans que rien ne soit signalé au poste émetteur. Et le VLAN natif doit être identique des deux côtés.
C1
C2
Les deux bouts n'ont pas le même VLAN natif (1 et 99) : tout ce qui traverse sans étiquette change de réseau en route, et rien ne le signale.
détournéePC1 → PC3Gi0/1 puis Gi0/24 puis C2-Gi0/24 puis C2-Gi0/1 : partie sans étiquette du VLAN natif 1, elle est rattachée au VLAN natif 99 à l'arrivée : elle a changé de réseau en route, sans qu'aucune erreur ne soit signalée.
- Aucun des 1 envois n'aboutit, pour 2 ports d'accès répartis en 3 VLAN.
- 1 change de VLAN en traversant le lien, sans qu'aucune erreur ne soit signalée nulle part. C'est la panne la plus difficile à voir, et elle vient d'un seul chiffre mal recopié.
C'est la panne la plus difficile à voir de tout le module, parce que rien n'échoue. Aucune erreur, aucun compteur, aucun voyant. Les trames arrivent, simplement pas dans le réseau prévu. Le seul moyen de la trouver est de comparer les configurations des deux bouts du lien.
Un VLAN ne sécurise que ce que la configuration dit. La séparation est réelle et repose sur le commutateur, mais elle ne survit pas à une erreur de configuration, et elle ne chiffre rien. Un port d'accès mal placé dans le VLAN d'administration donne accès à l'administration, sans qu'aucune alerte ne se déclenche.
Pourquoi une boucle est mortelle
Le raisonnement se construit à partir de ce que le chapitre 3 a établi, et sa conclusion surprend toujours.
Un commutateur inonde ce qu'il ne connaît pas. Une trame de diffusion part sur tous les ports sauf celui d'entrée. Et surtout, rien dans une trame ne compte les équipements traversés : il n'existe aucun compteur de durée de vie au niveau de la trame, contrairement au paquet IP du chapitre 6.
Une seule trame de diffusion lâchée dans un anneau de commutateurs tourne donc indéfiniment. Pire, elle se duplique à chaque équipement qui la recopie sur plusieurs ports. Le nombre de copies croît, le réseau sature en quelques secondes, et les tables d'adresses deviennent incohérentes parce que la même adresse source apparaît alternativement sur plusieurs ports.
Le symptôme ne ressemble pas à une panne de câblage. Tout s'arrête d'un coup, y compris les machines qui ne communiquaient avec personne, et l'équipement fautif fonctionne parfaitement : il ne fait qu'appliquer les règles. C'est ce qui rend le diagnostic difficile pour qui n'a pas déjà rencontré le cas.
L'arbre couvrant
La solution ne consiste pas à interdire les boucles, puisqu'on les câble exprès pour la redondance, mais à en désactiver juste assez de ports pour qu'il n'en reste aucune. Ce qui subsiste est un arbre : tout le monde est relié, aucun cycle ne demeure.
Le calcul se fait sans chef désigné, en trois règles.
- Élire une racine. Le commutateur de plus petite priorité l'emporte, l'adresse départageant à priorité égale.
- Chaque commutateur garde un port racine, celui par lequel la racine lui coûte le moins cher. Le coût dépend du débit du lien, pas de sa longueur ni du nombre de sauts.
- Chaque segment garde un seul bout ouvert, celui du commutateur le moins cher vers la racine. Tous les autres ports se bloquent.
- 3 commutateurs et 3 liens : il en faut exactement 2 pour relier tout le monde sans boucle, donc 1 est désactivé. 2 restent en service.
- C1 est élu racine : toutes les priorités étant égales, c'est l'identifiant qui a départagé. Le reste du calcul en découle entièrement.
- Un lien bloqué n'est pas un lien perdu : il reprend du service dès qu'un autre tombe, et c'est précisément la raison pour laquelle on l'a câblé.
La vue « câblage » montre le triangle tel qu'il est branché, avec sa boucle. La vue « arbre calculé » montre le même triangle après le calcul : un port fermé, plus de cycle, et tout le monde toujours relié.
Le rôle du coût se voit mieux dès que les débits diffèrent.
- 4 commutateurs et 5 liens : il en faut exactement 3 pour relier tout le monde sans boucle, donc 2 sont désactivés. 3 restent en service.
- C1 est élu racine : c'est la plus petite priorité, et elle prime sur tout le reste. Le reste du calcul en découle entièrement.
- C3 a pourtant un lien direct vers la racine, et ne l'emprunte pas : en passant par C2, il l'atteint à 8. Le coût suit le débit, jamais le nombre de sauts.
- Un lien bloqué n'est pas un lien perdu : il reprend du service dès qu'un autre tombe, et c'est précisément la raison pour laquelle on l'a câblé.
Le résultat n'est pas celui qu'on dessinerait à la main. C3 a un câble qui va droit à la racine et passe pourtant par C2 : le lien direct est trop lent, et deux liens rapides en série reviennent moins cher qu'un seul lien lent. Le protocole ne cherche pas le chemin le plus court, il cherche le moins coûteux.
Un lien bloqué n'est pas un lien perdu. Il reste physiquement branché, et reprend du service en quelques secondes ou quelques dizaines de secondes si un autre lien tombe. C'est précisément la raison pour laquelle on l'a câblé : le protocole ne supprime pas la redondance, il l'empêche de nuire tant qu'elle ne sert pas.
Deux conséquences pratiques en découlent. Choisir la racine explicitement, en abaissant la priorité de l'équipement central, évite qu'elle ne se retrouve sur un petit commutateur de bureau, ce qui allongerait tous les chemins. Et activer une protection sur les ports d'accès, qui bloque un port si un équipement s'y annonce comme commutateur, écarte le cas le plus fréquent : quelqu'un qui rebranche les deux bouts d'un même câble dans deux prises murales.
Exercices type
Exercice 1 : deux postes sont branchés sur le même commutateur, ont des adresses du même réseau, et ne se joignent pas. Que vérifier ?
Afficher la solution
Le VLAN de chaque port, avant toute autre chose.
Deux ports de VLAN différents séparent totalement les machines, y compris sur le même équipement. Les adresses du même réseau ne changent rien à l'affaire : elles rendent même la panne plus trompeuse, puisque chaque poste croit son correspondant voisin et ne passera jamais par le routeur.
C'est une configuration cohérente du point de vue du commutateur et incohérente du point de vue de l'adressage. La correction consiste à décider lequel des deux est faux, le VLAN ou le plan d'adressage.
Exercice 2 : après un changement, le VLAN 20 ne traverse plus le lien entre deux commutateurs, alors que le VLAN 10 passe toujours. Que chercher ?
Afficher la solution
La liste des VLAN autorisés sur le lien, des deux côtés.
Ce filtre est le seul mécanisme qui traite deux VLAN différemment sur un même lien. Une trame d'un VLAN absent de la liste est jetée à l'entrée, sans signalement au poste émetteur, ce qui explique qu'il ne voie qu'un silence.
L'erreur classique est d'avoir ajouté le VLAN d'un seul côté. Le lien fonctionne alors dans un sens et pas dans l'autre, ou pas du tout selon l'ordre des échanges.
Exercice 3 : des trames d'un VLAN se retrouvent dans un autre, sans qu'aucune erreur n'apparaisse nulle part. Quelle est la cause la plus probable ?
Afficher la solution
Un VLAN natif discordant entre les deux bouts du lien d'agrégation.
Le VLAN natif est le seul à traverser sans étiquette. Une trame nue est donc rattachée, à l'arrivée, au VLAN natif déclaré de l'autre côté. Si les deux déclarations diffèrent, la trame change de réseau en route.
Rien n'échoue, donc rien n'est signalé : les trames arrivent, simplement pas où il faut. Le seul moyen de le voir est de comparer les deux configurations.
La bonne pratique consiste à réserver le VLAN natif à un numéro qui ne sert à rien d'autre, pour qu'une discordance n'expose aucun trafic réel.
Exercice 4 : quelqu'un rebranche les deux bouts d'un câble dans deux prises murales du même bureau. Que se passe-t-il, avec et sans arbre couvrant ?
Afficher la solution
Sans arbre couvrant, une boucle est créée. La première trame de diffusion qui l'atteint y tourne indéfiniment, se duplique à chaque commutateur, et le réseau sature en quelques secondes. Les tables d'adresses deviennent incohérentes, puisque la même adresse source apparaît alternativement sur plusieurs ports. Tout s'arrête, y compris pour les machines qui ne communiquaient avec personne.
Avec l'arbre couvrant, le protocole détecte la boucle et bloque l'un des deux ports. Le réseau continue de fonctionner, et l'incident ne se voit que dans les journaux.
La protection à activer sur les ports d'accès va plus loin : elle ferme le port dès qu'un équipement s'y annonce comme commutateur, ce qui traite la cause au lieu du symptôme et laisse une trace explicite.
1.Deux ports voisins du même commutateur, dans deux VLAN différents. Que se passe-t-il ?
2.À quoi sert l'étiquette ajoutée sur un lien d'agrégation ?
3.Qu'a de particulier le VLAN natif d'un lien d'agrégation ?
4.Pourquoi une boucle entre commutateurs est-elle mortelle et non simplement gênante ?
5.Sur quoi repose le coût d'un lien dans le calcul de l'arbre ?
6.Combien de liens restent en service dans un réseau de cinq commutateurs sans boucle ?
7.Un port bloqué par l'arbre couvrant est-il inutile ?
La méthode
- Vérifier le VLAN des ports avant les adresses, quand deux machines du même commutateur ne se joignent pas.
- Comparer les deux bouts d'un lien d'agrégation, VLAN autorisés et VLAN natif, et non un seul.
- Réserver le VLAN natif à un numéro qui ne porte aucun trafic réel.
- Traiter tout arrêt brutal et général comme une boucle possible, y compris quand rien n'a été touché sur le réseau.
- Choisir la racine explicitement, en abaissant la priorité de l'équipement central.
- Protéger les ports d'accès contre un équipement qui s'y annoncerait comme commutateur.
Synthèse
- Un VLAN sépare réellement : deux ports voisins de VLAN différents ne communiquent pas, et il faut un routeur pour franchir la frontière.
- Un port d'accès porte un VLAN et des trames nues ; un lien d'agrégation en porte plusieurs et les étiquette.
- Le VLAN natif traverse sans étiquette ; une discordance entre les deux bouts fait changer les trames de réseau, en silence.
- Une boucle entre commutateurs effondre le réseau, parce qu'aucun compteur n'arrête une trame.
- L'arbre couvrant élit une racine, garde un port racine par commutateur et un bout ouvert par segment.
- Le coût suit le débit : le chemin retenu est le moins coûteux, rarement le plus court.
- Un lien bloqué reste en réserve, et c'est la raison même pour laquelle il a été câblé.