VLAN et trunking 802.1Q
Définition
Un VLAN (Virtual LAN) est un domaine de broadcast logique créé par logiciel sur un switch: les ports assignés à un même VLAN se voient entre eux, les autres non, même physiquement voisins. Le trunking 802.1Q transporte plusieurs VLANs sur un seul lien inter-switch en ajoutant un tag de 4 octets entre les champs Source et Type de la trame ethernet. Sans trunk, chaque VLAN exigerait sa propre paire de fibres.
Contexte
Le blueprint 200-301 consacre les thèmes 2.1 et 2.2 à ce couple VLAN/trunk: configurer et vérifier des VLANs spanning multiple switches, ports trunk, 802.1Q, native VLAN. En entreprise, un campus type utilise un VLAN pour la data des employés, un pour la voix, un pour les invités, un pour le management des équipements: quatre domaines de broadcast, un seul câble par armoire.
Numéros de VLAN
- Plage valide: 1 à 4094 (identifiant de 12 bits dans le tag 802.1Q; 0 et 4095 sont réservés).
- Plage normale: 1 à 1005, stockée dans le fichier vlan.dat sur les Catalyst classiques.
- Plage étendue: 1006 à 4094, en base uniquement, non propagée par VTP version 1 et 2.
- VLAN 1: VLAN par défaut, tous les ports y sont membres au départ. Déplacer l'administration IP hors de VLAN 1 est une bonne pratique de durcissement.
Le tag 802.1Q
Une trame ethernet sans tag fait 64 à 1518 octets. Une trame taggée ajoute 4 octets:
| Champ | Taille | Rôle |
|---|---|---|
| TPID | 16 bits | Constante 0x8100: indique la présence d'un tag 802.1Q |
| Priority (PRI) | 3 bits | Classes de service 802.1p, 0 à 7 |
| DEI | 1 bit | Drop Eligible Indicator, marque les trames à sacrifier |
| VLAN ID | 12 bits | Numéro de VLAN, 1 à 4094 |
MTU effectif: une trame taggée occupe 1522 octets, un lien full duplex à 1 Gbps perd donc environ 0,26 % de charge utile sur des trames de 1500 octets.
Native VLAN
Le native VLAN est le seul dont les trames traversent le trunk sans tag (par défaut VLAN 1). Utilité: compatibilité avec des équipements non-802.1Q, et transport des BPDUs de STP hors VLAN. Risque: une trame non taggée d'un réseau "sauvage" tombe dans le native VLAN. Les deux extrémités du trunk doivent avoir le même native VLAN; un mismatch est détecté par CDP et provoque une fuite de trafic entre VLANs.
Switch(config-if)# switchport trunk native vlan 99
Configuration type: deux switches, trois VLANs
! S1: creation et affectation
S1(config)# vlan 10
S1(config-vlan)# name ADMIN_DATA
S1(config)# vlan 20
S1(config-vlan)# name VOIX
S1(config)# vlan 99
S1(config-vlan)# name NATIVE
S1(config)# interface GigabitEthernet1/0/1
S1(config-if)# switchport mode access
S1(config-if)# switchport access vlan 10
S1(config)# interface GigabitEthernet1/0/24
S1(config-if)# switchport mode trunk
S1(config-if)# switchport trunk native vlan 99
S1(config-if)# switchport trunk allowed vlan 10,20,99
Vérification:
S1# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active
10 ADMIN_DATA active Gi1/0/1
20 VOIX active
99 NATIVE active
S1# show interfaces trunk
Port Mode Encapsulation Status Native vlan
Gi1/0/24 on 802.1q trunking 99
Port Vlans allowed on trunk
Gi1/0/24 10,20,99
Inter-VLAN
Chaque VLAN est un sous-réseau séparé: pour communiquer de VLAN 10 vers VLAN 20, il faut une passerelle de couche 3 (SVI sur switch L3 ou router-on-a-stick). Le trunk ne fait que transporter, jamais router.
Pièges fréquents
- Oublier le port en trunk:
switchport mode trunkn'est pas implicite, DTP peut négocier un access par défaut selon les plateformes. - Laisser des VLANs autorisés inutilement sur le trunk:
switchport trunk allowed vlanrestreint la table et la surface d'attaque. - Les BPDUs natifs partent sans tag dans le native VLAN: modifier le native VLAN doit être coordonné avec le design STP.