Qu'est-ce qu'un VLAN ? Tag 802.1Q, port access et trunk
Un VLAN divise un switch en réseaux séparés avec un tag de 4 octets. Fonctionnement du 802.1Q, access ou trunk, risque du VLAN natif, avec de vraies captures.
- Qu’est-ce qu’un VLAN ? Un switch, plusieurs réseaux
- Que se passerait-il sans VLAN ?
- Qu’est-ce que le 802.1Q ? Où le tag se place dans la trame
- Port access ou port trunk
- Les types de VLAN : données, voix, administration et VLAN 1
- VLAN voix : deux appareils, une prise murale
- Pourquoi le VLAN 1 pose problème
- Qu’est-ce que le VLAN natif ?
- Créer un VLAN et affecter des ports access
- Où mettre les ports inutilisés ? Le VLAN poubelle
- Faut-il configurer chaque switch à la main ?
- Laboratoire : deux VLAN sur un câble
- Pourquoi l’ordre des commandes compte
- Donner à la VM une interface étiquetée
- Qu’a vu le switch ?
- Pourquoi vous ne voyez pas le tag : deux pièges de capture
- Piège 1 : le filtre de capture a jeté les trames étiquetées
- Piège 2 : le tag disparaît au retour
- Ce que la segmentation casse en silence : un serveur de temps qui tournait à vide
- Dépannage VLAN : lien actif, appareil présent, pourtant injoignable
- Pourquoi le routage inter-VLAN exige un routeur
- Sécurité des VLAN : risque du VLAN natif et VLAN hopping
- À la frontière du fournisseur : access ou trunk ?
- Conclusion : un petit tag aux grandes conséquences
Imaginez un grand salon professionnel. À l’accueil, on vous remet un badge, et dessus est imprimé le hall auquel vous avez accès. Un seul bâtiment, des couloirs et des ascenseurs communs. Ce qui vous sépare des autres visiteurs n’est pas un mur. C’est le badge autour de votre cou.
Un switch fait exactement cela. Un VLAN (réseau local virtuel) découpe un switch physique en plusieurs réseaux logiquement séparés, non pas en tirant de nouveaux câbles, mais en attachant une petite étiquette à chaque trame. Cet article fait partie du guide de la segmentation réseau et suit cette étiquette de bout en bout : où elle se place dans la trame, quel port l’écrit, quel port la transporte, et à quoi elle ressemble dans une vraie capture prise sur un vrai switch.
Toutes les commandes et sorties proviennent du laboratoire de l’auteur (domaine ad.sercebilisim.com) ; adresses et noms sont laissés tels qu’ils ont été mesurés.
Qu’est-ce qu’un VLAN ? Un switch, plusieurs réseaux
Un VLAN est une séparation logique qui isole des groupes d’appareils branchés sur le même switch physique. Le poste de la comptabilité et un téléphone sur le réseau invité peuvent occuper deux ports du même switch sans jamais s’entendre.
Le terme technique pour ce qu’un VLAN découpe est le domaine de diffusion (broadcast domain). Quand un appareil appelle tous les autres, par exemple pour trouver l’adresse matérielle d’un voisin ou demander une adresse IP, seul son propre VLAN l’entend. Le VLAN trace la limite de ce domaine.
Que se passerait-il sans VLAN ?
Prenez un réseau à plat avec 200 utilisateurs, 40 serveurs et 60 téléphones IP : 300 appareils dans un seul domaine de diffusion. Chacun appelle régulièrement tous les autres pour trouver ses voisins, renouveler ses adresses et s’annoncer. Chacune de ces diffusions atteint toutes les cartes réseau du bâtiment et interrompt brièvement chaque processeur, qu’on le lui ait demandé ou non.
Le second coût est le plus lourd : la sécurité. Un appareil du même domaine de diffusion découvre les autres sans rien demander. Un portable qui rejoint le réseau invité peut trouver l’adresse du serveur de comptabilité sans le moindre obstacle. Dans un réseau non segmenté, « quelqu’un de non autorisé est entré » signifie toujours « il est entré partout ».
Les VLAN réduisent les deux coûts à la fois : ils gardent les diffusions à l’intérieur d’un groupe et obligent le trafic entre groupes à passer par un point de contrôle.
Qu’est-ce que le 802.1Q ? Où le tag se place dans la trame
Le 802.1Q est la norme IEEE qui inscrit l’appartenance au VLAN dans la trame Ethernet elle-même, en insérant un tag de 4 octets. Ce tag se place juste après l’adresse MAC source et juste avant le champ qui indique le type de la trame.
Le tag n’est donc ni collé devant ni collé derrière. Il est inséré au milieu, comme un badge qu’on agrafe à un visiteur sans rien changer au visiteur. À l’entrée, c’est le badge qu’on vérifie en premier.
| Champ | Taille | Contenu |
|---|---|---|
| TPID | 16 bits | Valeur fixe 0x8100 : « cette trame est étiquetée » |
| PCP | 3 bits | Priorité de 0 à 7, pour la voix et la vidéo |
| DEI | 1 bit | Si la trame peut être abandonnée en cas de congestion |
| VID | 12 bits | L’identifiant de VLAN : le VLAN de la trame |
Le champ déterminant est le VID, et sa taille fixe une limite nette : 12 bits donnent 4 096 valeurs. La norme réserve 0 et 4 095, la plage utilisable va donc de 1 à 4 094.
C’est la réponse des manuels. Un vrai équipement peut être plus restrictif : le switch du laboratoire annonce sa plage acceptée comme <1-4093> et garde le dernier numéro pour lui. Personne ne le remarquera, mais cela rappelle que la limite se lit sur l’équipement, pas dans la norme.
L’ajout du tag fait passer la taille maximale d’une trame de 1 518 à 1 522 octets. D’habitude, invisible. Mais un équipement du chemin qui ne tient pas compte de ces 4 octets jette silencieusement les trames étiquetées, et une partie des pannes décrites comme « les gros paquets ne passent pas » commence ici.
Port access ou port trunk
Face aux VLAN, un port de switch joue l’un de deux rôles, et la différence tient en une ligne : un port access cache le tag, un port trunk le transporte. Au salon, c’est l’accueil et l’allée centrale.
- Le port access est l’accueil. L’appareil branché ignore tout des tags et envoie une trame ordinaire, non étiquetée. Le port la reçoit, y inscrit le tag de son propre VLAN et la fait entrer dans le switch. Dans l’autre sens, il retire le tag avant que la trame n’atteigne l’appareil.
- Le port trunk est l’allée centrale. Le trafic de plusieurs VLAN y circule en même temps, et chaque trame garde son tag. En face se trouve un équipement qui comprend les tags : un autre switch, un routeur, un hôte de virtualisation ou un système configuré pour cela.
La question qui tranche : l’équipement d’en face comprend-il les VLAN ?
| Propriété | Port access | Port trunk |
|---|---|---|
| VLAN transportés | Un seul | Plusieurs |
| Tag en sortie | Retiré | Conservé |
| Équipement en face | Ignore les tags | Comprend les tags |
| Branchement typique | PC, imprimante, téléphone IP, caméra | Switch, routeur, serveur, point d’accès |
Un PC sur un port trunk reçoit un badge qu’il ne sait pas lire : chaque trame commence par 4 octets qu’il ne comprend pas, et la plupart des systèmes les jettent. Un switch sur un port access, c’est l’inverse : vous réduisez l’allée centrale à un seul guichet, et le trafic de tous les autres halls disparaît sur ce câble.
En résumé : les appareils terminaux se branchent sur des ports access ; les trunks relient les équipements qui acheminent le trafic. La règle de terrain : chaque appareil terminal atterrit, dans le cas ordinaire, dans un seul VLAN. Soit il arrive non étiqueté sur un port access et prend le VLAN de ce port, soit il sait étiqueter ses trames et sort par un trunk dans le VLAN de son choix. Le second cas est l’exception, et c’est précisément ce que construit le laboratoire plus bas.
Les types de VLAN : données, voix, administration et VLAN 1
Les « types » de VLAN ne sont pas techniquement différents : tous utilisent le même tag 802.1Q et le switch les traite de la même manière. Ce qui change, c’est le rôle que vous leur donnez. Tous les badges sortent de la même imprimante ; seul le texte change.
- VLAN de données : postes, imprimantes, trafic métier ordinaire. La plupart des VLAN sont de ce type.
- VLAN voix : réservé à la téléphonie IP, avec un comportement qui mérite sa propre section.
- VLAN d’administration : les interfaces de gestion des switchs, routeurs et points d’accès. On le sépare non pour les performances, mais pour le contrôle d’accès : personne qui se branche au réseau n’a besoin de voir la page de connexion d’un switch.
- VLAN 1 (VLAN par défaut) : celui auquel appartient chaque port à la sortie d’usine.
VLAN voix : deux appareils, une prise murale
Le VLAN voix est la forme la plus courante de « deux VLAN sur un port ». Le téléphone de bureau est branché dans la prise murale, le PC dans le second port à l’arrière du téléphone. Un câble, deux appareils. Le port du switch envoie le trafic du PC sans tag dans le VLAN de données, tandis que le téléphone émet avec tag dans le VLAN voix. Le téléphone pose le tag lui-même ; le PC n’en sait rien.
La raison n’est pas le confort. La voix ne tolère ni retard ni gigue et doit être prioritaire, et la priorité est déjà dans le tag : c’est exactement le rôle du champ PCP. Le p 0 de la capture plus bas désigne du trafic ordinaire ; une trame voix porte une valeur plus élevée.
Pourquoi le VLAN 1 pose problème
Le VLAN 1 est celui auquel appartiennent tous les ports d’un switch non configuré, et deux propriétés le rendent risqué : on ne peut pas le supprimer, et il est partout par défaut. La liste des VLAN du switch du laboratoire le montre :
VLAN Name Ports Type
----- --------------- ------------- --------------
1 default Po1-64, Default
Gi1/0/25-48,
Te1/0/1-4
5 YONETIM Gi1/0/1-24 Static
30 LAB-VLAN30 Gi1/0/3 Static- La liste des ports de la ligne
1 defaultcontient tous les ports que personne n’a attribués à la main :Gi1/0/25-48et les groupes d’agrégation inutilisés. Chaque prise libre est membre du VLAN 1. DefaultcontreStaticdans la colonneTypeindique que le VLAN 1 est venu avec l’équipement, pas avec une configuration.5 YONETIM(« administration » en turc) et30 LAB-VLAN30ont été créés à la main. Nommer est facultatif, mais six mois plus tard, c’est souvent le seul indice pour la personne suivante.
Conséquence pratique : quiconque se branche sur une prise libre atterrit sans rien faire dans le VLAN 1. On n’utilise donc le VLAN 1 ni pour les données des utilisateurs ni comme VLAN d’administration, et les ports inutilisés sont désactivés ou déplacés vers un VLAN où personne ne vit.
Qu’est-ce que le VLAN natif ?
Le VLAN natif est le VLAN auquel sont affectées les trames non étiquetées arrivant sur un port trunk. Un trunk attend que tout soit étiqueté ; quand une trame sans tag arrive, il ne la jette pas, il la place dans le VLAN natif. Au salon, c’est le visiteur sans badge : la sécurité ne le met pas dehors, elle l’envoie dans l’espace commun. Quelle salle fait office d’espace commun dépend du règlement, et si le règlement est mal écrit, le visiteur finit là où il ne devrait pas.
Deux propriétés le distinguent, et toutes deux invitent aux erreurs :
- Son trafic circule sans tag. Les trames du VLAN natif traversent le trunk sans étiquette, volontairement, pour la compatibilité avec d’anciens équipements.
- Il doit être identique aux deux extrémités du trunk. Si un côté dit natif 5 et l’autre natif 1, une trame non étiquetée partie d’un côté atterrit dans un tout autre VLAN de l’autre. Deux réseaux sont reliés sans que personne ne le remarque.
Le second cas s’appelle une incohérence de VLAN natif, et la plupart des organisations en ont les conditions par défaut : sur la plupart des switchs, le VLAN natif vaut VLAN 1 d’usine.
La règle qui en découle est simple : ne laissez jamais le VLAN natif à sa valeur par défaut. Attribuez un numéro de VLAN inutilisé, auquel rien n’est branché, et configurez-le à l’identique aux deux bouts du trunk. Ainsi une trame non étiquetée n’atterrit pas par accident au bon endroit ; elle n’atterrit nulle part.
Créer un VLAN et affecter des ports access
La configuration se fait en deux étapes distinctes, et les confondre produit le classique « j’ai créé le VLAN mais ça ne marche pas » : on crée d’abord le VLAN, puis on lui affecte des ports. Ouvrir un hall sans imprimer de badges pour lui le laisse vide.
Première étape : créer le VLAN. Il reçoit un numéro ; le nom est facultatif, mais en pratique indispensable :
vlan 30
name "LAB-VLAN30"
exitDeuxième étape : affecter le port. Les ports des appareils terminaux passent en mode access :
interface Gi1/0/1
switchport access vlan 5Ces deux lignes font du port l’accueil du VLAN 5 : l’appareil parle sans tag, le port pose et retire le tag lui-même. Rien à configurer côté appareil. Pour plusieurs ports, une plage suffit :
interface range Gi1/0/10-12
switchport access vlan 30Pour sortir un port d’un VLAN, il n’y a pas de suppression ; le port revient à la valeur par défaut, c’est-à-dire au VLAN 1 :
interface Gi1/0/10
no switchport access vlanDétail facile à manquer, aux conséquences de sécurité : quand vous pensez avoir « garé » un port, vous l’avez en réalité renvoyé dans le VLAN où tout le monde tombe.
Où mettre les ports inutilisés ? Le VLAN poubelle
La bonne place d’un port inutilisé est un VLAN qui ne mène nulle part, appelé sur le terrain VLAN poubelle (blackhole VLAN). Un numéro est réservé, mais rien n’y vit, rien ne le route et aucun trunk ne le transporte. Même ordre, avec en plus la désactivation du port :
vlan 999
name "BLACKHOLE"
exit
interface Gi1/0/10
switchport access vlan 999
shutdownPourquoi les deux ? Parce que chacun seul est incomplet. Désactivé seulement, le port retombe dans le VLAN par défaut le jour où quelqu’un le réactive. Déplacé seulement, il reste électriquement actif et un appareil obtient au moins un lien. Ensemble, la porte est fermée et il n’y a rien derrière. Le port ensuite :
Port: Gi1/0/10
VLAN Membership Mode: Access Mode
Access Mode VLAN: 999
Trunking Mode Native VLAN: 1 (default)
Trunking Mode VLANs Enabled: AllLes deux dernières lignes passent facilement inaperçues et comptent : le port est en access, mais ses réglages trunk existent toujours, à leurs valeurs par défaut. S’il devient un jour trunk, son VLAN natif sera 1 et il autorisera tous les VLAN. C’est exactement pourquoi l’usurpation de switch décrite dans la section sécurité fonctionne : les réglages ne sont pas effacés, seulement endormis.
Faut-il configurer chaque switch à la main ?
Avec dix switchs, la question se pose : faut-il saisir la même liste de VLAN dix fois ? Dans la plupart des organisations, oui, et c’est un choix délibéré. Des protocoles distribuent la liste automatiquement : VTP chez Cisco (propriétaire), GVRP puis MVRP côté IEEE. Mais le prix de ce confort a été appris à la dure : ces protocoles propagent aussi les suppressions. Un switch ajouté avec une révision de base apparemment plus récente peut imposer sa liste à tout le domaine. Plutôt que de deviner, j’ai interrogé le switch du laboratoire :
console#show vtp status
^
% Invalid input detected at '^' marker.
console#show gvrp configuration
Global GVRP Mode: DisabledVTP n’existe pas sur cet équipement, logiquement puisqu’il vient d’un autre constructeur que Cisco, et GVRP est présent mais désactivé d’usine, ce qui correspond exactement au risque décrit. Conseil : si le nombre de VLAN reste gérable à la main, laissez la distribution automatique désactivée ; si vous l’activez, videz la base VLAN de chaque nouveau switch avant de le brancher.
Laboratoire : deux VLAN sur un câble
Tout ce qui précède se mesure. Le montage : un switch administrable, un poste de travail relié par un seul câble, et une machine virtuelle Linux pontée sur la carte réseau de ce poste. Deux appareils, un port physique. Au départ, le port était en access sur switchport access vlan 5 ; un port access ne porte qu’un VLAN, donc poste et VM entraient dans le même hall avec le même badge. L’objectif : passer le port en trunk, laisser le poste sans tag dans le VLAN natif 5 et faire sortir la VM avec tag dans le VLAN 30. Un câble, deux VLAN, aucun matériel supplémentaire.
Pourquoi l’ordre des commandes compte
Il y a quelque chose à perdre ici. Dès la commande qui fait du port un trunk, son trafic non étiqueté atterrit dans le VLAN natif, qui vaut 1 par défaut, alors que l’adresse d’administration du switch est dans le VLAN 5. Mauvais ordre, et la session dans laquelle vous tapez se coupe elle-même. Le VLAN natif est donc fixé avant le changement de mode :
interface Gi1/0/3
switchport trunk native vlan 5
switchport trunk allowed vlan 5,30
switchport mode trunkL’ordre est volontairement inversé. Les deux premières lignes écrivent des paramètres trunk sur un port encore en access, sans rien changer. Quand la troisième change le mode, le natif vaut déjà 5, et le trafic d’administration non étiqueté reste où il est :
Port: Gi1/0/3
VLAN Membership Mode: Trunk Mode
Trunking Mode Native VLAN: 5
Trunking Mode Native VLAN Tagging: Disabled
Trunking Mode VLANs Enabled: 5,30VLAN Membership Mode: Trunk Mode: le port est désormais une allée, plus un accueil.Trunking Mode Native VLAN: 5: tout ce qui arrive sans tag compte comme VLAN 5. C’est la ligne qui garde la session en vie.Native VLAN Tagging: Disabled: le VLAN natif sort sans tag ; avec, le poste ne le comprendrait pas.VLANs Enabled: 5,30: seuls ces deux halls utilisent l’allée.
Donner à la VM une interface étiquetée
Côté switch, c’est prêt. La VM doit maintenant produire des trames étiquetées, puisque le VLAN 30 n’est pas natif. Sous Linux, on crée une sous-interface VLAN sur l’interface physique :
ip link add link ens33 name ens33.30 type vlan id 30
ip addr add 192.168.30.15/24 dev ens33.30
ip link set ens33.30 upens33 UNKNOWN 192.168.1.15/24
ens33.30@ens33 UP 192.168.30.15/24ens33 parle sans tag et atterrit dans le VLAN natif 5 ; ens33.30 pose un tag VLAN 30 sur chaque trame. Même carte, même câble, deux halls.
Qu’a vu le switch ?
La réponse habituelle sur le terrain : un port appartient à un VLAN, et la plupart des plans de ports sont dessinés ainsi. Voici la table d’adresses MAC du switch :
Vlan Mac Address Type Port
-------- --------------------- ----------- ---------------------
1 F48E.381B.184D Management Vl1
5 000C.29A0.719A Dynamic Gi1/0/3
5 5811.22B1.0E54 Dynamic Gi1/0/3
5 F48E.381B.184D Management Vl5
30 000C.29A0.719A Dynamic Gi1/0/3
30 F48E.381B.184D Management Vl305 ... 5811.22B1.0E54 ... Gi1/0/3: la carte du poste, sans tag, donc dans le VLAN natif 5.5 ... 000C.29A0.719A ... Gi1/0/3: la carte de la VM sur son interface non étiquetée, également dans le VLAN 5.30 ... 000C.29A0.719A ... Gi1/0/3: même adresse MAC, même port, VLAN différent.
Cette troisième ligne est le cœur de l’article. Une seule adresse matérielle, sur un seul port physique, est membre de deux VLAN. Le switch n’a pas décidé d’après l’adresse MAC, mais d’après le tag de la trame.
Pourquoi vous ne voyez pas le tag : deux pièges de capture
Capturer une trame étiquetée s’est révélé plus difficile que la configurer, pour des raisons sans rapport avec les VLAN : les réglages par défaut des outils de capture rendent le tag invisible. Première tentative :
vlan 30 etiketli: 0
etiketsiz : 31Le script de comptage affichait ses résultats en turc : etiketli signifie « étiquetée », etiketsiz « non étiquetée ». Trente et une trames, aucune étiquetée, alors que le switch apprenait au même moment des adresses dans le VLAN 30. Deux mesures qui se contredisent : l’une est fausse.
Piège 1 : le filtre de capture a jeté les trames étiquetées
La capture utilisait le filtre arp or icmp. Il paraît anodin et c’était tout le problème : la primitive arp ne reconnaît pas une trame ARP étiquetée 802.1Q. Le filtre regarde le champ de type à l’octet 12 ; dans une trame étiquetée, on y trouve le marqueur 0x8100, pas ARP. Le fichier pcap ne contenait aucune trame étiquetée, et chercher vlan 30 ensuite revenait à fouiller un fichier vide. Sans filtre, le tag est apparu :
00:0c:29:a0:71:9a > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46:
vlan 30, p 0, ethertype ARP (0x0806), Request who-has 192.168.30.1 tell 192.168.30.15ethertype 802.1Q (0x8100): le TPID, la valeur fixe qui marque la trame comme étiquetée.vlan 30: le VID, 12 bits, le numéro du hall.p 0: le PCP, 3 bits, priorité zéro.ethertype ARP (0x0806): le vrai champ de type, désormais après le tag. C’est là qu’on voit l’insertion.
Piège 2 : le tag disparaît au retour
Filtre corrigé, un second problème, plus intéressant, est apparu. La trame sortante était étiquetée, mais la réponse du switch, 1,1 milliseconde plus tard, arrivait sans tag :
17:14:44.396425 00:0c:29:a0:71:9a > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 30, p 0, ethertype ARP (0x0806), Request who-has 192.168.30.1 tell 192.168.30.15
17:14:44.397569 f4:8e:38:1b:18:4d > 00:0c:29:a0:71:9a, ethertype ARP (0x0806), length 60: Reply 192.168.30.1 is-at f4:8e:38:1b:18:4dLes deux lignes ne diffèrent que par un champ : la seconde n’a pas de 802.1Q. La réponse venait du VLAN 30, le switch l’avait envoyée étiquetée sur le trunk, mais en arrivant à la VM le tag avait disparu. La table des voisins de l’interface étiquetée est restée vide :
192.168.30.1 INCOMPLETELa leçon de terrain : un chemin VLAN peut ne fonctionner que dans un sens. Voir partir le trafic et déclarer « l’étiquetage marche » ne suffit pas ; il faut vérifier que le retour garde le tag, ce qu’on ne voit qu’avec les deux sens dans la même capture. Pour tester l’étiquetage dans les deux sens, un équipement physique branché directement au switch est plus sûr qu’une VM derrière un pont.
Ce que la segmentation casse en silence : un serveur de temps qui tournait à vide
Déplacer un hôte dans un nouveau VLAN ne change pas seulement ce qu’il peut joindre. Cela coupe en silence toutes les dépendances que le réseau à plat satisfaisait gratuitement, et l’hôte le signale rarement. Le même laboratoire en a donné un exemple net, absent de l’original turc de cet article.
La VM Linux du laboratoire sert aussi de serveur de temps. Quand le port ponté l’a isolée, la chaîne de dépendances s’est rompue maillon par maillon, et chaque maillon a été mesuré :
- La machine ne résolvait plus l’adresse matérielle de son routeur ni celle du serveur DNS
192.168.1.10: les entrées ARP ne se complétaient jamais. - Sans DNS, les serveurs NTP configurés par nom ne se résolvaient plus.
- Sans serveur résolu, la liste de sources de chrony était vide.
- chrony s’est alors replié sur sa référence locale et a continué à servir l’heure en stratum 10, sans la moindre erreur visible.
Le plus troublant est la dernière ligne : l’horloge restait juste, à une seconde environ de l’hôte, parce que l’hyperviseur la maintenait. Rien ne semblait cassé. Un serveur de temps sans source amont continuait à répondre, et son seul symptôme était une liste vide que personne ne consulte sans la chercher. Avant et après le déplacement d’un serveur dans un nouveau VLAN, vérifiez ce qu’il obtenait gratuitement :
- Passerelle et DNS en couche 2 : la table ARP a-t-elle des entrées complètes pour la passerelle par défaut et les serveurs DNS ?
- Résolution de noms : les noms de sa configuration se résolvent-ils encore ?
- Heure :
chronyc sources(ouw32tm /query /statussous Windows) montre-t-il une vraie source, et non un repli local ? - Adressage : si le VLAN dépend de DHCP, existe-t-il un relais vers le serveur DHCP ?
Dépannage VLAN : lien actif, appareil présent, pourtant injoignable
Les pannes VLAN ont une signature commune : tout a l’air correct. Câble branché, voyant allumé, sous-réseau juste, passerelle renseignée. Et pourtant, injoignable. Le ping seul ne dit rien ici, car un ping muet a des dizaines de causes possibles. Ce qui parle, c’est la table ARP. Trois entrées de la même VM, trois cibles en apparence dans le même bloc :
192.168.1.2 lladdr f4:8e:38:1b:18:4d STALE
192.168.30.1 FAILED
192.168.1.1 FAILED| Cible | État ARP | Ping | Diagnostic |
|---|---|---|---|
192.168.1.2 | Résolu | Répond | Même VLAN, aucun problème |
192.168.30.1 | FAILED | Échoue | La requête part, la réponse ne revient pas. Chemin à sens unique |
192.168.1.1 | FAILED | Échoue | Autre domaine de diffusion ; la cible n’est pas dans ce VLAN |
Vues de l’extérieur, les deuxième et troisième lignes sont identiques ; leurs causes n’ont rien à voir, et seule une capture les sépare. D’où un ordre pratique :
- D’abord la table ARP, pas le ping. Si aucune entrée ne se forme, le problème est en couche 2, et chercher dans le routage ou le pare-feu est du temps perdu.
- Ensuite la table MAC du switch. L’adresse de l’appareil apparaît-elle dans le VLAN attendu ? Sinon, mode de port ou étiquetage incorrect ; dans le mauvais VLAN, vérifiez le VLAN natif.
- La capture en dernier, et sans filtre. Si vous devez filtrer, assurez-vous que le filtre ne jette pas les trames étiquetées.
Pourquoi le routage inter-VLAN exige un routeur
Deux appareils de VLAN différents ne se joignent pas directement, même sur le même switch ; il faut entre eux quelque chose en couche 3. Ce n’est pas une limite, c’est la nature même d’un VLAN : le switch cherche l’adresse MAC à l’intérieur du VLAN, et pour une trame du VLAN 5, les entrées du VLAN 30 ne sont jamais consultées. Trois architectures s’en chargent :
- Router-on-a-stick : un trunk vers un routeur, une sous-interface par VLAN. Courant en petit environnement, mais tout le trafic inter-VLAN partage ce lien.
- Switch de niveau 3 : le switch route lui-même, avec une interface virtuelle par VLAN. Rapide, car le trafic ne quitte pas l’équipement.
- Pare-feu : le choix quand le trafic entre VLAN doit être contrôlé par des règles. Pas lent : délibérément curieux.
Chaque VLAN a sa propre plage d’adresses, sans chevauchement. Et l’adressage exige un traitement particulier à la frontière : la demande DHCP est une diffusion qui s’arrête au bord du VLAN ; un relais DHCP sur le routeur ou le switch de niveau 3 la transmet au serveur.
Sécurité des VLAN : risque du VLAN natif et VLAN hopping
Les VLAN servent de mécanisme de sécurité, mais sans garantie cryptographique : le tag est une étiquette non authentifiée. Il y a une porte qui vérifie les badges, mais le badge lui-même n’est pas signé. Deux attaques naissent de cette lacune, toutes deux via le VLAN natif.
Le double étiquetage (double tagging). L’attaquant pose deux tags sur une trame : l’extérieur est son propre VLAN natif, l’intérieur le VLAN visé. Le premier switch retire le tag extérieur, conformément à la règle selon laquelle le trafic du VLAN natif traverse les trunks sans tag. Le second lit le tag intérieur restant et livre la trame dans le VLAN visé. Aucune porte forcée : on a utilisé le règlement du bâtiment. L’attaque est à sens unique, mais un seul sens suffit pour envoyer, par exemple, une commande de redémarrage.
L’usurpation de switch (switch spoofing). Sur certains switchs, un port devient automatiquement trunk si l’équipement d’en face se présente comme un switch. L’attaquant se fait passer pour un switch, le port devient trunk, et le trafic de tous les VLAN arrive chez lui. Au salon, c’est dire à l’accueil « je fais partie du personnel » ; si personne ne vérifie, on ne reçoit pas le badge d’un hall, mais la clé de l’allée que tous les halls partagent.
Trois mesures ferment les deux attaques :
- Placer le VLAN natif sur un numéro inutilisé. Rien n’y étant branché, l’étape « retirer le tag extérieur » sur laquelle repose le double étiquetage ne mène nulle part.
- Fixer les trunks à la main. Désactivez la négociation automatique ; un port ne devient trunk que parce que vous l’avez configuré ainsi.
- Verrouiller les ports utilisateurs en access et n’autoriser que le VLAN nécessaire.
La réponse à l’échelle de « qui attribue quel VLAN à quel port » passe par l’authentification : l’appareil prouve son identité en se connectant et reçoit son VLAN en conséquence (802.1X avec un serveur RADIUS). Personne n’a plus à tenir le plan de ports à jour à la main.
À la frontière du fournisseur : access ou trunk ?
Sur le lien vers votre fournisseur d’accès, la différence entre access et trunk coûte plus cher que dans votre propre réseau, car corriger une erreur signifie attendre la fenêtre de maintenance de l’autre partie. Ce que m’a appris le travail avec les fournisseurs en centre de données : tant que votre topologie n’est pas réellement grande et complexe, demandez un VLAN access sur le routeur du fournisseur. Ce lien transporte le trafic entre vous et lui, et la complexité à cette frontière n’apporte rien. Dans votre propre réseau, la complexité est sous votre contrôle : une erreur, et vous vous reconnectez à votre équipement pour revenir en arrière, sans rendez-vous.
La question qui tranche est opérationnelle, pas technique : qui réparera ce port quand il tombera ? Si ce n’est pas vous, gardez-le aussi simple que possible.
Conclusion : un petit tag aux grandes conséquences
Tout le VLAN repose sur un tag de 4 octets glissé au milieu d’une trame. Douze de ses bits disent à quel hall vous appartenez ; le reste porte la priorité et signale sa présence. La simplicité est trompeuse : ce petit champ permet à un switch d’héberger des dizaines de réseaux qui ne s’entendent jamais.
Le laboratoire a mesuré quatre choses, et elles vont dans le même sens. La même adresse MAC est apparue dans deux VLAN sur un port, parce que le switch décide d’après le tag. Le tag était invisible dans les captures pour deux raisons liées à l’outil de mesure, pas aux VLAN. Un chemin VLAN ne fonctionnait que dans un sens, donc « le trafic part » n’équivaut pas à « la connexion fonctionne ». Et un serveur déplacé sur son propre segment a continué sur un repli silencieux, privé des dépendances que le réseau à plat lui fournissait gratuitement.
Une habitude fait gagner le plus de temps : regardez la table ARP, pas le ping. Quand le ping se tait, la liste des causes est longue ; quand ARP se tait, le problème est en couche 2 et la recherche se resserre immédiatement.
Questions sur les VLAN
Cet article est adapté d’un guide que l’auteur a d’abord publié en turc sur sercebilisim.com : VLAN Nedir? 802.1Q Etiketi, Access ve Trunk Farkı
Écrit par
İlker PehlivanIngénieur réseaux et systèmes, fondateur de Serçe Bilişim
J'administre les réseaux et les serveurs dont dépend le travail des autres. Avant de fonder mon cabinet de conseil, je gérais le réseau fédérateur, les pare-feu et les systèmes critiques d'une grande organisation multisite de plusieurs milliers d'utilisateurs. J'écris sur ce qui est réellement tombé en panne.
Sur cette page
Fait partie de ce guide
Segmentation réseau : VLAN, couches et contrôle d'accès