Standard 802.1q

Définition générale du standard 802.1Q

Le standard 802.1Q (couche 2 du modèle OSI) répond à la problématique suivante : lorsqu’une trame circule d’un commutateur à un autre, comment identifier son appartenance à un vLAN ?
Quand un réseau comporte plusieurs switches gérant un ensemble de vLAN’s, il devient nécessaire de déterminer à quel vLAN chaque trame circulant appartient.
La réponse de lu standard 802.1Q est de définir comment les trames doivent être marquées pour être identifiées par les switches :
01
Un lien 802.1Q est un lien par lequel on transporte plusieurs vLAN’s.

Marquage de la trame

Il existe 2 types de marquage :

  • Untagged (non taggé) : les trames ne sont pas marquées car il est possible de déterminer leur vLAN en fonction de leur source.
  • Tagged (taggé) : on insère dans la trame son numéro de vLAN ID pour identifier son appartenance.

Il n’est pas nécessaire de tagged une trame si celle-ci passe par un lien reliant 2 vLAN’s (sur 2 switches différents) ayant le même vLAN ID.
Des lors que l’on souhaite faire circuler une trame à travers plusieurs switches en passant par un lien 802.1Q, il devient nécessaire de la tagged.
Néanmoins, il peut arriver que des trames untagged passent par un lien 802.1Q. Pour cette raison, les switches intégrent la fonctionnalité de vLAN natif, auquel sera envoyé toutes les trames untagged.

Format de la trame

Pour tagged la trame, on y ajoute 4 octets :
02.PNG
TPID (16 bits) : ID du protocole utilisé (0x8100 pour 802.1Q)
Priority (3 bits) : niveau de priorité (de 0 à 7) permettant la gestion QoS. Plus la valeur est haute, plus la priorité l’est.
CFI (1 bit) : format de l’adresse MAC (valeur 0 en Ethernet)
VID (12 bits) : vLAN ID auquel appartient la trame.
 
 

Cisco

Switch Cisco – Association vLAN & Interface

Mode configuration spécifique

Passer en mode configuration interface :

cisco(config)#interface type_interface numéro_interface
cisco(config-if)#

Pour obtenir la liste des types interfaces :

cisco(config)#interface ?

Ce sera surtout les types FastEthernet et GigabitEthernet qui nous intéresseront.
En fonction du switch, le numéro d’interface sera au format :

    • x/x ⇒ 0/24
    • x/x/x ⇒ 1/0/24

Configurer plusieurs interfaces à la fois :

cisco(config)#interface range { fastethernet | gigabitethernet } x/x-X | x/x/x-X
cisco(config-if-range)#

Assigner un seul vLAN à une interface

Configuration

Activer le mode access :

cisco(config-if)#switchport mode access

Le mode access permet d’ajouter une interface dans un seul vLAN.
Associer l’interface à un vLAN :

cisco(config-if)#switchport access vlan vlan_id

Exemple de configuration

POD_1(config)#interface range gigabitEthernet 0/1-12
POD_1(config-if-range)#switchport mode access
POD_1(config-if-range)#switchport access vlan 10

Validation de la configuration

Afficher la liste des vLAN’s :

cisco#show vlan

POD_1#show vlan
VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi0/13, Gi0/14, Gi0/15, Gi0/16
                                                Gi0/17, Gi0/18, Gi0/19, Gi0/20
                                                Gi0/21, Gi0/22, Gi0/23, Gi0/24
10   TUTOFACILE                       active    Gi0/1, Gi0/2, Gi0/3, Gi0/4     # Ajout interfaces ok
                                                Gi0/5, Gi0/6, Gi0/7, Gi0/8
                                                Gi0/9, Gi0/10, Gi0/11, Gi0/12
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

Assigner plusieurs vLAN’s à une interface (trunk)

Voici un tableau de résultats en fonction du mode configuré sur chaque extrémité du lien 802.1q :
Image1

Configuration

Activer l’encapsulation dot1q (utilisation de la norme 802.1q) :

cisco(config-if)#switchport trunk encapsulation dot1q

Activer le mode trunk :

cisco(config-if)#switchport mode trunk

Le mode trunk permet d’ajouter une interface dans plusieurs vLAN’s. Une interface configurée en mode trunk uniquement, sera associée à tous les vLAN’s (1 à 4094).
Assigner des vLAN’s spécifiques à l’interface :

cisco(config-if)#switchport trunk allowed vlan vlan_id,vlan_id,vlan_id,(…)

Comme expliqué dans le pense-bête sur la norme 802.1q, le switch tag les trames pour permettre la détermination de son appartenance. Néanmoins, tout le trafic réseau ne supporte pas le « tagging ».
Pour cette raison, il est possible de configurer un vLAN natif par lequel passera tout le trafic untagged.
Configurer un vLAN natif :

cisco(config-if)#switchport trunk native vlan vlan_id

Exemple de configuration

POD_1(config)#interface gigabitEthernet 0/1
POD_1(config-if)#switchport trunk encapsulation dot1q
POD_1(config-if)#switchport mode trunk
POD_1(config-if)#switchport trunk allowed vlan 10
POD_1(config-if)#switchport trunk native vlan 1

Validation de la configuration

Afficher la liste des interfaces en mode trunk

cisco#show interface trunk

POD_1#show interfaces trunk
Port        Mode             Encapsulation  Status        Native vlan
Gi0/1       on               802.1q         trunking      1     # Activation mode trunk + vlan natif ok
Port        Vlans allowed on trunk
Gi0/1       10     # vLAN spécifique au trunk ok
Port        Vlans allowed and active in management domain
Gi0/1       10
Port        Vlans in spanning tree forwarding state and not pruned
Gi0/1       10