# 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

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. EtherChannel est une version propriétaire de Cisco très proche de 802.3ad$^,$.

### Description générale

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

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é

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

En TCP/IP, l'arrivée de paquets désordonnés est certes supportée, mais les performances sont alors très médiocres 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 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), voire également les labels MPLS et les VLAN, 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 élevé de sessions différentes qu'il est possible d'exploiter la vitesse totale du LAG dans ce contexte.
Les implémentations utilisent généralement le concept de hash 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).

### Gestion automatique des agrégats de liens

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 existants, le principe de fonctionnement est similaire. Un équipement va :
* émettre sur l'ensemble des ports, des paquets contenant les informations requises ;
* recevoir sur ces ports des paquets de même type provenant des équipements raccordés ;
* détecter les liens redondants entre le point d'origine et l'autre équipement (le second équipement utilisant le protocole fera de même) ;
* 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. Seule 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)

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 :
* 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)

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 :
* auto : négociation passive avec le second équipement
* desirable : négociation active avec le second équipement

### Contraintes de déploiement
#### Un seul et unique commutateur

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, l'IEEE n'a pas encore statué sur la standardisation de cette fonctionnalité.

#### Utilisation de liens homogènes

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
#### Informatique

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. Cependant, depuis la version Windows Server 2012 R2, le gestionnaire de serveur propose l'agrégation de liens (appelé NIC Teaming) directement sans avoir à installer d'exécutable tiers.

#### Télécoms

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

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

## PPP

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 (MultiLink PPP).

## xDSL

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

* 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).