Agrégation de liens

Un article de Wikipédia, l'encyclopédie libre.
Une application de l'agrégation de liens.

L'agrégation de liens est une technique utilisée dans les réseaux informatiques, permettant le regroupement de plusieurs ports réseau et de les utiliser comme s'il s'agissait d'un seul. Le but est d’accroitre le débit au-delà des limites d'un seul lien, et éventuellement de faire en sorte que les autres ports prennent le relai si un lien tombe en panne (redondance).

Suivant le contexte, on peut rencontrer la notion d'agrégation de liens sous d'autres appellations : LAG (Link Aggregation Group), Shortest Path Bridging, trunk Ethernet, EtherChannel, NIC teaming, port channel, port teaming, port trunking, link bundling, multi-link trunking (MLT), NIC bonding, network bonding, bonding, network fault tolerance (NFT)…

L'agrégation de liens est le plus souvent mise en place entre les ports de commutateurs Ethernet ou entre des cartes Ethernet d'ordinateurs sous Linux, Unix ou Windows. Toutefois, l'agrégation est un concept général qui peut être mis en œuvre dans chacune des trois couches inférieures du modèle OSI. On peut agréger par exemple des liens CPL sur le réseau électrique (par exemple IEEE 1901 (en)). Sur un réseau sans fil (par exemple IEEE 802.11), un équipement peut combiner plusieurs plages de fréquence en une seule, qui sera plus étendue. En couche 2, en plus de l'agrégation de liens Ethernet, on peut agréger par exemple des liens longue distance PPP avec multilink PPP. Sur la couche réseau (couche 3), on peut envoyer des paquets IP en les émettant tour à tour sur différentes routes, soit avec la méthode du tourniquet, soit en fonction d'une valeur de hachage des différents champs contenus dans le paquet IP.

Les interfaces agrégées peuvent partager une même adresse logique (par exemple MAC ou IP) ; au contraire, on peut conserver pour chaque interface sa propre adresse.

Ethernet[modifier | modifier le code]

La plupart des implémentations sont aujourd'hui conformes à la clause 43 de la norme Ethernet IEEE 802.3-2005, plus souvent désignée par le terme IEEE 802.3ad (nom du groupe de travail). Depuis, la spécification de l'agrégation de lien dispose d'une norme indépendante : IEEE 802.1AX[1]. EtherChannel est une version propriétaire de Cisco très proche de 802.3ad[2],[3].

Description générale[modifier | modifier le code]

L'agrégation de liens répond à deux problèmes dans les réseaux Ethernet :

  • la limitation en bande passante entre deux équipements ;
  • l'absence de redondance des liens.

Évolution de la bande passante[modifier | modifier le code]

Les besoins en bande passante n'évoluent pas de manière linéaire. Historiquement, les débits disponibles normalisés pour Ethernet ont augmenté d'un facteur 10 à chaque génération (10 Mbit/s, 100 Mb/s, 1 Gb/s, 10 Gb/s). Si l'on se trouve proche d'un seuil, la solution consistait à migrer vers la nouvelle génération, le plus souvent avec un surcoût élevé.

La solution alternative, introduite par la plupart des constructeurs réseaux au début des années 1990, consiste à associer deux, trois ou quatre liens Ethernet physiques en un seul lien logique via le « Channel Bonding ». La plupart de ces solutions requièrent une configuration manuelle.

Renforcement de la disponibilité[modifier | modifier le code]

La connexion de deux équipements via un lien implique trois points individuels de défaillance : les deux ports et le lien lui-même, que ce soit dans le contexte d'un raccordement d'un ordinateur à un commutateur, ou dans le contexte de connexion de deux commutateurs.

Plusieurs connexions physiques peuvent être mises en place, cependant, beaucoup de protocoles de niveaux supérieurs n'ont pas été conçus de manière à basculer de manière totalement transparente en cas de dysfonctionnement.

Répartition des données sur les différents liens[modifier | modifier le code]

En TCP/IP, l'arrivée de paquets désordonnés est certes supportée, mais les performances sont alors très médiocres[4] car ceci est souvent interprété comme des pertes de paquets et entraine des retransmissions et des ralentissements de l'émission (en TCP, le protocole de transport généralement utilisé pour réaliser des transferts de données). Par ailleurs Ethernet n'est pas censé réordonner les trames. C'est pour ces raisons que les LAG Ethernet ne prévoient dans la plupart des cas ni d'envoyer les paquets au hasard sur les liens physiques, ni d'utiliser ceux-ci simplement l'un après l'autre, car rien ne garantit qu'un lien ne soit pas légèrement plus rapide ou plus lent que son voisin, selon sa longueur physique.

Les LAG Ethernet sont donc presque toujours[5] implémentés de sorte de répartir les paquets en scrutant leurs en-têtes (headers), au moins ceux de la couche 2 (Liaison de données) (pour les équipements les plus simples), mais si possible simultanément ceux des couches 2 (Liaison de données) / 3 (Réseau) / 4 (Transport)[6], voire également les labels MPLS et les VLAN[7], afin d'en étudier certains éléments ; c'est le cas habituel des routeurs modernes. De cette façon une session TCP donnée, disposant toujours des mêmes éléments considérés en en-têtes pour chaque sens (adresses MAC, adresses IP, ports), verra ses paquets tous transmis par le même lien physique. Cela évite que les paquets soient réordonnés (et donc évite des performances catastrophiques), mais ne permet cependant pas à une session unique de dépasser la vitesse d'un seul lien physique. C'est avec un nombre suffisamment[8] élevé de sessions différentes qu'il est possible d'exploiter la vitesse totale du LAG dans ce contexte[9].

Les implémentations[10] utilisent généralement le concept de hash[11] calculé à partir des adresses (et ports le cas échéant) présents en en-têtes des paquets, hash dont les valeurs sont associés dans une table aux différents liens physiques du LAG. Les implémentations peuvent être plus ou moins efficaces, et prévoir éventuellement des éléments et procédures supplémentaires pour mettre à jour et modifier la table de distribution en cas de mauvais résultat (si un lien est plein en présence d'autres liens peu chargés par exemple)[12].

Gestion automatique des agrégats de liens[modifier | modifier le code]

Dans le domaine des agrégations de liens, un protocole de configuration automatique permet à plusieurs équipements de gérer dynamiquement des agrégats de liens de manière cohérente. Les principales fonctionnalités sont les suivantes :

  • détection des équipements connectés utilisant le même protocole de configuration automatique ;
  • découverte des liens physiques redondants et configurés de manière identique (vitesse, duplex...), entre les deux équipements ;
  • groupement logique de ces liens en un lien logique ;
  • détection automatique des liens morts et mise à jour des groupem