Les Vlans : les protocoles de transport et de contrôle

Le protocole 802.1q

Historique

La norme 802.1q est née en 1998 pour répondre à un besoin de normalisation sur le transport des Vlans.

Description de la norme

Elle définit, en premier lieu, l'ajout de 2 octets dans la trâme ethernet. Ces deux octets ajoutent plusieurs champs pour répondre à plusieurs besoins. La norme définit alors sur la trame ethernet le champ VPID à 0x8100 pour désigner la trame 802.1q. La principale fonction de la norme est de transporter les Vlans sur le réseau, pour permettre à deux machines d'un même Vlan de communiquer au travers un nombre non définit d'équipement réseau.

La norme 802.1q prévoit également un mécanisme de prioritisation de flux. Cette prioritisation est définie par la norme 802.1p.

Un champ protocole définit sur 1 bit est prévu pour pouvoir utiliser le 802.1q aussi bien sur ethernet que sur TokenRing.

Enfin, le champ Vlan ID permet de fixer un identifiant sur 12 bits d'un Vlan.

architecture d'un commutateur 802.1q

Un commutateur respectant la norme 802.1q se décompose en trois couches :

- La couche configuration qui permet d'ecrire les informations dans la MIB et s'occupe des commandes d'administrations de l'OS implémenté sur le switch

- La couche définition automatique et propagation. Cette couche est chargé d'enregistrer les Vlans présents sur les différents ports du switch et d'avertir le reste du réseau de l'appartenance du switch au Vlan. Il doit donc pour cela maintenir plusieurs tables à jour, que nous détaillerons plus tard.

- La couche relais qui, comme son nom l'indique relais les informations qu'il collecte sur ses ports.

La partie la plus importante dans le protocole 802.1q est la définition automatique et propagation. On rappelle qu'on appelle "trunk" un lien transportant plusieurs Vlans.

Transport statique

Il est possible de configurer le 802.1q à la main pour permettre de transporter les Vlans. Pour cela, il faut configurer chaque port se trouvant sur le chemin d'un port tagué d'un Vlan à un autre. IL faut de plus répeter l'opération pour chaque lien défini. On peut comprendre que le processus s'avère long et fastidieux. La norme prévoit donc un mécanisme qui tague les ports automatiquement suivant les Vlans déclarés.

Transport dynamique : le GVRP

Le protocole GVRP propose différents mécanismes pour la diffusion des informations sur les Vlans reliés à un switch. Avant toutes choses, il faut savoir que seul les switchs supportant le GVRP peuvent faire du GVRP et que des cartes réseaux peuvent, elles aussi supporter le GVRP parfois.

Si le GVRP est actif sur un commutateur, chaque port est automatiquement pris par défaut dans le mécanisme de GVRP. Nous verrons néanmoins plus loin qu'il existe des solutions pour éviter la participation d'un port au GVRP.

Pour pouvoir bien comprendre le problème, supposons qu'un switch soit définit sur un de ses ports sur le Vlan 2. Or, de l'autre coté du réseau, un autre switch possède un port sur le Vlan 2. Le GVRP va permettre de taguer les ports nécessaires pour que les deux ports tagués puissent communiquer.

Le GVRP se décompose en trois parties :

- Une partie applicative que nous appellerons GVRP App. Cette partie contient les informations sur les switchs et les Vlans qu'ils contiennent. Par exemple, on trouvera l'information : "le switch 1 a besoin du Vlan 2"

- Une partie définissant les messages echangés entre les ports d'un même switch que l'on appellera GIP. Cette partie se limite aux echanges internes à un switch.

- Une partie définissant les echanges entre les switchs distants appelé GID.

Les étapes de diffusion d'un Vlan

Pour bien comprendre le mécanisme de diffusion nous allons partir d'un exemple ou nous taguons un port à la main. Le mécanisme suivant s'enclenche alors :


Première étape : le Vlan 2 est configuré sur le port 1 du switch 1. Le switch 1 enregistre alors l'information dans sa table de Vlan en associant le Vlan 2 au port 1 et enregistre le Vlan 1 dans sa liste de Vlan.

Deuxième étape : L'information du Vlan 2 est propagé sur les autres ports du switch avec l'information "le port 1 nécessite le Vlan 2". Si le port est déja tagué de ce Vlan, il ne propage pas l'information.

Troisième étape : si le port n'est pas tagué, il ne se tague pas et envoi l'information aux autres switchs par GID.

Quatrième étape : le switch 2 récupère l'information lui informant que le switch 1 veut les informations sur le Vlan 2. Il tague donc le port d'ou il a reçu le GID en Vlan 2. Si le Vlan 2 ne fait pas parti de sa liste de Vlan, il l'enregistre et il réemet l'information en GIP comme précédemment.

Plus généralement on fixe qu'un port qui reçoit un GID se tague dans le Vlan contenu dans le GID et le propage ensuite en GIP. Un port qui recoit un GIP ne se tague pas dans le Vlan contenu dans le GIP mais le réemet par GID.

Limitation de propagation

Il est possible de limiter les transferts GID et GIP sur les ports grâce aux menus de configuration. On peut ainsi placer les états suivants :

- Le mode apprentissage : c'est le mode par défaut qui fonctionne comem nous l'avons vu précedemment.

- Le mode bloqué : Le port ne s'associe pas au Vlan mais le transmet quand même en GID.

- Le mode non actif : le port ne s'associe pas au Vlan et ne le propage pas.

La limitation reste donc possible pour un contrôle optimale des transferts. La norme se limite à l'automatisation du tagging de port au niveau 1. Elle laisse toutefois le champ libre aux constructeurs pour mettre en place des solutions de vlans niveau 2 et niveau 3.

Les défauts du GVRP

Le problème principal du GVRP vient du trou de sécurité qu'il peut occasioner. En effet, si un pirate souhaite se connecter à un Vlan, il lui suffit d'avoir une carte supportant le 802.1q pour pouvoir se connecter sur le Vlan. Il est donc nécessaire de coupler cette solution avec une solution d'authentification de type 802.1x ou VMPS.