Réseau : quelle est la différence entre VLAN et VXLAN ?
Les VLANs offrent des avantages en matière de sécurité et de gestion du trafic, mais sont limités par la taille et le routage. Les VXLANs résolvent ces problèmes en créant une superposition de réseaux de couche 3.
Les administrateurs réseau utilisent les réseaux locaux virtuels, ou VLAN, pour relier des éléments d’une application et isoler ses données d’autres applications. Cependant, les VLAN présentent certaines limites qui empêchent leur utilisation dans les grands centres de données et les environnements en cloud.
Il existe de nombreuses options de superposition de réseau, chacune convenant à certains environnements d’application. Nous parlons dans cet article des VXLANs, qui restent utiles dans les grands centres de données et les environnements en cloud. À mesure que les entreprises apportent des modifications ou des extensions à leur réseau, elles peuvent intégrer les VXLANs en conséquence.
Comment fonctionnent les VLANs ?
Un VLAN superpose un réseau (local) logique au-dessus d’un réseau local physique (LAN). Le VLAN fonctionne au niveau de la couche 2, soit la couche de liaison de données, du modèle OSI. Les administrateurs réseau peuvent configurer des VLANs pour segmenter le trafic et les ressources à l’attention d’appareils ou de services spécifiques.
Les VLANs offrent une sécurité et une gestion du trafic améliorées pour les réseaux d’entreprise. Cependant, la norme IEEE 802.1Q limite le nombre de VLAN pris en charge à un maximum de 4 096, en raison de la méthode de marquage des VLAN qui est normalisée sur 12 bits. Cette limite pose des problèmes dans les environnements actuels de grands centres de données et de cloud. Les VLANs seraient pourtant utiles sur les clouds publics où les mêmes applications s’exécutent simultanément pour plusieurs clients.
Autre problème, dans les grands centres de données, les composants d’une application ou d’un service peuvent être exécutés sur plusieurs machines virtuelles réparties sur plusieurs serveurs, dans une seule installation ou dans des centres géographiquement éloignés. Or, les VLANs fonctionnant au niveau de la couche 2 du modèle OSI, les composants applicatifs ne peuvent pas être acheminés vers différents sous-réseaux ou à travers le réseau.
Comment fonctionnent les VXLANs ?
Le concept de réseau local virtuel extensible (VXLAN) existe depuis plusieurs années. Il ne s’agit pas d’une norme Internet, même s’il est documenté dans la RFC 7348 de l’Internet Engineering Task Force. Ce sont VMware et Cisco qui ont initialement imaginé le principe des VXLANs. Puis, d’autres équipementiers ont fini par les adopter pour remédier aux limites des VLANs. Les VXLANs fournissent un réseau superposé au niveau de la couche 3 du modèle OSI, afin de résoudre l’impossibilité de router des VLANs et l’impossibilité d’en avoir plus de 4 096 par domaine.
D’un point de vue fonctionnel, les applications continuent d’utiliser les VLANs, mais les VXLAN regroupent tous les VLANs d’une application en paquets UDP (User Datagram Protocol), lesquels peuvent être routés. Les VXLANs ne sont pas visibles par les composants de l’application, si bien que les administrateurs n’ont pas besoin de les modifier. Chaque application reçoit un ensemble complet de 4 096 VLANs disponibles.
Les VXLANs ont un identifiant de réseau (VNI) codé sur 24 bits, ce qui permet de créer jusqu’à 16 millions de VXLAN au sein d’un même domaine.
Qu’est-ce qu’un VTEP ?
Un agent de tunnel virtuel (VTEP, pour Virtual Tunnel Endpoint) achemine les données entre les sous-réseaux ou à travers le réseau. Les VTEPs résident souvent dans l’hyperviseur d’un système virtualisé, mais ils peuvent aussi être situés dans un routeur. Le VTEP qui supporte un VXLAN doit avoir accès aux VLAN qu’une application utilise. Il doit également maintenir des interfaces avec chacune des connexions réseau nécessaires pour joindre les systèmes où résident les composants de l’application.
Avant de transmettre des données, le VTEP enveloppe les données dans un paquet UDP. L’en-tête du paquet comprend l’adresse IP de destination et un en-tête VXLAN de 8 octets. L’en-tête VXLAN contient les informations suivantes :
- un VNI de 24 bits,
- un champ de 8 bits (dit « flag ») dont un seul bit vaut 1,
- deux autres champs, qui totalisent 32 bits et dont l’usage n’est pas encore défini dans la norme.
Le VTEP à l’autre bout de la communication dépouille les en-têtes UDP et VXLAN avant de transmettre les données du VLAN aux composants applicatifs appropriés. Aucun des VTEPs ne modifie les données, de sorte que les données reçues sont identiques à celles transmises par le composant applicatif qui les avaient envoyées sur le réseau.
Du multicast pour communiquer sur le réseau
Plutôt que d’envoyer chaque paquet plusieurs fois, les VTEP utilisent le routage multicast pour envoyer chaque paquet vers plusieurs destinations. La gestion du réseau supervise les destinataires selon les adresses multicast. Les adresses IP multicast sont celles comprises entre 224.0.0.0 et 239.255.255.255. Une adresse est attribuée à un VTEP pour chaque application qu’il prend en charge.
Lorsqu’un composant d’application initie une communication avec un autre composant, il fonctionne comme il le ferait dans un environnement non VXLAN. Si la destination se trouve sur le même sous-réseau, il utilise un message de diffusion ARP (Address Resolution Protocol) pour localiser l’autre composant. Si la destination se trouve sur un sous-réseau différent, l’application envoie des messages ARP au routeur le plus proche, qui doit idéalement servir de VTEP. S’il n’y a pas de routeur, un VTEP ailleurs doit recevoir les messages ARP de l’application.
Le VTEP encapsule la requête ARP dans des en-têtes UDP et VXLAN, puis envoie le paquet à l’IP du groupe multicast associée au segment VXLAN auquel appartiennent les composants qui sont en train de communiquer.
Le VTEP qui prend en charge le composant applicatif de destination supprime les en-têtes UDP et VXLAN, laissant les données VLAN telles que le composant émetteur les a envoyées. Le VTEP localise ensuite la destination à l’aide d’un paquet ARP, comme il le ferait si le réseau était limité à un seul système. Les paquets de données et les messages de réponse sont transmis selon les mêmes méthodes que la transmission initiale.
Comment communiquer en dehors du VXLAN ?
Dans certains cas, les applications doivent communiquer en dehors de l’environnement VXLAN. Dans ce cas, une passerelle VXLAN supprime les en-têtes VXLAN et UDP et transmet le paquet aux destinataires. Les réponses sont transmises à la passerelle. Les en-têtes VXLAN et UDP sont attachés et le message revient par le même chemin qu’à l’origine. Ni la VM source ni l’équipement de destination ne doivent être modifiés pour prendre part à l’échange.