Configuration d’un trunk entre deux switch

Cet article explique sommairement ce qu’est un trunk et comment le configurer…

Un trunk, qu’est-ce que c’est ?

Un trunk est un lien entre deux équipements, le plus souvent entre deux switch, configuré de telle sorte que l’on peut y faire circuler des trames ethernet modifiées comportant des informations relatives au VLAN sur lequel elles transitent.

Prenons par exemple l’exemple ou deux switch sont reliés l’un à l’autre, chacun ayant été configuré avec 2 VLANS, le VLAN 1 et le VLAN 2…

Le but ici est que le traffic du VLAN1 de gauche puisse circuler sur le VLAN1 de droite et idem pour le VLAN2. Afin que celà soit possible, il faut configurer la liaison entre les deux switch en « trunk »… ou plus précisément configurer une encapsulation des trames lorsqu’elles transitent sur le lien de sorte que le switch qui la reçoit peut ensuite la relayer dans le bon VLAN.

Quels protocoles ?

Quand on parle d’encapsulation, on doit forcément faire appel à un protocole. Du côté de Cisco, deux protocoles existent pour l’encapsulation des données sur un trunk:

  1. ISL (Inter Switch Link) qui est un protocole propriétaire Cisco qui tend à disparaître.
  2. dot1Q ( IEEE 802.1Q ) le protocole standard défini par l’IEEE.

Nous  nous contenterons de voir dot1q dans le cas présent. Toutefois il est bon de savoir que chacun a son propre fonctionnement. ISL pour sa part encapsule toute les trames, quelque soit le VLAN. dot1Q, lui ne fait qu’insérer un tag (un marqueur) dans l’entête de la trame ethernet … et uniquement sur les VLANs autres que le VLAN natif. (Le VLAN natif est celui utilisé par les protocoles comme CDP par exemple pour s’échanger les informations).

Principe général de configuration

La première chose à savoir c’est que les deux extrémités du lien doivent êtres configurées de manière adéquate pour que le trunk fonctionne. On peut soit forcer le mode trunk … soit s’arranger pour que les équipements négocient. Suivant le mode configuré de chaque côté du lien, le résultat variera.

Ce mode de fonctionnement se fait à l’aide de la commande suivante:

SW1(config-if)#switchport mode <mode de fonctionnement>

Il y a quatres modes:

  • access: typiquement le mode d’un port prévu pour recevoir la connexion d’un PC, d’un serveur, …
  • trunk: force le mode de fonctionnement en trunk
  • dynamic auto: autorise la négociation
  • dynamic desirable: autorise la négociation avec une préférence pour le passage en trunk si possible.

Le tableau ci-dessous reprend l’état de fonctionnement du lien en fonction de la configuration du mode aux deux extrémités:

Exemple concret

En se basant sur le premier schéma, voici la manipulation qu’il faudrait effectuer sur SW1 et SW2 afin que la laison soit forcée en trunk:

Sur SW1

SW1#configure terminal
SW1(config)#interface fastethernet 0/1
SW1(config-if)#switchport mode trunk
SW1(config-if)#^Z
SW1#

Sur SW2 (exactement la même manip).

SW2#configure terminal
SW2(config)#interface fastethernet 0/1
SW2(config-if)#switchport mode trunk
SW2(config-if)#^Z
SW2#

Il nous reste maintenant à vérifier que le trunk est opérationnel:

SW1#show interface fastEthernet 0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: On
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Appliance trust: none
SW1#

L’administrative mode … c’est le mode configuré, l’operationnal mode, c’est le mode de fonctionnement résultant de la configuration du lien.

A noter que sur certaines versions de switch, lorsqu’on force un trunk, il faut avoir au préalable défini l’encapsulation à utiliser:

SW2(config-if)#switchport trunk encapsulation dot1q

On peut également avoir d’autres informations:

SW1#show interfaces trunk

Port        Mode         Encapsulation  Status        Native vlan
Fa0/1       on           802.1q         trunking      1

Port      Vlans allowed on trunk
Fa0/1       1-4094

Port        Vlans allowed and active in management domain
Fa0/1       1,10,20,30

Port        Vlans in spanning tree forwarding state and not pruned
Fa0/1       1,10,20,30
SW1#

On a ici le récapitulatif des ports qui fonctionnent en trunk ainsi que les infos relatives aux VLANs qui peuvent ou non transiter sur le lien.

A noter que sous « Mode » on a l’état du trunk résultant de la config. Par exemple si on était en négociation … la commande afficherait alors « desirable » par exemple.

Comme on le constate, il n’y a pas grand chose à faire pour qu’un trunk soit établi. Là ou les choses se corsent c’est quant on veut gérer les vlans qui sont autorisés ou non sur le trunk, ou quand on active le pruning, fonctionnalité qui a pour but de ne pas propager des trames sur un lien quant il semble que le vlan en question n’est pas utilisé au delà de celui-ci.

10 Comments on “Configuration d’un trunk entre deux switch

  1. lorsque j’essaye de rendre une interface g0/1 en mode trunck dans sw1 je mentionne l’encapsulation dot1q ça marche pas

  2. Merci pour cet article, le tableau récapitulatif des résultats en fonction des modes est très pratique.

    Je rajouterai que la commande « switchport nonegociate » permet de désactiver le protocole DTP et donc de forcer un mode (Access ou Trunk) sans avertir son voisin. Ca permet aussi d’éviter les éventuels bug du protocole 🙂

    Cyril