Les liens Trunk
Faire transiter plusieurs VLANs entre deux switchs sur un seul lien : protocoles ISL et 802.1Q, VLAN natif, modes de port et configuration complète sur un commutateur Cisco.
Un lien trunk (« tronc » en anglais) est le lien physique qui permet de faire transiter plusieurs VLANs entre deux équipements, tout en conservant l’identification VLAN faite sur chaque trame. Dans cet article, tu découvriras pourquoi les liens trunk ont été inventés, la différence entre les protocoles ISL et 802.1Q, le rôle du VLAN natif, les modes de port (trunk, dynamic) et la configuration complète d’une liaison trunk sur un switch Cisco.
- Différencier le protocole ISL et le protocole 802.1Q.
- Comprendre pourquoi les liens trunk ont été inventés.
- Configurer un lien trunk sur un switch Cisco.
Introduction
Pour faire simple, un port trunk :
- fait partie de tous les VLANs du switch — donc tout le monde peut communiquer avec lui ;
- indique dans chaque trame envoyée le numéro de VLAN ;
- regarde dans chaque trame reçue s’il y a un numéro de VLAN.
Les liens trunk en théorie
Dans un monde sans trunk
Nous voulons que :
- le VLAN 10 du SWITCH_01 puisse discuter avec le VLAN 10 du SWITCH_02 ;
- le VLAN 20 du SWITCH_01 puisse discuter avec le VLAN 20 du SWITCH_02 ;
- le VLAN 30 du SWITCH_01 puisse discuter avec le VLAN 30 du SWITCH_02.

Bon, essayons plusieurs méthodes :
- Test 01 — Je ne configure pas le port FastEthernet 0/8 du SWITCH_01 et du SWITCH_02. Résultat : ces ports restent dans le VLAN 1 ; les VLANs 10, 20 et 30 ne pourront pas utiliser ce port.
- Test 02 — Je mets le port FastEthernet 0/8 des deux switchs dans le VLAN 10. Résultat : les VLANs 20 et 30 ne pourront pas utiliser ce port.
- Test 03 — Je mets le port FastEthernet 0/8 des deux switchs dans le VLAN 20. Résultat : les VLANs 10 et 30 ne pourront pas utiliser ce port.
- Test 04 — Je mets le port FastEthernet 0/8 des deux switchs dans le VLAN 30. Résultat : les VLANs 10 et 20 ne pourront pas utiliser ce port.
On voit qu’il nous faut quelque chose de supplémentaire pour faire fonctionner tout ça : un lien trunk !
Dans un monde avec trunk
Avec un lien trunk, un seul câble suffit : tous les VLANs transitent simultanément sur l’interconnexion, chaque trame étant marquée du numéro de VLAN auquel elle appartient.

Les protocoles ISL et 802.1Q
Pour mettre en place un lien trunk, il existe deux protocoles :
| Caractéristique | ISL | 802.1Q |
|---|---|---|
| Origine | Protocole Cisco (propriétaire) | Protocole normalisé IEEE |
| Traitement de la trame | Encapsule la trame | Tague la trame |
| Surcoût par trame | + 30 octets | + 4 octets |
| VLAN natif | Aucun | Oui (par défaut VLAN 1) |
Le protocole ISL
Le protocole ISL (Inter-Switch Link) est une technique de trunking utilisée pour transporter les VLANs à travers le réseau. Il a été développé par Cisco pour permettre aux commutateurs de reconnaître les différents VLANs transportés sur la liaison trunk. ISL fonctionne en encapsulant chaque trame Ethernet d’un VLAN dans une autre trame Ethernet plus grande, qui contient des informations supplémentaires sur le VLAN. Cette trame est ensuite transportée sur la connexion trunk entre les switchs ; à chaque extrémité, elle est désencapsulée et la trame d’origine est envoyée au commutateur approprié en fonction du VLAN ID.

ISL présente quelques inconvénients : il est incompatible avec les commutateurs d’autres fabricants que Cisco, ce qui limite la flexibilité et l’interopérabilité du réseau ; et il peut impacter les performances, car chaque trame doit être encapsulée dans une trame plus grande, augmentant la charge de travail des commutateurs.
Fonctionnement d’ISL
ISL encapsule chaque trame entre un header (en-tête) de 26 octets et un trailer (en-queue) de 4 octets.

L’IEEE a sorti une norme afin que tous les équipements réseau de marques différentes puissent échanger leurs informations VLAN. Cisco privilégie désormais la norme IEEE 802.1Q et abandonne son protocole ISL : celui-ci n’est plus implémenté dans les nouveaux équipements Cisco. Toutes les trames qui transitent par un lien trunk ISL sont encapsulées (il n’y a pas de notion de VLAN natif).
Pour résumer
- ISL = Inter-Switch Link ;
- protocole propriétaire Cisco ;
- développé bien avant le protocole IEEE 802.1Q ;
- ajoute 30 octets à chaque trame.
Le protocole 802.1Q
Présentation
Le protocole 802.1Q :
- est un protocole normalisé par l’IEEE ;
- a été créé afin d’uniformiser les liaisons trunk ;
- est couramment appelé Dot1q (802.1q = .1q = dot1q ; dot = point).
Ce protocole ajoute un Tag 802.1Q juste après les adresses MAC destination et source de nos trames.



Le VLAN natif
Le protocole IEEE 802.1Q ajoute un tag sur chaque trame… sauf sur les trames appartenant au VLAN natif. Si un port trunk utilisant ce protocole reçoit une trame non taguée, il en déduit qu’elle fait partie du VLAN natif. Le VLAN natif par défaut est le VLAN 1.
Mais pourquoi l’IEEE a-t-il créé le VLAN natif ? Il y a fort longtemps, l’utilisation d’un hub était courante et ces hubs pouvaient être placés sur une liaison trunk. Les utilisateurs finaux connectés à ces hubs recevaient des trames 802.1Q… et ne les comprenaient pas. S’ils faisaient partie du VLAN natif, la trame n’était pas taguée et redevenait compréhensible. Depuis Windows XP, les utilisateurs finaux comprennent les trames 802.1Q sans tenir compte du marquage VLAN.
Le VLAN natif reste important : les trames non taguées reçues par un port trunk 802.1Q sont placées dans le VLAN natif. Imaginons un cas de figure :
- tous nos clients sont dans le VLAN 20 ;
- le VLAN natif est également le VLAN 20.
Toutes les trames générées par nos switchs (CDP, LLDP, DTP) se retrouveraient alors dans notre VLAN client — pas terrible niveau sécurité. Il est donc fortement conseillé de créer un VLAN réservé au VLAN natif.
Configuration d’une liaison trunk
Configuration de base
Sw(config)# interface FastEthernet 0/24
Sw(config-if)# description VERS_SWITCH_001
Sw(config-if)# switchport mode trunk
Sw(config-if)# switchport trunk encapsulation dot1q
Si la ligne contenant dot1q ne passe pas, ce n’est pas grave : cela veut simplement dire que le protocole ISL n’existe plus pour ce switch. Cette configuration est à mettre sur tous les ports d’interconnexion SWITCH ↔ SWITCH.
Configuration en détail
Pour configurer un port en mode trunk, il faut d’abord voir comment un port est configuré par défaut. Si on allume un switch pour la première fois et qu’on lance un show running-configuration, on voit ceci :
Interface FastEthernet 0/1
!
Interface FastEthernet 0/2
!
etc.
A priori nos ports n’ont aucune configuration… sauf que nos équipements n’affichent pas les paramètres par défaut. S’ils les affichaient, nous verrions :
Interface FastEthernet 0/1
switchport mode dynamic auto
switchport trunk encapsulation negotiate
switchport trunk native VLAN 1
switchport trunk allowed VLAN all
switchport access VLAN 1
!
Interface FastEthernet 0/2
etc.
Une interface switch peut prendre 3 modes : access, trunk et dynamic.
- Le mode access est détaillé dans l’article Les VLANs ;
- Le mode trunk est détaillé ci-dessous ;
- Le mode dynamic est détaillé dans le sous-chapitre « Dynamic Trunking Protocol ».
Le mode trunk
Mettre un port en mode trunk :
Switch(config-if)# switchport mode trunk
Il faut que les deux ports de la liaison trunk soient en mode trunk.
Le mode dynamic
- DTP = Dynamic Trunking Protocol ;
- protocole propriétaire Cisco ;
- permet de configurer dynamiquement les deux ports d’une liaison trunk (ISL ou 802.1Q).
Mettre un port en mode dynamic :
Switch(config-if)# switchport mode dynamic [ auto | desirable ]
Si le port d’en face est configuré en mode manuel, il va se mettre dans le même mode. Il existe deux modes dynamic :
- Auto : le port se met en mode trunk si l’autre port de la liaison le lui demande. Si le port d’en face est en mode trunk ou dynamic desirable, les deux ports passent en trunk ; sinon ils restent en access.
- Desirable : le port essaie activement de mettre la liaison en mode trunk. Si le port d’en face est en mode trunk, dynamic auto ou dynamic desirable, les deux ports passent en trunk ; sinon ils restent en access.

Pour le désactiver :
Switch(config-if)# switchport nonegotiate
Configuration des options
Allowed VLAN
Par défaut, tous les VLANs sont autorisés à transiter sur notre lien trunk. Afin de sécuriser notre réseau, nous pouvons n’autoriser que les VLANs souhaités. Exemple : autoriser les VLANs de 10 à 20 et de 40 à 50.
Switch(config-if)# switchport trunk allowed vlan 10-20, 40-50
ou
Switch(config-if)# switchport trunk allowed vlan 10-50
Switch(config-if)# switchport trunk allowed vlan remove 21-39
VLAN natif
(Ne concerne que le protocole 802.1Q.) Comme expliqué plus haut, il est conseillé de créer un VLAN dédié au VLAN natif. Voici comment faire :
Switch(config)# vlan 3
Switch(config-vlan)# name NATIVE
Switch(config-vlan)# exit
Switch(config)# interface GigaBitEthernet 0/1
Switch(config-if)# switchport trunk native vlan 3
Toutes les trames non taguées seront alors placées dans le VLAN 3 par le port trunk de réception.
Encapsulation
Nous avons vu qu’il est possible d’utiliser les protocoles ISL et 802.1Q pour mettre en place un lien trunk.
Sw(config-if)# switchport trunk encapsulation [ isl | dot1q | negotiate ]
Par défaut, tous nos ports sont en mode negotiate. Si les deux ports d’une liaison sont en negotiate et que les deux équipements supportent les deux protocoles, ISL sera choisi… Il est donc important de choisir soi-même son protocole de trunk.
Configuration de ISL :
Switch(config-if)# switchport trunk encapsulation isl
Configuration de 802.1Q :
Switch(config-if)# switchport trunk encapsulation dot1q
Vérification de la configuration trunk
Vérifier l’état de nos ports :
Switch# show interfaces FastEthernet 0/1 switchport

Sur l’image ci-dessus, on voit que le port 0/1 du Switch_A est en mode dynamic auto (par défaut) et que celui du Switch_B est en mode trunk.
Switch# show interfaces trunk
Port Mode Encapsulation Status Native vlan
Fa0/24 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/24 1-4094
Port Vlans allowed and active in management domain
Fa0/24 1,10,20,30
Port Vlans in spanning tree forwarding state and not pruned
Fa0/24 1,10,20,30
La ligne « operational mode » est donc bien passée en mode trunk.
Questions fréquentes sur les liens Trunk
Qu’est-ce qu’un lien trunk ?
Un lien trunk est une liaison entre deux switchs (ou un switch et un routeur) capable de transporter le trafic de plusieurs VLAN simultanément sur un seul câble. Chaque trame est étiquetée pour identifier le VLAN auquel elle appartient.
Quelle différence entre un port access et un port trunk ?
Un port access appartient à un seul VLAN et transporte du trafic non étiqueté vers un terminal (PC, imprimante). Un port trunk transporte plusieurs VLAN étiquetés, généralement entre équipements réseau.
Qu’est-ce que le protocole 802.1Q ?
802.1Q est le standard IEEE de tagging VLAN. Il ajoute une étiquette de 4 octets dans la trame Ethernet pour indiquer le VLAN. C’est le protocole de trunk le plus utilisé, en remplacement du protocole propriétaire Cisco ISL.
Comment configurer un lien trunk sur un switch Cisco ?
En mode configuration d’interface, on utilise les commandes : switchport mode trunk pour activer le trunk, et switchport trunk allowed vlan pour préciser les VLAN autorisés. On vérifie ensuite avec show interfaces trunk.
Qu’est-ce que le VLAN natif sur un trunk ?
Le VLAN natif est le VLAN dont le trafic circule sans étiquette sur un lien trunk 802.1Q (par défaut le VLAN 1). Il doit être identique des deux côtés du trunk pour éviter les erreurs de configuration et les risques de sécurité.
