Trunk 802.1Q et ISL, ce qu’il faut savoir pour le CCNA

19

Avec les chapitres précédents, nous savons comment créer un VLAN (cf chapitre VLAN), comment propager cette création de VLAN sur tous les switchs du réseau (cf chapitre VTP) et comment attribuer un port dans un VLAN (cf fin du chapitre VLAN).

Maintenant, la question qui tue: quand une trame provenant d’un switch voisin arrive sur notre switch, comment sait-il à quel VLAN appartient la trame reçue?

Et bien, si on ne fait rien, le switch considérera que la trame appartient au VLAN configuré sur le port (VLAN 1 par défaut). Il faut donc configurer les switchs pour qu’à chaque fois qu’une trame sort d’un port pour joindre un autre switch, on y rajoute l’identifiant du VLAN auquel la trame appartient. C’est la notion de Trunk!

Définition

Le trunk est le mécanisme qui permet d’insérer l’identifiant du VLAN sur une trame utilisateur. Toute trame se propageant sur plusieurs switchs conservera toujours l’information de son appartenance à son VLAN. Et le switch de destination saura avec quels ports la trame peut être commutée (ports appartenant au même VLAN).

Cette configuration de lien Trunk s’effectue sur les liens entre switchs, souvent appelés uplink.

 

Dans le schéma ci dessous, on configure le lien inter-switch en Trunk. Toutes les trames qui sortiront sur ce lien (switch de droite ou de gauche), se verront appliquer une étiquette supplémentaire qui contient l’identifiant du VLAN (en noir sur la trame).

Historiquement, Cisco avait créé son propre protocole de Trunk entre ses switchs, nommé ISL – Inter-Switch Link. Mais très rapidement, cette fonctionnalité plus qu’essentielle, demanda une inter-opérabilité avec d’autres constructeurs.

La norme Trunk 802.1Q fut sortie et Cisco l’implémenta aussi dans ses switchs. D’où la possibilité sur certains switchs Cisco de décider quel trunk on souhaite faire, ISL ou 802.1Q.

A retenir pour le CCNA, le tableau suivant :

 

Trunk ISL

Le trunk propriétaire Cisco ISL a la particularité d’encapsuler toute la trame de l’utilisateur dans une nouvelle trame, nommée trame ISL. Voici à quoi ressemble une trame ISL:

 

Remarque: comme cette trame a un format particulier, il est obligatoire que le switch d’en face puisse comprendre ce formatage. Il faut donc configurer le port du switch d’en face en trunk ISL.

Voici ci dessous la configuration à effectuer sur les ports des switchs interconnectés entre eux:

Switch(config)# interface fastethernet 0/0 
Switch(config-if)# shutdown 
Switch(config-if)# switchport trunk encapsulation isl 
Switch(config-if)# switchport mode trunk
Switch(config-if)# no shutdown
 
Vérifions que le port en question est bien configuré:
 
Switch# show interfaces fastethernet 0/0 trunk 
     Port      Mode         Encapsulation  Status        Native VLAN 
     Fa0/0     trunk        isl            trunking      1 

     Port      VLANs allowed on trunk 
     Fa0/0     1,1002-1005 

     Port      VLANs allowed and active in management domain 
     Fa0/0     1,1002-1005 

     Port      VLANs in spanning tree forwarding state and not pruned 
     Fa0/0     1,1002-1005
 
Avec cette commande, on peut vérifier que le port Fa0/0 est bien en mode Trunk ISL via le status trunking.
Pour information, la colonne native VLAN permet de mettre dans le VLAN 1 une trame qui arriverait non encapsulée ISL sur ce port (on en reparle un peu plus loin).
 

Trunk 802.1Q

Le trunk normalisé 802.1Q n’encapsule pas toute la trame de l’utilisateur comme ISL mais casse la trame et y insère une étiquette ou tag, nommée TAG 802.1Q. Voici à quoi ressemble une trame utilisateur avec le rajout du TAG 802.1Q:

 

La première trame est celle de l’utilisateur qui arrive sur le switch. Dès que cette trame sort vers un port configuré en Trunk 802.1Q, le switch insère l’étiquette TAG (trame n°2 dans le schéma).

En inspectant le contenu de ce TAG, on remarque les champs suivants (trame n°3 dans le schéma):

  • Ethertype: permet de préciser que c’est une trame 802.1Q, la valeur en hexa est 0x8100
  • PRI: champs de priorité sur 3 bits qui permet de classifier le trafic utilisateur pour lui appliquer de la qualité de service (voix, vidéo…). Ce champ est aussi appelé 802.1P ou COS – Class Of Service.
  • CFI – Canonical Format Identifier: permet la compatibilité d’un réseau Ethernet avec un réseau TokenRing. Champ à oublier pour le CCNA car il n’existe quasiment plus du réseau TokenRing aujourd’hui.
  • VLAN ID – VLAN Identifier: codé sur 12bits: valeur numérique du VLAN auquel la trame utilisateur appartient. C’est le champ le plus important à connaitre!

Voici ci dessous la configuration à effectuer sur les ports des switchs interconnectés entre eux:

Switch(config)# interface fastethernet 0/1 
Switch(config-if)# shutdown 
Switch(config-if)# switchport trunk encapsulation dot1q  
Switch(config-if)# switchport mode trunk
Switch(config-if)# no shutdown 

On peut remarquer qu’il n’y a qu’une seule variable qui change par rapport à une configuration Trunk ISL (la variable dot1q en rouge).

Vérifions que le port en question est bien configuré:
 
Switch# show interfaces fastethernet 0/0 trunk 
     Port      Mode         Encapsulation  Status        Native VLAN 
     Fa0/0     trunk        dot1q          trunking      1 

     Port      VLANs allowed on trunk 
     Fa0/0     1,1002-1005 

     Port      VLANs allowed and active in management domain 
     Fa0/0     1,1002-1005 

     Port      VLANs in spanning tree forwarding state and not pruned 
     Fa0/0     1,1002-1005
 
Avec cette commande, on peut vérifier que le port Fa0/0 est bien en mode Trunk 802.1Q avec le status trunking et l’encapsulation dot1q.

Important – VLAN natif

La particularité du Trunk 802.1Q vient du fait que pour un VLAN en particulier, le Trunk ne casse pas la trame de l’utilisateur et donc ne lui rajoute pas le TAG. Le trunk laisse la trame transiter sans aucun changement.
 
Pourquoi?
 
Il faut revenir sur l’historique des réseaux: jadis (sic!) on pouvait se trouver dans le cas où des PC connectés à un HUB était lui même connecté à 2 switchs. On se trouvait alors dans le schéma suivant:
 
 
Prenons le cas où les PC dans le VLAN 2 souhaitent communiquer:
  1. un PC de gauche envoi du trafic;
  2. le switch de gauche ajoute le TAG VLAN=2 dans la trame et envoi la trame au HUB;
  3. le HUB diffuse la trame taguée sur tous ses ports;
  4. le switch de droite reçoit la trame taguée, enlève le TAG et commute la trame vers les ports appartenant au même VLAN (2 ici);
  5. le PC du bas reçoit une trame taguée! Comme le PC ne sait pas lire le TAG, il rejette la trame.

On voit ici que le PC du bas ne pourra jamais recevoir de trame provenant d’autres PC qui appartiennent au même VLAN que lui.

Donc dans la norme 802.1Q, il a été défini que pour un VLAN en particulier, appelé VLAN natif, les switchs laisseraient passer la trame initiale sans ajouter de TAG.

Regardons maintenant le même comportement avec un PC appartenant au VLAN n°1, configuré comme VLAN natif:

 
Reprenons le cas où les PC souhaitent communiquer mais cette fois ci ils appartiennent au VLAN natif 1:

  1. un PC de gauche envoi du trafic;
  2. le switch de gauche n’ajoute pas le TAG VLAN=1 dans la trame et envoi la trame au HUB;
  3. le HUB diffuse la trame non taguée sur tous ses ports;
  4. le switch de droite reçoit la trame non taguée, donc sait qu’elle appartient au VLAN natif (1 ici) et commute la trame vers les ports appartenant au même VLAN;
  5. le PC du bas reçoit une trame non taguée donc la traite comme toute trame classique.

On voit ici que le PC du bas peut communiquer sans aucun souci avec d’autres PC qui appartiennent au même VLAN que lui.

 

A retenir pour le CCNA

Donc, parmis les choses à savoir pour l’examen CCNA, essayez de retenir les informations suivantes:

  • Trunk propriétaire –> ISL de Cisco avec une encapsulation complète de la trame
  • Trunk normalisé –> 802.1Q avec un ajout de TAG dans la trame
  • par défaut, le VLAN natif est le VLAN 1 (attention à ne pas confondre VLAN natif et VLAN par défaut!)
  • dans une configuration 802.1Q, le VLAN natif doit être identique des deux côtés

Remarque hors CCNA: la notion de Trunk chez d’autres constructeurs est différente: c’est la capacité d’agréger plusieurs liens physiques entre 2 switchs pour en faire qu’un seul virtuel. On active alors les protocoles PAGP ou LACP. Donc il faut faire attention quand vous parlez à des techniciens à propos du Trunk, certaines personnes ne comprendront pas car vous parlerez de 2 notions différentes.

 
PARTAGER SUR

19 COMMENTAIRES

  1. Vous dites que la notion de Trunk chez d’autres constructeurs est différente car pour ces derniers elle consiste d’agréger plusieurs liens physiques entre 2 switchs pour en faire qu’un seul virtuel en Cisco. Mais On retrouve cette fonctionnalité chez Cisco en utilisant Trunk ….
    Est ce que Cisco utilisé les deux définitions ?? Merci

  2. Bonjour Cyril,
    je salue ce travail remarquable qui nous permet, à travers vos articles, de sortir sur certains zones qui étaient floues jusqu’à la lecture ces publication.Merci.
    J’ai une question sur la mise en place de vlan:
    j’ai configuré des vlan sur un switch vtp serveur et ce dernier propage la conf sur les switchs clients.
    j’ai également un routeur qui attribue automatiquement les adresses ip aux différends pc et permet de router le trafic entre les vlans.
    J’arrive à pinguer les PCs et accéder aux applications se trouvant dans les différends vlans mais je n’arrive pas à voir les ordinateurs autres que ce qui appartiennent aux même vlans.

  3. Bonjour,

    Très bon article que je revois quand j’ai un trou. J’ai également une petite question:
    Y a t-il une commande pour vérifier qu’un vlan est bien propagé d’un switch à un autre à part de vérifier sa configuration?

    • Bonjour,
      Merci pour le commentaire 🙂
      Pour ta question, il n’est pas possible (du moins je ne connais pas la commande si elle existe) de savoir si un VLAN a bien été propagé vers son switch voisin.

  4. Ca fait 2 jours que je me casse la tete avec le site Cisco en anglais pour essayer de comprendre cette histoire de trunk sur le VLAN natif. Je tombe sur ton site et en 5 minutes, tout est super clair, merci beaucoup pour ta pédagogie !

  5. Je veux te dire que le 3 septembre je vais subir mon examen Interconnecting Cisco Networking Devices Part 1 (ICND1) je veux que tu m’aide un peux surtout avec le Cisco packet tracer, je ne sais pas ce que je dois t’offrir mais je veux réussir aide moi stp?

  6. Bonjour Cyril,

    Merci pour toutes ces explications très claires ! Effectivement, à vous lire, on pense qu’un ouvrage rédigé par vos soins serait le bienvenu dans toute cette littérature technique anglophone …
    Pour ma part, je vais tenter la certification CCNA et m’entraîner sur du matériel CISCO acheté d’occasion. Je souhaitais vous demander si pour la partie VOIP je devais m’équiper de switches et routeurs spécifiques ?

    Merci à vous !

    Ludovic

    • Bonjour Ludovic,
      Merci pour les encouragements. Ecrire un ouvrage prend du temps mais c’est une chose à laquelle je pense en effet. Je vous tiendrai tous au courant au travers de ce site bien évidemment.
      Pour ta question, tu n’as pas besoin de matériel particulier pour le CCNA, car il n’y a pas de TP sur la VOIP.

  7. Dans l’ensemble et dans le détails de ce blog/site tout est parfait … parfaitement parfait. Pédagogie 20/20, tes explications sont superbes (surtout les retour à l’historique comme dans le cas du vlan natif) et en francais please 🙂
    … et je me permet de noter ta pédagogie parce que wow!! des que je lis un article d’ici je ne trouve plus le besoin d’aller voir ailleurs vu que tout deviens claire et évident.
    As tu pensé à éditer un livre? si non tu devrais vraiment le faire vu qu’avec le contenu de ton site il suffit juste de classer, quelques transitions d’un chapitre à un autre et le tour est joué!

    Enfin bref! ca fait un bout de temps que je suis tes articles et c’est bête de ne pas en profiter pour te remercier! il y en a surement qui comme moi, viennent, prennent l’info et se tirent! mais crois moi il y a beaucoup de satisfaction et de reconnaissance! alors merci merci merci et un petit dernier pour mes futures visites incognito 🙂

LAISSER UNE RÉPONSE