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:
- ISL (Inter Switch Link) qui est un protocole propriétaire Cisco qui tend à disparaître.
- 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.
Merci beaucoup c’est très intéressant
merci bcp c très utile
Beaucoup a laise maintenant
trop bien
Très interesant
merci ca amrche
lorsque j’essaye de rendre une interface g0/1 en mode trunck dans sw1 je mentionne l’encapsulation dot1q ça marche pas
Sans a voir le message d’erreur exact, difficile de dire ce qui ne va pas.
je suis satisfait
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