IEEE 802.1Q

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le standard IEEE 802.1Q fournit un mécanisme d'encapsulation très répandu et implanté dans de nombreux équipements de marques différentes. Il permet de propager plusieurs VLAN sur un même lien physique (trunk).

Ce standard succède à l'encapsulation ISL propriétaire Cisco. L'en-tête de trame est complété par une balise de 4 octets.

Le standard IEEE 802.1Q définit le contenu de la balise de VLAN (VLAN tag) avec laquelle on complète l'en-tête de trame Ethernet. Le format de la trame Ethernet modifiée avec les 4 octets supplémentaires est présenté ci-dessous.

Contenu des trames Ethernet[modifier | modifier le code]

Trame ethernet[modifier | modifier le code]

adresse MAC dst. adresse MAC source Taille de la trame/EtherType Data FCS

Trame ethernet modifiée[modifier | modifier le code]

adresse MAC dst. adresse MAC src. Tag (inséré) Len/Etype Data FCS (modifié)

Le champ FCS est recalculé après l'insertion de la balise de VLAN.

Contenu du champ "Tag:IEEE 802.1Q"[modifier | modifier le code]

TPID (16 bits) TCI (16 bits)

Tag protocol identifier, TPID[modifier | modifier le code]

Les 16 premiers bits sont utilisés pour identifier le protocole de la balise insérée. Dans le cas de la balise 802.1Q la valeur de ce champ est fixée à 0x8100.

Contenu du champ TCI[modifier | modifier le code]

Priority (3 bit) CFI (1 bit) Vlan ID, VID (12 bit)
Priorité[modifier | modifier le code]

Ce champ de 3 bits fait référence au standard IEEE 802.1p. Sur 3 bits on peut coder 8 niveaux de priorité de 0 à 7. Ces 8 niveaux sont utilisés pour fixer une priorité aux trames d'un VLAN relativement aux autres VLAN. La notion de priorité dans les VLAN (niveau 2) est indépendante des mécanismes de priorité IP (niveau 3).

Canonical Format Identifier, CFI[modifier | modifier le code]

Ce champ codé sur 1 bit assure la compatibilité entre les adresses MAC Ethernet et Token Ring. Un commutateur Ethernet fixera toujours cette valeur à 0. Si un port Ethernet reçoit une valeur 1 pour ce champ, alors la trame ne sera pas propagée puisqu'elle est destinée à un port «sans balise» (untagged port).

VLAN Id, VID[modifier | modifier le code]

Ce champ de 12 bits sert à identifier le virtual lan (VLAN) auquel appartient la trame. Il est possible de coder 4094 VLAN (de 1 à 4094) avec ce champ. La valeur "0" signifie qu'il n'y a pas de VLAN, et la valeur 4095 est réservée. Les valeurs 1002 à 1005 sont réservées pour des protocoles de niveau 2 différents d'Ethernet.

Spécificités[modifier | modifier le code]

Activation sur Cisco[modifier | modifier le code]

Dans les switch Cisco d'ancienne génération, voici la commande (en italique) qu'il vous faudra envoyer à votre matériel, vous permettant d'utiliser 802.1Q à la place de ISL en configuration "terminal" de l'interface à paramétrer.

switchport trunk encapsulation dot1q

Aujourd'hui ce protocole est activé par défaut, et l'ISL n'est plus disponible dans la plupart des cas.

Activation sur Brocade[modifier | modifier le code]

Tagger un port :

 vlan <vlan_number> [name <name>]
tagged ethe <slot>/<port>

Enlever un tag :

 vlan <vlan_number>
no tagged ethe <slot>/<port>

Activation sur Alcatel[modifier | modifier le code]

Tagger un port : vlan <vlan_number> 802.1Q <slot>/<port> [<“comment”>]
Enlever un tag : vlan <vlan_number> no 802.1Q <slot>/<port>

Activation sur HP Procurve[modifier | modifier le code]

Tagger un port :
 vlan <vlan_number>
   tagged <port>
Enlever un tag de port :
 vlan <vlan_number>
   no tagged <port>

Activation sur Linux[modifier | modifier le code]

À partir des versions 2.6 et supérieures du kernel, les VLAN taggés 802.1Q sont pris en charge (moyennant l'utilisation du module noyau 8021q). Les commandes permettant leur configuration sont : vconfig ou iproute

vconfig add ethx vid
ip route link add link ethX ethX.vid type vlan id vid
vconfig rem ethx.vid
ip route link delete ethX.vid

Analyse du trafic 802.1Q[modifier | modifier le code]

Les logiciels tcpdump ou wireshark[1] permettent d'analyser le trafic VLAN ; exemple :

/usr/sbin/tcpdump -v -i eth0 vlan

Activation sur FreeBSD[modifier | modifier le code]

Il suffit d'utiliser la commande ifconfig. Le kernel GENERIC sur FreeBSD 6 et 7 supporte les VLAN taggés.

ifconfig create vlan1
ifconfig vlan1 vlan 1 vlandev intX

Annexes[modifier | modifier le code]

Listes des protocoles suivant 802.1Q[modifier | modifier le code]

IEEE 802.1Qaz : gestion de la bande passante

IEEE 802.1Qau : gestion des encombrements

Liens internes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Notes[modifier | modifier le code]

  1. (en) Capture VLAN avec wireshark