DTP – ou comment être fainéant avec le Trunk

9

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!

PARTAGER SUR

9 COMMENTAIRES

  1. 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

  2. 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 🙂

LAISSER UNE RÉPONSE