2.C - Les Réseaux Locaux Virtuels (VLAN)

Le terme VLAN signifie Virtual Local Area Network en anglais.

Pourquoi les VLANs ?

Les réseaux locaux (LAN) tels que présentés dans les sections précédentes ont des limitations inhérentes aux fontionnalités des répéteurs et commutateurs utilisés pour les constituer. En effet, dans un réseau local il est impossible de :

  • Limiter les domaines de diffusion c'est-à-dire la portée d'une diffusion.
  • Garantir la sécurité en séparant ou isolant certains trafics par rapport à d'autres.
  • Permettre la mobilité des utilisateurs sans modifier leur droits d'accès au réseau local.

Les VLANs permettent de répondre à ces trois problématiques pour donner plus de flexibilité aux réseaux locaux en modifiant le comportement des commutateurs sans changer les principes de la commutation. Les commutateurs intégrant les VLANs permettent, au sein d'un unique réseau physique, de créer plusieurs réseaux virtuels isolés les uns des autres. Cela permet à la fois de diminuer la portée des diffusions et donc d'améliorer les performances du réseau tout en interdisant les communications issues de VLAN distincts.

Par exemple, il est fréquent dans une organisation de créer un VLAN distinct regroupant toutes les stations qui se connectent au réseau en Wifi pour des raisons de sécurité.

Principes des VLANs

Dans l'exemple ci-dessous, trois VLANs sont définis permettant de regrouper les stations du réseau dans trois réseaux virtuels distincts. Les communications entre deux stations n'appartenant pas au même VLAN devient impossible. Une diffusion provenant d'une station ne sera reçue que par les stations situées dans le même VLAN qu'elle. Ici, l'appartenance au VLAN est définie par le port sur lequel chaque station se branche. On parle de VLAN de niveau 1 par référence au modèle OSI car c'est le branchement physique des stations qui détermine leur appartenance à un VLAN.

VLAN de niveau 1

L'administrateur configure statiquement la table des VLANs permettant d'indiquer comment sont constitués les VLANs. Pour les VLANs de niveau 1, il s'agit d'indiquer pour chaque port du commutateur le numéro de VLAN auquel il est rattaché.

Une fois les VLANs définis, le rôle du commutateur est de faire respecter les principes des VLANs pour chaque trame traversant le commutateur :

  • Une trame provenant d'un VLAN ne sera pas transmise si la destination n'appartient pas au même VLAN.
  • Une trame dont l'adresse MAC destination est l'adresse de diffusion ne sera retransmise que sur les ports appartenant au même VLAN que le port par lequel la trame est entrée dans le commutateur.

Si le réseau local s'étend sur plusieurs commutateurs, la définition des VLANs doit se faire sur chaque commutateur. Les communications inter-VLAN sont donc impossibles dans le réseau local mais deviennent possibles lors de la traversée d'un routeur : une trame issue du VLAN 1 peut sortir du réseau local en passant par le routeur et entrer à nouveau dans le même réseau local pour atteindre une station du VLAN 2. Il va de soi que l'administrateur du réseau local et du routeur peut configurer le routeur pour empêcher ce comportement qui va à l'encontre des principes des VLANs.

Comme nous l'avons vu précédement, le commutateur permet de séparer les domaines de collision, c'est-à-dire que les collisions ne peuvent se produire qu'au niveau d'un port sur lequel un répéteur est branché. Du fait de leur définition, la définition de VLANs dans un réseau local permet de séparer le domaine de diffusion constitué de l'ensemble du réseau en plusieurs domaines de diffusion car chaque VLAN est un domaine de diffusion. L'intérêt principal de l'utilisation des VLANs est la limitation de la portée des diffusions.

Appartenance à un VLAN

Dans l'exemple précédent, nous avons défini des VLANs de niveau 1 en fonction du branchement physique des stations mais il existe principalement trois approches pour décrire l'appartenance d'un hôte à un VLAN :

Les VLANs de niveau 1 OSI

Pour définir dans quel VLAN se trouve chaque station du réseau, il faut que l'administrateur indique de manière statique pour chaque port du commutateur le numéro de VLAN auquel il appartient. L'appartenance d'une station à un VLAN dépend donc du port sur lequel elle se branche. Autrement dit, si une station change son branchement, elle peut potentiellement changer de VLAN.

Cela est à la fois un avantage et un inconvénient. C'est un avantage car cela peut être plus sécurisé à condition que les ports du commutateurs ne soient pas accessibles aux usagers du réseau. Il s'agit d'un inconvénient car si la station change de place et donc de prise murale, il faut potentiellement modifier la configuration de la table des VLANs du commutateur.

Les VLANs de niveau 2 OSI

Pour définir dans quel VLAN se trouve chaque station du réseau, il faut que l'administrateur indique de manière statique dans la table des VLANs pour chaque carte réseau le numéro de VLAN auquel elle appartient. L'identifiant de la carte réseau étant son adresse MAC, l'administrateur doit rentrer toutes les adresses MAC du réseau dans le commutateur. L'appartenance d'une station à un VLAN est donc fixée par l'adresse MAC de la carte réseau qui se raccorde au réseau. C'est la raison pour laquele, on parle de VLAN de niveau 2.

Cela est à la fois un avantage et un inconvénient. C'est un avantage car si une station change de prise murale ou de borne Wifi dans le bâtiment, elle restera dans le même VLAN. Si une station change de carte réseau ou si une nouvelle station arrive dans le réseau, l'administrateur doit ajouter la nouvelle adresse MAC dans la table des VLAN sinon la station ne pourra pas communiquer. Les VLANs de niveau 2 sont parfois considérés comme étant moins sécurisés car un pirate pourrait modifier l'adresse MAC source de toutes les trames qu'il envoie afin de s'inflitrer dans un VLAN.

Les VLANs de niveau 3 OSI

Enfin, il est possible de définir l'appartenance au VLAN en fonction de l'adresse IP associée à chaque carte réseau. C'est souple et facile à configurer mais n'est pas du tout sécurisé car il est facile de modifier son adresse IP. De plus, cela nécessite que le commutateur lise les adresses IP source et destination dans l'en-tête IP pour mettre en oeuvre les VLAN. D'une part, cela engendre une perte de performance car augmente le temps de traversée du commutateur. D'autre part, cela ne respecte pas le principe d'indépendance des couches : le commutateur est un équipement de niveau 2 qui a priori ne connait pas les protocoles de niveau 3.

Transporter le numéro de VLANs

Quand le réseau local s'étend sur plusieurs commutateurs et que des VLANs sont définis, il est nécessaire de transporter l'information d'appartenance à un VLAN d'un commutateur à l'autre. En effet, chaque commutateur doit connaître le VLAN associé à la source et à la destination pour mettre en oeuvre les VLANs.

Dans le cas des VLANs de niveau 2, si chaque commutateur du réseau dispose d'une table des VLAN contenant toutes les adresses MAC du réseau, l'information d'appartenance au VLAN est disponible dans la table en récupérant l'adresse MAC source et destination dans la trame.

Dans le cas des VLANs de niveau 1, une trame qui circule sur un lien entre deux commutateurs ne peut pas être associée à un VLAN car le lien entre deux commutateurs peut potentiellement acheminer des trames provenant de plusieurs VLANs. Dans ce cas et uniquement sur les liens entre commutateurs, il est alors nécessaire d'ajouter le numéro de VLAN de la station émettrice dans l'en-tête de la trame. La norme IEEE 802.1p/Q spécifie comment faire cela comme illustré dans la figure ci-dessous.

Trame IEEE 802.1p/Q

La norme IEEE 802.1p/Q permet de transporter le numéro de VLAN d'une trame sur un lien entre deux commutateurs. Il s'agit d'une modification transparente de l'en-tête MAC en y ajoutant 4 octets, deux octets pour modifier le champ type avec la valeur 0x8100 afin d'indiquer que le champ suivant contient le numéro de VLAN sur 2 octets également. Le commutateur source ajoute ces 4 octets alors que le commutateur destination les supprime après avoir récupéré le numéro de VLAN.