LightcodeSysadmin Open Source

Chapitre 12 : Les LAN virtuels

Les VLAN

Définition

Un VLAN est un réseau local virtuel, il est possible d’en créer plusieurs sur un réseau physique unique. Tous les utilisateurs d’un même VLAN pourront communiquer entre eux, mais deux machines dans deux VLAN différents ne pourront pas communiquer ensemble. Les VLAN serviront principalement à séparer des groupes d’utilisateurs sur un même réseau physique. Il faut pour cela du matériel compatible. Il existe différent niveau de VLAN : physique, trame et paquet. Les flux peuvent être séparés de différentes manières, en fonction des éléments suivants :

  • Numéro de port : l’administrateur associe les ports du commutateur à des VLAN. Les flux entrant par le port d’un VLAN ne pourra ressortir par un autre port que s’ils appartiennent au même VLAN ;
  • Adresse MAC utilisée : même principe que précédemment sauf qu’au lieu des numéros de port, l’administrateur fait les VLAN en fonction des adresses MAC ;
  • Adresse IP : toujours la même technique mais avec l’adresse IP ;
  • Le SSID : pour les réseaux Wi-Fi, il est possible de séparer les utilisateurs en faisant plusieurs SSID.

Port trunk

Le port trunk permet d’assembler les différents VLAN sur une même liaison physique. En effet, ce port permettra d’envoyer à une machine (comme un routeur) le contenu de chaque VLAN afin de les router par exemple. Les trames sont différenciées entre elle grâce à des tags : par exemple, la norme IEEE 802.1Q ajoute un champ à la trame Ethernet contenant un nombre correspondant au numéro du VLAN.

Les tunnels

Généralités

Les tunnels permettent de relier deux machines. Un tunnel peut avoir plusieurs objectifs : relier deux LAN ensembles ou connecter les employés à leur entreprise de façon sécurisée à travers Internet (télétravail, maintenance d’un serveur…).

Architecture

Les tunnels utilisent un empilement de couches pour transporter les données :

  • Les couches qui serviront à transporter les paquets (3) : ces couches sont classiques, ce sont les mêmes que l’on utilise lors d’une connexion “normale” ;
  • Une ou plusieurs couches d’adaptation (2) qui permettra par exemple de configurer la connexion ;
  • Les couches supérieures qui correspondront à ce qui est envoyé entre les deux machines.

Pour créer un tunnel, il faut deux éléments réseaux (deux serveurs, deux routeurs…) et les deux côtés du tunnel doivent être configurés. Les machines par lesquelles la connexion passera (des routeurs par exemple) verront les trois parties décrites plus haut. Les clients verront simplement la partie (3) car le système d’exploitation aura fait les traitements nécessaires pour décapsuler le paquet ou la trame finale. Lorsqu’une machine voudra envoyer un paquet à l’autre, le système d’exploitation ajoutera les parties (2) et (1) et pourra éventuellement chiffrer la partie (3). Dans le cas où le tunnel est chiffré, on utilisera le terme VPN. En plus d’être chiffré, les VPN peuvent authentifier les deux machines d’extrémité grâce à des clés.

Types de tunnels

Il existe deux catégories de protocole pour réaliser un tunnel. La première se nomme site-to-site, elle permet de connecter deux sites entre eux, c’est-à-dire deux LAN. Il y a deux end-points au tunnel et non une relation client-serveur comme pour les tunnels créés en remote access. Dans ce cas, un serveur VPN permet à des clients de se connecter à un serveur de tunnel.

Les protocoles

GRE (niveau 3)

Le protocole GRE est donc de niveau 3, il est relativement simple puisqu’il se contente d’encapsuler un paquet IP dans un autre paquet IP avec une couche intermédiaire, sans rien crypter.

Dans une connexion de type site-to-site, les deux routeurs peuvent se joindre grâce à Internet ou un autre réseau non-sécurisé. On configurera sur chaque routeur une interface “GRE”, permettant de créer un LAN virtuel entre les deux routeurs. Lorsqu’un des routeurs enverra un paquet à l’autre routeur à l’aide de l’adresse IP du LAN virtuel, les paquets seront encapsulés dans un paquet GRE. Pour relier deux LAN ensemble, il faudra utiliser le routage pour les relier ensemble.

Mais, ce protocole ne propose aucune sécurité, on ne l’utilisera quasiment jamais dans un environnement de production.

IPsec (niveau 3)

Un tunnel IPsec est en fait une liaison IPsec classique avec une couche IP après l’en-tête IPsec. Avec la technique de routage évoquée avec GRE, IPsec permettra de relier deux sous-réseaux ensemble à travers Internet de façon sécurisée.

Enfin, le tunnel IPsec offre une sécurité accrue par le fait qu’il n’est pas possible de déterminer le destinataire final.

SIT (niveau 3)

SIT est un protocole permettant d’encapsuler un paquet IPv6 dans un paquet IPv4.

Dans une connexion 6to4, les paquets IPv6 sont envoyés au serveur 6to4. Ce serveur enverra ensuite le paquet IPv6 sur Internet grâce à une connexion IPv6 native. Les connexions IPv6 entrantes sont envoyés sur le serveur puis le serveur encapsule le paquet IPv6 dans de l’IPv4 pour le client.

La possibilité pour le système d’exploitation de gérer à la fois l’IPv4 et l’IPv6 se nomme Dual Stack.

PPTP (niveau 2)

Contrairement aux protocoles présentés précédemment, PPTP est un protocole de niveau 2. Il fonctionne en mode remote access c’est-à-dire qu’il y a un côté du tunnel qui joue le rôle de serveur et un autre côté fonctionnant en mode client. PPTP permet donc d’envoyer des trames PPP de l’autre côté de la liaison. En fait, les couches (2) et (3) permettront de faire transiter une connexion PPP qui sera chiffrée.

CHAP est un protocole d’authentification, il est utilisé pour connecter l’utilisateur au serveur PPTP à l’aide d’un mot de passe. La sécurité de ce protocole est toutefois peu efficace, on privilégiera donc un protocole de type IPsec.

L2TP (niveau 2)

Comme PPTP, L2TP est un protocole fonctionnant en remote access, le client s’appelle un LAC et le serveur un LNS. Le LNS écoute le pour 1701 pour les demandes de connexion. La structure des trames L2TP est présentée sur la figure ci-contre. De plus, les trames L2TP peuvent être sécurisées grâce à IPsec.