Chapitre 225 minIntermédiaire
VLAN et trunk 802.1Q : configurer un switch Cisco
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- expliquer ce qu'apporte un VLAN et nommer les types de VLAN ;
- configurer des ports d'accès, un VLAN voix et des trunks 802.1Q ;
- choisir le VLAN natif et neutraliser DTP et VTP ;
- vérifier avec
show vlan briefetshow interfaces trunk.
6 exercices corrigés1 schéma
Un VLAN (Virtual LAN) est un réseau local logique créé sur un switch administrable : les ports d'un même VLAN communiquent entre eux comme s'ils avaient leur propre switch, et ne voient rien des autres VLAN. Un trunk est un lien qui transporte plusieurs VLAN à la fois, en ajoutant à chaque trame une étiquette 802.1Q qui dit à quel VLAN elle appartient. Ce chapitre explique ces deux mécanismes en détail et donne la configuration complète des switchs de Sorbier.
Pourquoi découper un réseau en VLAN
Sans VLAN, tous les ports de tous les switchs reliés entre eux forment un seul domaine de diffusion : un broadcast émis par un poste (une requête ARP, une demande DHCP) arrive à toutes les machines, des caméras aux serveurs. Chez Sorbier, avant le découpage, les visiteurs du Wi-Fi étaient dans le même réseau que le serveur de fichiers.
Découper en VLAN apporte quatre bénéfices :
- La sécurité. Une machine du VLAN 40 (visiteurs) ne peut pas envoyer une trame à une machine du VLAN 20 (serveurs). Pour passer, il faut traverser un équipement qui route, et qui peut filtrer (chapitre 9).
- Les performances. Les broadcasts restent dans leur VLAN : moins de bruit pour tout le monde.
- La souplesse. Le VLAN ne dépend pas de l'emplacement : un poste de la comptabilité installé au rez-de-chaussée reste dans le VLAN des postes, il suffit de configurer son port.
- La gestion. Un VLAN par usage, un réseau IP par VLAN : le plan d'adressage, les règles de filtrage et la supervision deviennent lisibles.
Les types de VLAN
| Type | Rôle | Chez Sorbier |
|---|---|---|
| VLAN de données | Transporte le trafic des utilisateurs | 10 POSTES, 30 ENTREPOT, 40 VISITEURS |
| VLAN voix | Sépare le trafic des téléphones IP, pour lui donner la priorité | 50 TELEPHONIE |
| VLAN de gestion (d'administration) | Porte les adresses d'administration des équipements | 99 ADMIN |
| VLAN par défaut | Le VLAN 1 : tous les ports y sont au départ ; on ne peut ni le supprimer ni le renommer | Aucune machine dedans |
| VLAN natif | Le VLAN dont les trames circulent sans étiquette sur un trunk (VLAN 1 par défaut) | 999, sans aucune machine |
| VLAN parking | Accueille les ports inutilisés, désactivés | 998 |
Les numéros vont de 1 à 4094. Les VLAN 1002 à 1005 sont réservés à d'anciennes technologies (Token Ring, FDDI) et apparaissent dans toutes les listes sans servir. Les VLAN 1006 à 4094 forment la plage « étendue », utilisable sur tous les switchs actuels.
Créer les VLAN
Sur SW-ETAGE1, on crée les VLAN dont le switch a besoin, chacun avec un nom :
SW-ETAGE1(config)# vlan 10
SW-ETAGE1(config-vlan)# name POSTES
SW-ETAGE1(config-vlan)# vlan 50
SW-ETAGE1(config-vlan)# name TELEPHONIE
SW-ETAGE1(config-vlan)# vlan 99
SW-ETAGE1(config-vlan)# name ADMIN
SW-ETAGE1(config-vlan)# vlan 998
SW-ETAGE1(config-vlan)# name PARKING
SW-ETAGE1(config-vlan)# vlan 999
SW-ETAGE1(config-vlan)# name NATIF
SW-ETAGE1(config-vlan)# end
Un switch n'a besoin de connaître que les VLAN qu'il transporte. SW-ETAGE1 dessert des postes et des téléphones : il n'a pas à connaître le VLAN 20 des serveurs. Le switch de cœur, lui, les connaît tous.
Les noms sont libres, mais ils doivent être les mêmes sur tous les switchs : show vlan brief est lu par des humains, et un VLAN 10 nommé POSTES ici et COMPTA là-bas sème le doute en plein dépannage.
Les ports d'accès
Un port d'accès appartient à un seul VLAN. Il reçoit et envoie des trames ordinaires, sans étiquette : le poste branché dessus ne sait même pas qu'il est dans un VLAN.
SW-ETAGE1(config)# interface range GigabitEthernet1/0/1 - 24
SW-ETAGE1(config-if-range)# description Postes du 1er etage
SW-ETAGE1(config-if-range)# switchport mode access
SW-ETAGE1(config-if-range)# switchport access vlan 10
SW-ETAGE1(config-if-range)# switchport voice vlan 50
SW-ETAGE1(config-if-range)# switchport nonegotiate
SW-ETAGE1(config-if-range)# spanning-tree portfast
SW-ETAGE1(config-if-range)# spanning-tree bpduguard enable
SW-ETAGE1(config-if-range)# exit
switchport mode accessfixe le port en mode accès, sans négociation possible vers un trunk.switchport access vlan 10le place dans le VLAN 10. Si le VLAN n'existe pas encore, les Catalyst récents le créent automatiquement (« Access VLAN does not exist. Creating vlan 10 »), mais sans nom : crée toujours tes VLAN d'abord.switchport voice vlan 50est expliqué juste après ;switchport nonegotiatecoupe le protocole DTP (voir plus bas) ; les deux lignesspanning-treesont au chapitre 4.
Les ports inutilisés vont dans le VLAN parking, désactivés :
SW-ETAGE1(config)# interface range GigabitEthernet1/0/25 - 46
SW-ETAGE1(config-if-range)# description Ports inutilises
SW-ETAGE1(config-if-range)# switchport mode access
SW-ETAGE1(config-if-range)# switchport access vlan 998
SW-ETAGE1(config-if-range)# shutdown
Le VLAN voix
Un téléphone IP a souvent deux prises : l'une vers le mur, l'autre pour le PC. Un seul port du switch transporte alors deux trafics. Avec switchport voice vlan 50, le switch annonce au téléphone, par CDP ou LLDP, qu'il doit étiqueter ses trames dans le VLAN 50 ; le PC branché derrière continue d'envoyer des trames sans étiquette, rangées dans le VLAN d'accès 10. Le téléphone marque aussi ses trames avec une priorité élevée (le champ PCP de l'étiquette, valeur 5 en général), que les switchs servent en premier : la voix ne hache pas quand un PC télécharge un gros fichier.
Le port reste un port d'accès, avec un VLAN de données et un VLAN voix. Ce n'est pas un trunk.
Le trunk et l'étiquette 802.1Q
Le lien entre SW-ETAGE1 et le switch de cœur doit transporter le VLAN 10, le VLAN 50 et le VLAN 99. Plutôt que trois câbles, on utilise un trunk (en français, lien d'agrégation de VLAN, ou lien « tagué ») : un seul lien, sur lequel chaque trame porte une étiquette (tag) qui indique son VLAN. Le format de cette étiquette est défini par la norme IEEE 802.1Q.
L'étiquette fait 4 octets et s'insère entre l'adresse MAC source et le champ Type de la trame Ethernet :
| Champ | Taille | Contenu |
|---|---|---|
| TPID (Tag Protocol Identifier) | 16 bits | Toujours 0x8100 : « attention, une étiquette 802.1Q suit » |
| PCP (Priority Code Point) | 3 bits | Priorité de 0 à 7 (norme 802.1p) : 5 pour la voix, 0 par défaut |
| DEI (Drop Eligible Indicator) | 1 bit | Trame à jeter en premier en cas d'encombrement |
| VID (VLAN Identifier) | 12 bits | Le numéro de VLAN : 2¹² = 4 096 valeurs, dont 0 et 4095 réservées, d'où les VLAN 1 à 4094 |
Le switch ajoute l'étiquette quand une trame part sur un trunk, et la retire quand elle sort sur un port d'accès. Comme la trame change, il recalcule son FCS. Une trame étiquetée peut atteindre 1 522 octets au lieu de 1 518.
Configurer un trunk
Côté SW-ETAGE1, le port 48 remonte vers le switch de cœur :
SW-ETAGE1(config)# interface GigabitEthernet1/0/48
SW-ETAGE1(config-if)# description Uplink vers SW-COEUR Gi1/0/1
SW-ETAGE1(config-if)# switchport mode trunk
SW-ETAGE1(config-if)# switchport trunk native vlan 999
SW-ETAGE1(config-if)# switchport trunk allowed vlan 10,50,99
SW-ETAGE1(config-if)# switchport nonegotiate
SW-ETAGE1(config-if)# end
Côté SW-COEUR, la même configuration sur le port d'en face :
SW-COEUR(config)# interface GigabitEthernet1/0/1
SW-COEUR(config-if)# description Downlink vers SW-ETAGE1 Gi1/0/48
SW-COEUR(config-if)# switchport mode trunk
SW-COEUR(config-if)# switchport trunk native vlan 999
SW-COEUR(config-if)# switchport trunk allowed vlan 10,50,99
SW-COEUR(config-if)# switchport nonegotiate
switchport mode trunkfixe le port en trunk.switchport trunk allowed vlanlimite les VLAN transportés. Par défaut, un trunk les transporte tous : les broadcasts de chaque VLAN partent alors partout, même là où personne ne les attend. On n'autorise que le nécessaire.switchport trunk native vlan 999change le VLAN natif (paragraphe suivant).- Les descriptions disent où va le câble : en dépannage, c'est précieux.
Le VLAN natif
Sur un trunk 802.1Q, les trames d'un VLAN circulent sans étiquette : c'est le VLAN natif. Une trame reçue sans étiquette sur un trunk est rangée dans ce VLAN. Le mécanisme existe pour les appareils qui ne comprennent pas les étiquettes, mais il pose deux problèmes :
- Les deux extrémités doivent avoir le même VLAN natif. Sinon, les trames du VLAN natif d'un côté arrivent dans un autre VLAN de l'autre côté : deux VLAN se retrouvent mélangés. Les switchs Cisco le signalent par un message CDP (
%CDP-4-NATIVE_VLAN_MISMATCH), et le Spanning Tree bloque le VLAN concerné. - Le saut de VLAN par double étiquetage. Un attaquant branché dans le VLAN natif peut fabriquer une trame avec deux étiquettes : le premier switch retire l'étiquette extérieure (celle du VLAN natif, qui circule sans étiquette) et le second lit l'étiquette intérieure, celle d'un autre VLAN. L'attaque est décrite, avec ses parades, dans le chapitre Sécurité des switchs.
D'où la règle appliquée chez Sorbier : le VLAN natif est un VLAN sans aucune machine (999), le même sur tous les trunks, et le VLAN 1 n'est utilisé par personne.
DTP : la négociation des trunks
Les switchs Cisco savent négocier tout seuls si un lien devient un trunk, avec le protocole propriétaire DTP (Dynamic Trunking Protocol). Chaque port a un mode :
| Mode | Comportement |
|---|---|
access | Toujours en accès |
trunk | Toujours en trunk, et envoie des messages DTP pour proposer le trunk à l'autre côté |
dynamic desirable | Demande activement le trunk |
dynamic auto | Accepte le trunk si l'autre côté le demande ; mode par défaut des 2960 et des Catalyst 9000 |
Le résultat de la négociation selon les modes des deux extrémités :
dynamic auto | dynamic desirable | trunk | access | |
|---|---|---|---|---|
dynamic auto | Accès | Trunk | Trunk | Accès |
dynamic desirable | Trunk | Trunk | Trunk | Accès |
trunk | Trunk | Trunk | Trunk | Incohérent : à éviter |
access | Accès | Accès | Incohérent : à éviter | Accès |
Deux ports en dynamic auto, le réglage d'usine, restent en accès : c'est pour ça qu'un lien entre deux switchs neufs ne devient pas un trunk tout seul.
Où sont enregistrés les VLAN
Les VLAN 1 à 1005 ne sont pas stockés dans la startup-config, mais dans un fichier à part, vlan.dat, dans la mémoire flash du switch. Ce fichier est écrit dès la création du VLAN, sans copy running-config startup-config. Deux conséquences :
- pour remettre un switch à zéro,
erase startup-configne suffit pas : il faut aussidelete flash:vlan.dat, puisreload; - un switch récupéré dans un autre service arrive avec ses VLAN, même si sa configuration a été effacée.
Ce fonctionnement vient de VTP (VLAN Trunking Protocol), un protocole Cisco qui propage la liste des VLAN d'un switch « serveur » à tous les switchs « clients » du même domaine. Pratique sur le papier, VTP a causé tant de pannes (un switch de test branché avec un numéro de révision plus élevé efface les VLAN de tout le réseau) qu'on le neutralise presque toujours :
SW-ETAGE1(config)# vtp mode transparent
En mode transparent, le switch garde sa propre liste de VLAN, ne l'impose à personne et n'accepte celle de personne. Ses VLAN apparaissent alors aussi dans la running-config, ce qui permet de les sauvegarder avec le reste. VTP version 3 propose aussi le mode off.
Vérifier la configuration
show vlan brief liste les VLAN et leurs ports d'accès :
SW-ETAGE1# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active
10 POSTES active Gi1/0/1, Gi1/0/2, Gi1/0/3, Gi1/0/4
Gi1/0/5, Gi1/0/6, Gi1/0/7, Gi1/0/8
...
50 TELEPHONIE active Gi1/0/1, Gi1/0/2, Gi1/0/3, Gi1/0/4
...
99 ADMIN active
998 PARKING active Gi1/0/25, Gi1/0/26, Gi1/0/27, Gi1/0/28
...
999 NATIF active
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
Les ports trunk n'y apparaissent pas : la liste ne montre que les ports d'accès. Les ports avec un VLAN voix apparaissent dans les deux VLAN. Si un VLAN manque ici, aucun port ne peut le transporter.
show interfaces trunk montre les trunks et ce qu'ils transportent vraiment :
SW-ETAGE1# show interfaces trunk
Port Mode Encapsulation Status Native vlan
Gi1/0/48 on 802.1q trunking 999
Port Vlans allowed on trunk
Gi1/0/48 10,50,99
Port Vlans allowed and active in management domain
Gi1/0/48 10,50,99
Port Vlans in spanning tree forwarding state and not pruned
Gi1/0/48 10,50,99
Lis les quatre blocs dans l'ordre : le port est-il en trunk, avec quel VLAN natif ? Quels VLAN sont autorisés ? Parmi eux, lesquels existent sur ce switch (« active in management domain ») ? Lesquels sont effectivement transmis, c'est-à-dire non bloqués par le Spanning Tree ? Un VLAN qui disparaît d'un bloc au suivant te dit où chercher.
show interfaces Gi1/0/48 switchport détaille un port : mode configuré (Administrative Mode) et mode obtenu (Operational Mode), négociation DTP, VLAN d'accès, VLAN voix, VLAN natif. C'est la commande qui tranche quand un port n'est pas dans le mode attendu.
Exercices
Exercice 1 sur 6 Compter les domaines de diffusion Réussi À revoir
Un switch de 24 ports porte trois VLAN : VLAN 10 sur les ports 1 à 10, VLAN 20 sur les ports 11 à 20, VLAN 30 sur les ports 21 et 22. Les ports 23 et 24 sont inutilisés et sont restés dans le VLAN 1.
- Combien de domaines de diffusion ce switch forme-t-il ?
- Un poste du port 3 envoie une requête ARP. Quels ports la reçoivent ?
- Le poste du port 3 peut-il joindre le poste du port 12 sans autre équipement ? Pourquoi ?
Voir la réponseMasquer la réponse de l'exercice 1
- Quatre : un par VLAN, VLAN 1 compris (ports 23 et 24).
- Les ports 1 à 10 sauf le port 3 : un broadcast est inondé sur tous les ports du VLAN 10, sauf celui d'arrivée (et sur les trunks qui transportent le VLAN 10, s'il y en avait).
- Non. Le port 12 est dans le VLAN 20, un autre domaine de diffusion et donc un autre réseau IP. Il faut un équipement qui route entre les deux VLAN (chapitre 3).
Tu avais trouvé ?
Exercice 2 sur 6 Configurer le switch du deuxième étage Réussi À revoir
SW-ETAGE2 (Catalyst 9200, 48 ports) dessert le deuxième étage de Sorbier. Écris sa configuration :
- les VLAN 10 (POSTES), 50 (TELEPHONIE), 99 (ADMIN), 998 (PARKING) et 999 (NATIF), en mode VTP transparent ;
- les ports 1 à 20 pour des postes avec un téléphone IP ;
- les ports 21 et 22 pour deux imprimantes du VLAN 10 ;
- le port 48 en trunk vers SW-COEUR, qui ne transporte que ce qui est nécessaire, avec le VLAN natif 999 ;
- les autres ports désactivés ;
- l'adresse de gestion
192.168.10.212/28dans le VLAN 99.
Voir la réponseMasquer la réponse de l'exercice 2
vtp mode transparent
vlan 10
name POSTES
vlan 50
name TELEPHONIE
vlan 99
name ADMIN
vlan 998
name PARKING
vlan 999
name NATIF
!
interface range GigabitEthernet1/0/1 - 20
description Postes et telephones du 2e etage
switchport mode access
switchport access vlan 10
switchport voice vlan 50
switchport nonegotiate
spanning-tree portfast
spanning-tree bpduguard enable
!
interface range GigabitEthernet1/0/21 - 22
description Imprimantes du 2e etage
switchport mode access
switchport access vlan 10
switchport nonegotiate
spanning-tree portfast
spanning-tree bpduguard enable
!
interface range GigabitEthernet1/0/23 - 47
description Ports inutilises
switchport mode access
switchport access vlan 998
shutdown
!
interface GigabitEthernet1/0/48
description Uplink vers SW-COEUR
switchport mode trunk
switchport trunk native vlan 999
switchport trunk allowed vlan 10,50,99
switchport nonegotiate
!
interface Vlan99
ip address 192.168.10.212 255.255.255.240
no shutdown
!
ip default-gateway 192.168.10.222
Points de vigilance : pas de VLAN voix sur les imprimantes (inutile) ; le trunk n'autorise que 10, 50 et 99 ; le VLAN 999 est créé même s'il ne porte aucun port, pour que le switch le connaisse ; la passerelle 192.168.10.222 est bien dans 192.168.10.208/28. Le port d'en face sur SW-COEUR doit recevoir la même configuration de trunk. On termine par copy running-config startup-config.
Tu avais trouvé ?
Exercice 3 sur 6 Négociation DTP Réussi À revoir
Pour chaque lien entre deux switchs Cisco, dis si un trunk se forme.
dynamic autodes deux côtés.dynamic desirabled'un côté,dynamic autode l'autre.trunkd'un côté,dynamic autode l'autre.trunkavecswitchport nonegotiated'un côté,dynamic autode l'autre.trunkdes deux côtés, avecswitchport nonegotiatedes deux côtés.
Voir la réponseMasquer la réponse de l'exercice 3
- Non : aucun des deux ne demande le trunk, le lien reste en accès.
- Oui : le côté desirable demande, le côté auto accepte.
- Oui : le port en
trunkenvoie des messages DTP, le côté auto accepte. - Non : avec
nonegotiate, le port en trunk n'envoie plus de messages DTP ; le côté auto n'est jamais sollicité et reste en accès. Le lien est incohérent : un côté étiquette ses trames, l'autre non. - Oui : les deux ports sont fixés en trunk, sans négociation. C'est la configuration recommandée entre deux switchs.
Tu avais trouvé ?
Exercice 4 sur 6 Le VLAN qui ne passe pas Réussi À revoir
Depuis la création du VLAN 30 (ENTREPOT) sur SW-ETAGE1, les terminaux de scan branchés sur ses ports 30 à 33 n'obtiennent pas d'adresse. Sur SW-ETAGE1 :
SW-ETAGE1# show interfaces trunk
Port Mode Encapsulation Status Native vlan
Gi1/0/48 on 802.1q trunking 999
Port Vlans allowed on trunk
Gi1/0/48 10,50,99
Port Vlans allowed and active in management domain
Gi1/0/48 10,50,99
- Quelle est la cause ?
- Quelle commande corrige le problème sans couper les autres VLAN ?
- Que faut-il vérifier côté SW-COEUR ?
Voir la réponseMasquer la réponse de l'exercice 4
- Le VLAN 30 n'est pas autorisé sur le trunk : les trames des terminaux restent sur SW-ETAGE1 et n'atteignent jamais le relais DHCP du switch de cœur.
- Sur Gi1/0/48 :
switchport trunk allowed vlan add 30. Sansadd, la liste deviendrait « 30 » seul, et tout l'étage serait coupé. - Que le VLAN 30 existe sur SW-COEUR et qu'il est autorisé sur le port d'en face (Gi1/0/1) :
show vlan briefetshow interfaces trunksur SW-COEUR. La même commandeswitchport trunk allowed vlan add 30est à taper de ce côté si besoin.
Tu avais trouvé ?
Exercice 5 sur 6 Décoder une étiquette 802.1Q Réussi À revoir
Une capture Wireshark prise sur le trunk montre, après les deux adresses MAC, les octets 81 00 A0 32.
- Que signifient les deux premiers octets ?
- Décompose les deux suivants (
A0 32) en PCP, DEI et VID. - À quel VLAN appartient la trame, et quel appareil l'a probablement émise ?
Voir la réponseMasquer la réponse de l'exercice 5
0x8100, le TPID : une étiquette 802.1Q suit.0xA032en binaire :1010 0000 0011 0010. Les 3 premiers bits101donnent le PCP = 5 ; le bit suivant0, le DEI = 0 ; les 12 derniers bits0000 0011 0010= 0x032, le VID = 50.- VLAN 50, avec la priorité 5 : c'est le trafic d'un téléphone IP, qui étiquette ses trames dans le VLAN voix et demande la priorité.
Tu avais trouvé ?
Exercice 6 sur 6 Deux VLAN natifs différents Réussi À revoir
Un technicien a configuré switchport trunk native vlan 999 sur SW-COEUR, mais a oublié la commande sur le port d'en face de SW-ETAGE2, resté avec le VLAN natif par défaut.
- Quel est le VLAN natif de chaque côté ?
- Que devient une trame non étiquetée envoyée par SW-ETAGE2 sur le trunk ?
- Comment le problème se signale-t-il ?
Voir la réponseMasquer la réponse de l'exercice 6
- 999 côté SW-COEUR, 1 côté SW-ETAGE2.
- SW-ETAGE2 envoie sans étiquette les trames de son VLAN natif, le VLAN 1. SW-COEUR range toute trame non étiquetée dans son VLAN natif, le 999. Les VLAN 1 et 999 se retrouvent reliés : c'est une fuite entre deux VLAN, et un trou de sécurité si l'un d'eux contenait des machines.
- Par un message CDP dans les journaux des deux switchs,
%CDP-4-NATIVE_VLAN_MISMATCH, et par le Spanning Tree, qui met les VLAN concernés en état bloqué sur ce port (« inconsistent »). Correction :switchport trunk native vlan 999sur le port de SW-ETAGE2.
Tu avais trouvé ?