Maintenant que l’on sait à quoi sert un lien Trunk (cf chapitre Trunk) et la configuration manuelle associée, on se rend compte que cela devient vite fatiguant de configurer des Trunk sur tous les liens inter-switchs de l’entreprise.
Comment pourrait-on se simplifier la vie car n’oublions pas, un bon informaticien est un informaticien fénéant ? Et bien Cisco a créé un protocole qui va monter automatiquement un Trunk entre 2 switchs, c’est le protocole DTP.
Définition
DTP pour Dynamic Trunking Procotol, c’est un protocole propriétaire Cisco donc ne fonctionne qu’entre switchs Cisco !
Le principe est très simple, lorsqu’un port monte, des annonces DTP sont envoyées ;
- si le port est connecté à un switch voisin, ce dernier va recevoir l’annonce DTP et y répondre. Des deux côtés, l’activation du Trunk s’effectue ;
- si le port est connecté à un pc, ce dernier ne répondra pas à l’annonce car il comprend pas le protocole. Sur le port du switch, le Trunk n’est pas activé et donc reste en mode Access.
Vu comme ça, il est évident que c’est simple. En fait, ça l’est beaucoup moins et soyez sûr que vous aurez des questions relatives à DTP lors de l’examen du CCNA.
Fonctionnement
Un port physique d’un switch peut avoir plusieurs état (ou mode) concernant le DTP. Ces états sont très importants à connaitre car selon le modèle de votre switch, l’état par défaut n’est pas le même (je sais c’est aberrant mais c’est comme ça).
Grâce au tableau ci-dessus, on voit que selon l’état choisi, le port « souhaite », « impose » ou « interdit » de monter un trunk, tout est une question de négociation avec son voisin. Calculez les différentes possibilités et vous trouverez le tableau suivant :
Les cases où il y a des « ? » sont les cas où le comportement des 2 switchs est incertain car la configuration est incohérente : d’un côté on configure le port en Access et de l’autre en Trunk donc ça ne fonctionnera pas.
Configuration
Si l’état par défaut du port ne vous convient pas, vous pouvez configurer le mode DTP comme bon vous semble.
Prenons l’exemple des switchs A et B connectés entre eux via leur port Fa0/1 respectifs. Configurons le switch A pour qu’il soit en mode dynamic desirable
Switch_A(config)# interface fastethernet 0/1
Switch_A(config-if)# shutdown
Switch_A(config-if)# switchport mode dynamic desirable
Switch_A(config-if)# no shutdown
Et sur le switch B, on configure le port Fa0/1 en mode auto :
Switch_B(config)# interface fastethernet 0/1
Switch_B(config-if)# shutdown
Switch_B(config-if)# switchport mode dynamic auto
Switch_B(config-if)# no shutdown
Au final, vérifions si le lien entre les 2 switchs monte bien en Trunk (regardons sur le switch A):
Switch_A# show interfaces fastethernet 0/1 trunk Port Mode Encapsulation Status Native vlan
Fa0/1 desirable 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/1 1,1002-1005
Port Vlans allowed and active in management domain
Fa0/1 1,1002-1005
Port Vlans in spanning tree forwarding state and not pruned
Fa0/1 1,1002-1005
On remarque que le port Fa0/1 est bien en status trunking, ce qui veut dire que le lien entre les 2 switchs est bien en Trunk !
Explication :
-
le switch A est en mode dynamic desirable donc il envoi des invitations au switch B pour monter un lien Trunk ;
-
le switch B est en mode dynamic auto donc il attend une invitation de son voisin, qu’il reçoit d’ailleurs. Une fois recue, il active le trunk et répond au switch A ;
-
le lien Trunk monte entre les 2 switchs !
Remarque : on aurait mis le mode dynamic auto des 2 côté, cela n’aurait pas fonctionné car chacun aurait alors attendu une sollicitation de son voisin. On peut toujours attendre longtemps…
Important
Comme dans tout protocole, le bug ou le plantage existe, ce qui a pour conséquence qu’un lien entre 2 switchs peut ne pas monter en Trunk et donc basculer en mode Access. La conséquence est que les trames utilisateurs taguées avec leur VLAN ne peuvent plus passer par ce lien. Grosso modo, on coupe la communication réseau.
Il est donc fortement conseillé de désactiver le DTP et de forcer le lien Trunk entre 2 switchs. Je sais, vous allez me dire « alors pourquoi avoir créé ce protocole ? ». Il est relativement ancien mais doit tout de même être compris pour le CCNA. Mon conseil reste le forcage en statique d’une configuration Trunk entre 2 switchs dont voici la configuration :
Switch_A(config)# interface fastethernet 0/1 Switch_A(config-if)# shutdown Switch_A(config-if)# switchport mode trunk Switch_A(config-if)# switchport nonegociate Switch_A(config-if)# no shutdown
Idem sur le switch B. Avec ces commandes, vous forcez le trunk (mode trunk) de par et d’autre et vous désactivez l’envoi d’invitation au voisin (nonegociate), donc vous désactivez le DTP. Au moins, vous maitrisez votre réseau et son comportement !
Très intéressant. Merci
Merci !
Merci Bq vraiment c’était parfaitement
Vous m’aidez bq , j’étais vraiment perdu , je ne sais pas comment te remercier ?
Merci
Ce commentaire est suffisant 🙂 Merci !
Bonjour,
J’aimerai savoir si le vlan natif doit etre inclue dans le trunk,
c’est à dire :swtichport trunk allowed vlan natifc ou pas et pourquoi stp
d’avance merci
Bonjour, savoir si le VLAN natif doit être ou non dans le Trunk dépend de son utilisation. La majorité des sociétés le laissent transiter mais ne l’utilisent pas pour transporter du trafic utilisateur.
Idem pour le STP, on laisse le processus STP gérer l’arbre pour le VLAN natif (qui pour rappel n’est pas forcement le VLAN 1)
C’est nettement plus clair merci beaucoup
Queles protocoles detablir denégociation peuvent etre activés sur les commutateur pour etablir l’agregation de liens???
Bonjour,
Les protocoles qui te permettent de monter un agrégat de lien sont LACP (norme) et PAGP (Cisco).
Je te conseille de lire cet article qui explique comment cela fonctionne : https://reussirsonccna.fr/comment-agreger-des-liens-entre-2-equipements/
Très bonne explication ! Tout devient tout de suite beaucoup plus clair, damnit!!
Merci bien.
Merci pour le commentaire 🙂
Je ne sais comment te remercier. Je t’assure que j’étais vraiment perdu, mais en lisant ton article j’ai bien compris le concept.
Merci beaucoup
Hello,
Merci pour ton commentaire 🙂 Ca fait très plaisir que tu es bien compris ce protocole !
Bonjour, j’ai testé de configuré un lien sur un switch (sous PT)
mais celui-ci me renvoie une erreur !
il n’a pas l’air de savoir le mode « esirable » ?
sw(config-if)#switchport mode desirable
^
% Invalid input detected at '^' marker.
client-sw(config-if)#switchport mode ?
access Set trunking mode to ACCESS unconditionally
dynamic Set trunking mode to dynamically negotiate access or trunk mode
trunk Set trunking mode to TRUNK unconditionally
Bonjour,
En effet, il y a une petite coquille dans l’article, j’ai oublié un « dynamic ». La commande est « switchport mode dynamic desirable ».
J’ai mis à jour l’article, merci pour la remarque 🙂
[…] Pour le CCNA, faire attention à ne pas mélanger les modes entre PAgP et LACP, c’est forcément une question qui tombe. Et ne pas mélanger le fonctionnement d’un mode (par exemple : je préviens ou je ne préviens pas mon voisin) avec les modes du protocole DTP (cf chapitre DTP). […]