3. Réseaux locaux virtuels : VLANs

3.1. Définitions

On a vu qu'un réseau local (LAN) est défini par un domaine de diffusion dans lequel tous les hôtes reçoivent les messages de diffusion émis par n'importe quel autre hôte du réseau. Par définition, un réseau local est délimité par une interface d'équipement de niveau 3 du modèle OSI (couche réseau).

Un réseau local virtuel (VLAN) est un réseau local (LAN) distribué sur des équipements de niveau 2 du modèle OSI (couche liaison). Le domaine de diffusion se retrouve ainsi réparti sur ces mêmes équipements de niveau 2. Ainsi, tous les hôtes appartenant au même réseau local (domaine de diffusion) constituent un groupe logique indépendant de la topologie physique du réseau.

La définition de base étant posée, deux problèmes restent à résoudre.

  • Comment communiquer entre plusieurs réseaux locaux virtuels ?

  • Comment assurer la répartition de plusieurs réseaux locaux virtuels sur plusieurs équipements de niveau liaison ?

Pour traiter le premier problème, il faut rappeler qu'il est absolument nécessaire de passer par un routeur (niveau réseau du modèle OSI) pour interconnecter plusieurs réseaux locaux. On aboutit ainsi au second problème à une différence près. Le routeur doit avoir connaissance des mêmes informations que les commutateurs au niveau liaison.

Pour traiter le premier et le second problème, il est donc nécessaire d'élaborer une technique de partage des réseaux locaux entre équipements. Cette technique consiste à étiqueter les trames pour identifier le trafic des différents réseaux locaux sur un même canal physique.

Ainsi, les réseaux locaux sont distribués sur les différents équipements via des liaisons logiques dédiées appelées trunks. Le trunk est une connexion physique unique sur laquelle on transmet le trafic de plusieurs réseaux virtuels. Les trames qui traversent le trunk sont complétées avec un identificateur de réseau local virtuel (VLAN id). Grâce à cette identification, les trames sont conservées dans un même VLAN (ou domaine de diffusion).

Les trunks peuvent être utilisés :

Entre deux commutateurs

C'est le mode de distribution des réseaux locaux le plus courant. C'est la solution du second problème énoncé ci-dessus.

Entre un commutateur et un hôte

C'est le mode de fonctionnement à surveiller étroitement. Un hôte qui supporte le trunking a la possibilité d'analyser le trafic de tous les réseaux locaux virtuels.

Entre un commutateur et un routeur

C'est le mode fonctionnement qui permet d'accéder aux fonctions de routage ; donc à l'interconnexion des réseaux virtuels par routage inter-VLAN. C'est la solution du premier problème énoncé ci-dessus.

Enfin, il ne faut pas oublier que tous les VLANs véhiculés dans le même trunk partagent la bande passante du média utilisé. Le trunk peut donc constituer un goulot d'étranglement si sa capacité est insuffisante.

3.2. Réseaux locaux virtuels standards

Il existe plusieurs mécanismes de gestion des VLANs. Certains sont propriétaires et ne fonctionnent que sur les équipements d'une seule marque.

VLANs par ports

Cette technique fournit une méthode de division d'un équipement de niveau 2 (commutateur) en plusieurs domaines de diffusion. La configuration de cette division est spécifique à chaque plateforme.

Bien que le coût d'administration de ce genre de configuration soit important puisqu'il faut gérer manuellement sur chaque équipement la distribution des réseaux locaux, cette technique est indépendante des plateformes et de leurs systèmes d'exploitation. C'est la raison principale pour laquelle elle est très répandue. Le commutateur assure une isolation complète entre l'hôte et le VLAN auquel il appartient.

VLANs du type Cisco Inter-Switch Link, ISL VLANs

Cette technique propriétaire a été développée spécifiquement pour les équipements Cisco™. Elle complète les en-têtes de trames avec 30 octets répartis en 13 champs. Ce type d'encapsulation n'est plus beaucoup utilisé du fait de son incompatibilité avec le standard IEEE 802.1Q. La documentation Cisco™ est à l'adresse InterSwitch Link and IEEE 802.1Q Frame Format

VLANs IEEE 802.1Q

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. C'est sur ce standard que s'appuie ce document. L'en-tête de trame est complété par une balise de quatre octets. Les champs contenus dans ces quatre octets sont présentés dans la section suivante. Les spécifications sont accessibles à l'adresse IEEE 802.1Q Standard

3.3. Balise IEEE 802.1Q

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 :

Il faut noter que le champ FCS est recalculé après l'insertion de la balise de VLAN.

Voici un extrait de capture, réalisée avec Wireshark, qui illustre les champs de la balise IEEE 802.1Q.

Frame 103 (1518 bytes on wire, 1518 bytes captured)
Ethernet II, Src: 00:14:f2:75:ed:72, Dst: 00:10:5a:de:9d:d7
    Destination: 3com_de:9d:d7 (00:10:5a:de:9d:d7)
    Source: Cisco_75:ed:72 (00:14:f2:75:ed:72)
    Type: 802.1Q Virtual LAN (0x8100) 1
802.1Q Virtual LAN
    000. .... .... .... = Priority: 0 2
    ...0 .... .... .... = CFI: 0      3
    .... 0000 0110 0100 = ID: 100     4
    Type: IP (0x0800)
Internet Protocol, Src: 172.17.0.2 (172.17.0.2), Dst: 172.16.80.19 (172.16.80.19)
Transmission Control Protocol, Src Port: www (80), Dst Port: 1548 (1548)

1

Tag protocol identifier, TPID, EtherType

Ce champ de 16 bits identifie le protocole véhiculé dans la trame. La valeur 0x8100 désigne une balise IEEE 802.1Q / 802.1P.

2

Priority

Ce champ de 3 bits fait référence au standard IEEE 802.1P. Sur 3 bits on peut coder 8 niveaux de priorités de 0 à 7. La notion de priorité dans les VLANs est sans rapport avec les mécanismes de priorité IP au niveau réseau. Ces 8 niveaux sont utilisés pour fixer une priorité aux trames d'un VLAN relativement aux autres VLANs.

3

Canonical Format Identifier

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

4

VLAN Identifier, vlan id, VID

Ce champ de 12 bits sert à identifier le réseau local virtuel auquel appartient la trame. Il est possible de coder 4094 (2^12-2) réseaux virtuels (VLANs) avec ce champ.