Agrégation de liens

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Bonding)
Sauter à la navigation Sauter à la recherche
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), 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 groupements de liens.

Parmi les différents protocoles existant, le principe de fonctionnement est similaire. Un équipement va :

  1. émettre sur l'ensemble des ports, des paquets contenant les informations requises ;
  2. recevoir sur ces ports des paquets de même type provenant des équipements raccordés ;
  3. détecter les liens redondants entre le point d'origine et l'autre équipement (le second équipement utilisant le protocole fera de même) ;
  4. créer un agrégat cohérent avec l'autre équipement en prenant en compte les liens détectés à l'étape précédente.

Une fois que le protocole aura convergé vers un état stable, les équipements continueront d'émettre régulièrement leurs paquets de configuration automatique, ceci afin qu'ils détectent, par l'absence de réception de paquet sur un port, un lien « mort ». À ce moment, ils mettront à jour l'agrégat concerné afin de ne plus utiliser le lien mort.

Le principal avantage de la configuration automatique des agrégats par rapport à la configuration manuelle réside dans la détection de liens morts. Via une configuration manuelle, dans certains cas l'interface de raccordement, le lien mort ne passera pas à « down » en raison de la présence d'un autre équipement, passif, entre les deux commutateurs. Seul l'utilisation de paquets de type « keep alive » permet de détecter une défaillance du lien. Sans cette détection, par le protocole d'agrégation, le lien serait toujours opérationnel et le commutateur continuerait d'émettre des données sur ce lien (qui seraient perdues).

Link Aggregation Control Protocol (LACP)[modifier | modifier le code]

LACP est un protocole standardisé par l'IEEE dans sa norme 802.3ad et est implémenté par différents constructeurs. Il fournit un mécanisme permettant de contrôler le groupement de plusieurs ports physiques en un canal logique de communication.

Le principe de fonctionnement consiste à émettre des paquets LACP vers l'équipement partenaire, directement connecté et configuré pour utiliser LACP. Le mécanisme LACP va permettre d'identifier si l'équipement en face prend LACP en charge, et groupera les ports configurés de manière similaire (vitesse, mode duplex, VLAN, trunk de vlan, etc.)

Un équipement configuré pour utiliser LACP peut fonctionner en deux modes[13] :

  • passif : l'équipement n'initiera pas de négociation LACP. Il répondra uniquement aux sollicitations des équipements « partenaires ».
  • actif : l'équipement initiera les négociations LACP.

Port Aggregation Protocol (PAgP)[modifier | modifier le code]

PAgP est un protocole propriétaire Cisco, de ce fait disponible sur les commutateurs Cisco ainsi que sur les équipements disposant de la licence adéquate. Son utilisation permet de faciliter et d'automatiser la configuration des agrégats de liens (EtherChannel chez Cisco) en échangeant les informations nécessaires entre les ports Ethernet, à la manière de LACP.

Un équipement configuré pour utiliser PAgP peut fonctionner en deux modes[13] :

  • auto : négociation passive avec le second équipement
  • desirable : négociation active avec le second équipement

Contraintes de déploiement[modifier | modifier le code]

Un seul et unique commutateur[modifier | modifier le code]

L'ensemble des ports physiques appartenant à un groupement de liens doit se trouver sur un même et unique commutateur. Ceci laisse un unique point de défaillance : lorsque le commutateur rencontre un problème, l'ensemble des liens peut être touché.

Néanmoins la plupart des vendeurs ont défini des extensions propriétaires pour pallier cette contrainte : plusieurs commutateurs physiques peuvent être agrégés en un commutateur logique. Actuellement[Quand ?], l'IEEE n'a pas encore statué sur la standardisation de cette fonctionnalité.

Utilisation de liens homogènes[modifier | modifier le code]

La norme IEEE requiert que chaque lien soit en mode full-duplex et à une vitesse identique (10, 100, 1 000, 10 000 Mb/s...).

Implémentations[modifier | modifier le code]

Informatique[modifier | modifier le code]

Sous Linux, la prise en charge de l'agrégation de liens par le noyau peut être compilée en dur ou sous la forme d’un module. Les liens agrégés sont présentés sous forme d'une interface réseau virtuelle par le système d'exploitation. Des utilitaires permettent de lancer des commandes pour grouper ou dégrouper des interfaces.

Sous Microsoft Windows, l'agrégation de lien passe la plupart du temps par l'installation d'un pilote de périphérique spécifique et un utilitaire dédié qui permet de créer le lien et d'en spécifier le type et les caractéristiques.

Télécoms[modifier | modifier le code]

Cisco propose la technologie EtherChannel, la norme 802.3ad est en fait une version standardisée d'EtherChannel. Les autres constructeurs d'équipements IPs et Ethernet proposent également des LAG standardisés et interopérables.

Modems RTC[modifier | modifier le code]

On peut agréger des liaisons temporaires sur le réseau téléphonique commuté.

PPP[modifier | modifier le code]

Plusieurs liens PPP (quelles que soient leurs technologies de transport) peuvent être agrégé sur un BAS ou un NAS (en) en utilisant le protocole MLPPP[14] (MultiLink PPP).

xDSL[modifier | modifier le code]

Plusieurs lignes DSL peuvent être regroupées afin d'augmenter la capacité de la bande passante. Au Royaume-Uni par exemple, cette technique est utilisée dans les zones éloignées des centraux, dans lesquelles le débit unitaire d'une ligne est trop faible pour assurer seule le débit requis par l'abonné.

Wi-Fi[modifier | modifier le code]

  • Une variation propriétaire de la norme IEEE 802.11g, la technologie « Super G », permet agréger deux canaux standard 802.11g à 54 Mbit/s pour obtenir un débit crête de 108 Mbit/s.
  • En IEEE 802.11n, un mode avec une plage de fréquences s'étendant sur 40 MHz est défini. Ce canal unique utilise deux bandes de 20 MHz (2 porteuses) adjacentes. Le terme d'agrégation de porteuses est aussi utilisé.
  • La norme IEEE 802.11ac permet, dans la bande des 5 GHz, d'agréger 4 canaux adjacents (80 MHz) et, en option, jusqu'à 8 canaux (160 MHz).

Notes et références[modifier | modifier le code]

  1. (en) « IEEE P802.1AX-REV™/D4.54 Draft », sur IETF,
  2. (en) Cisco EtherChannel Technology
  3. (en) Understanding EtherChannel Load Balancing and Redundancy on Catalyst Switches
  4. (en) Jie Feng, Zhipeng Ouyang, Lisong Xu, Byrav Ramamurthy, « Packet Reordering in High-Speed Networks and Its Impact on High-Speed TCP Variants »
  5. Kaminow, Ivan P., 1930-, Li, Tingye. et Willner, Alan E., Optical Fiber Telecommunications V B : systems and networks, Academic Press, (ISBN 9780123741721, OCLC 272382278, lire en ligne)
  6. (en) « Juniper Networks - Hashing algorithm for link aggregation groups (LAGs) on EX Series switches », sur kb.juniper.net (consulté le 1er avril 2018)
  7. « Understanding the Algorithm Used to Hash LAG Bundle and Egress Next-Hop ECMP Traffic - Technical Documentation - Support - Juniper Networks », sur www.juniper.net (consulté le 1er avril 2018)
  8. (en) Ju-Yeon Jo, Yoohwan Kim, H. Jonathan Chao, Frank Merat, « Internet Traffic Load Balancing using Dynamic Hashing with Flow Volume »,
  9. Xu, Zhuo (Zhuo Frank), Designing and implementing IP/MPLS-based Ethernet Layer 2 VPN services : an advanced guide for VPLS and VLL, Wiley, (ISBN 0470456566, OCLC 554998685, lire en ligne)
  10. (en) « Understanding EtherChannel Load Balancing and Redundancy on Catalyst Switches », sur Cisco (consulté le 1er avril 2018)
  11. (en-US) « Understand Etherchannel Load Balancing. - Packet Pushers - », Packet Pushers,‎ (lire en ligne)
  12. (en) Khasnabish, Bhumip et Krishnan, Ram, « Mechanisms for Optimizing Link Aggregation Group (LAG) and Equal-Cost Multipath (ECMP) Component Link Utilization in Networks », sur tools.ietf.org (consulté le 1er avril 2018)
  13. a et b « EtherChannel PAgP and LACP modes », sur www.omnisecu.com (consulté le 1er avril 2018)
  14. (en) Coradetti, Tom et Sklower, Keith, « The PPP Multilink Protocol (MP) », sur tools.ietf.org (consulté le 1er avril 2018)

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]