I - Architecture traditionnelle Core, Aggregation, Access
6. Qu'est-ce que PAgP et LACP ?
LACP et PAgP, connus sous le nom EtherChannel, sont deux protocoles semblables, qui permettent l’agrégation de plusieurs liaisons physiques en vue de créer une seule liaison logique. L’utilisation de ces protocoles offre une redondance des liens physiques, mais également une augmentation de la bande passante. Ces protocoles sont précieux afin de mettre en place une infrastructure résiliente avec de larges bandes passantes.
EtherChannel est apparu pour la première fois au début des années 90 avec le protocole PAgP proposé par CISCO. Il faudra attendre les années 2000 pour que l’IEEE propose une version standardisée 802.3ad, qui offrira une compatibilité inter-constructeur. Bien que ces deux protocoles ne soient pas totalement identiques dans leur fonctionnement, leur objectif reste le même.
LACP utilise des messages Link Aggregation Control Data Units ou LACPDU en vue d’établir et de maintenir un échange d’informations, indispensable à la négociation des liens agrégés.
Les LACPDU sont composés de la manière suivante :
- Version : Indique sur 1 octet la version du protocole LACP (aujourd’hui il n’existe qu’une version).
- Actor System Priority : Indique sur 2 octets la valeur du switch émetteur comprise entre 1 (priorité la plus élevée) et 65535 (priorité la plus basse), en vue de déterminer le switch acteur de l’agrégation. Le switch qui a la priorité la plus basse est le switch acteur, si les priorités sont égales l’adresse MAC la plus basse sera préférée. A noter que la valeur par défaut est 32768 .
- Actor System ID : Indique sur 6 octets l’identifiant du switch émetteur, généralement l’adresse MAC du switch.
- Actor Key : Indique sur 2 octets la valeur du switch émetteur comprise entre 1 et 65535 qui permet d’identifier le groupe d’agrégation. Cette valeur est obligatoirement définie manuellement durant la configuration.
- Actor Port Priority : Indique sur 2 octets la valeur du switch émetteur comprise entre 1 (priorité la plus élevée) et 65535 (priorité la plus basse) qui permet d’identifier le port actif de l’agrégation. En cas d’égalité le numéro de port le plus bas, ainsi que l’adresse MAC la plus basse seront préférés. A noter que par défaut cette valeur est 32768 , cependant elle peut être personnalisée par l’administrateur.
- Actor Port Number : Indique sur 2 octets le numéro d’identifiant du port sur le switch émetteur. Ce numéro d’identification est attribué par le switch lui-même et ne peut être modifié.
- Actor State : Indique sur 1 octet les différents états du port émetteur au sein de l’agrégat, notamment :
- Activity : Indique si le port est défini en mode actif ou passif.
- Timeout : Indique la durée avant que le lien ne soit inactif.
- Aggregation : Indique l’état de l’agrégation avec le partenaire.
- Synchronization : Indique l’état de synchronisation avec le partenaire.
- Collecting & Distributing : Indique la possibilité de recevoir et d’émettre les LACPDU.
- Defaulted : Indique si les valeurs utilisées sont les valeurs par défaut ou configurées par l’administrateur.
- Expired : Indique si l’agrégation a expiré ou non.
- Partner System Priority : Indique sur 2 octets la valeur du switch partenaire comprise entre 1 (priorité la plus élevée) et 65535 (priorité la plus basse), en vue de déterminer le switch acteur de l’agrégation. A noter que la valeur par défaut est 32768 , cependant elle peut être personnalisée par l’administrateur.
- Partner System ID : Indique sur 6 octets l’identifiant du switch partenaire, généralement l’adresse MAC du switch.
- Partner Key : Indique sur 2 octets la valeur du switch partenaire comprise entre 1 et 65535 qui permet d’identifier les groupes d’agrégation.
- Partner Port Priority : Indique sur 2 octets la valeur du switch partenaire comprise entre 1 (priorité la plus élevée) et 65535 (priorité la plus basse) qui permet d’identifier le port actif de l’agrégation. En cas d’égalité le numéro de port le plus bas, ainsi que l’adresse MAC la plus basse seront préférés. A noter que par défaut cette valeur est 32768 , cependant elle peut être personnalisée par l’administrateur.
- Partner Port Number : Indique sur 2 octets le numéro d’identifiant du port sur le switch partenaire.
- Partner State : Indique sur 1 octet les différents états du port partenaire au sein de l’agrégat.
- Activity : Indique si le port est défini en mode actif ou passif.
- Timeout : Indique la durée avant que le lien ne soit inactif.
- Aggregation : Indique l’état de l’agrégation avec le partenaire.
- Synchronization : Indique l’état de synchronisation avec le partenaire.
- Collecting & Distributing : Indique la possibilité de recevoir et d’émettre les LACPDU.
- Defaulted : Indique si les valeurs utilisées sont les valeurs par défaut ou configurées par l’administrateur.
- Expired : Indique si l’agrégation a expiré ou non.
- TLV : Indique les informations complémentaires si besoin.
- Reserved : Champ d’un octet réservé pour les extensions futures du protocole.
Les champs Actor sont remplis dès le premier échange LACPDU, contrairement aux champs Partner qui ne sont remplis qu’à partir du deuxième échange LACPDU. Les messages LACPDU sont ensuite échangés périodiquement et mis à jour en fonction des événements réseaux.
Les ports faisant partie de l’agrégation peuvent être configurés en deux modes :
- Actif : Dans ce mode le port envoie des LACPDU pour établir l’agrégation avec le switch voisin.
- Passif : Dans ce mode le port attend de recevoir un premier LACPDU avant d’établir l’agrégation avec le switch voisin.
Vous pouvez voir ci-dessous le tableau de négociation des agrégations de liens pour LACP :
| Port équipement A | Port équipement B | Agrégation LACP établie |
|---|---|---|
| Actif | Actif | Agrégation LACP établie |
| Actif | Passif | Agrégation LACP établie |
| Passif | Actif | Agrégation LACP établie |
| Passif | Passif | Aucune agrégation |
En plus du mode des ports, la fréquence d’envoi des messages LACPDU est un paramètre de configuration indispensable. Ce paramètre dispose de deux modes de configuration :
- Vitesse rapide (Fast) : Envoie des messages LACPDU toutes les 1 seconde, pour une détection rapide des incidents.
- Vitesse lente (Slow) : Envoi des messages LACPDU toutes les 30 secondes, pour une préférence de stabilité.
LACP offre deux grands modes de fonctionnalités avancées :
- Failover : Intègre une gestion dynamique des pannes qui assure une stabilité du lien en retirant les liaisons défaillantes de l’agrégation et en ajustant la bande passante. En cas de disponibilité, le lien sera réintégré automatiquement dans l’agrégat.
- Load Balancing : Permet la répartition de charge de manière équilibrée sur plusieurs liaisons physiques. Cette répartition peut se faire au travers de différents algorithmes. Le choix de l’algorithme reste à la discrétion de l’administrateur en fonction de sa topologie réseaux et de ses besoins. Ces différents algorithmes s'appuient notamment sur :
- MAC source : Cet algorithme se base sur l’adresse MAC source des paquets pour les répartir sur les liens. Cela peut être utile dans le cadre d’un réseau où un grand nombre de clients se connecte sur un nombre réduit de serveurs.
- MAC source : Cet algorithme se base sur l’adresse MAC de destination des paquets pour les répartir sur les liens. Dans le cadre d’un réseau où un nombre important de serveurs répondent à plusieurs clients, cet algorithme sera préféré.
- MAC source et destination : Comme son nom l’indique, c’est une fusion des deux algorithmes MAC source et MAC destination. Il est privilégié dans les LAN avec une grande variété de combinaisons de sources et de destinations, pour répartir la charge au mieux.
- IP source : Se base sur les IP sources, afin de répartir la charge entre les liens de l’agrégat. Il permet une répartition optimale dans un environnement où un grand nombre de clients cherche à atteindre un petit nombre de serveurs dans un autre réseau.
- IP destination : Se base sur les IP destinations, afin de répartir la charge. Son utilisation est recommandée dans les topologies disposant de plusieurs sous-réseaux où un nombre élevé de serveurs communique avec un nombre restreint de clients.
- IP source et destination : Se base sur les IP destinations, afin de répartir la charge. Son utilisation est recommandée dans les topologies disposant de plusieurs sous-réseaux où un nombre élevé de serveurs communique avec un nombre restreint de clients.
Pour s’assurer du bon fonctionnement de LACP, plusieurs conditions doivent être remplies. Les interfaces d’une agrégation de liens doivent toutes être dans le même mode de fonctionnement, soit Access , soit Trunk et affectées au même VLAN. De plus, les interfaces doivent toutes disposer de la même configuration physique, à savoir la même vitesse de liens et le même mécanisme de multiplexage. Il est également intéressant de noter que l’IEEE limite le nombre de liens physiques à 16 dont 8 actifs par agrégation. Une fois ces conditions remplies et la configuration effectuée, les paquets LACPDU vont être échangés : si les configurations sont cohérentes, l’agrégation devrait être établie.
PAgP fonctionne lui aussi via un échange de paquets dans l'objectif d’assurer l’agrégation des liens physiques. Les PAgPDU sont composés de la manière suivante :
- Version : Indique sur 1 octet la version du protocole PAgP.
- Flags : Indique sur 1 octet les paramètres de négociation de l’agrégation :
- Slow Hello : Indique sur 1 bit la fréquence des paquets Hello.
- Auto Mode : Indique sur un 1 bit le mode de configuration du port, la valeur 1 représente le mode Auto et la valeur 0 le mode Desirable .
- Consistent State : Indique sur 1 bit si le port est actif (1) ou inactif (0).
- Local Device ID : Indique sur 6 octets l’identifiant du switch émetteur, généralement l’adresse MAC du switch.
- Local Learn Campability : Indique sur 1 octet la capacité du switch émetteur à apprendre ou non les adresses MAC, mais également les modalités d’apprentissage :
- 0x00 : Le port ne peut pas apprendre les MAC.
- 0x01 : Le port peut apprendre les MAC en mode standalone uniquement.
- 0x02 : Le port peut apprendre les MAC en mode agrégé uniquement.
- 0x03 : Le port peut apprendre les MAC en mode standalone et agrégé.
- Local Port Hot Stanby Priority : Indique sur 1 octet la valeur du switch émetteur comprise entre 1 (priorité la plus élevée) et 255 (priorité la plus basse) qui permet d’identifier le port actif de l’agrégation. En cas d’égalité, le numéro de port le plus bas sera préféré. A noter que par défaut cette valeur est 128 , cependant elle peut être personnalisée par l’administrateur.
- Local Sent Port ifindex : Indique sur 2 octets le numéro d’identifiant du port sur le switch émetteur. Ce numéro d’identification est attribué par le switch lui-même et ne peut être modifié.
- Local Group Capability : Indique sur 4 octets les types d’agrégation supportés par le switch émetteur, automatique, dynamique ou statique.
- Local Group ifindex : Indique sur 2 octets la valeur du switch émetteur comprise entre 1 et 65535 qui permet d’identifier le groupe d’agrégation.
- Partner Device ID : Indique sur 6 octets l’identifiant du switch partenaire, généralement l’adresse MAC du switch.
- Partner Learn Capability : Indique sur 1 octet la capacité du switch partenaire à apprendre ou non les adresses MAC, mais également les modalités d’apprentissage.
- Partner Port Hot Stanby Priority : Indique sur 1 octet la valeur du switch partenaire comprise entre 1 (priorité la plus élevée) et 255 (priorité la plus basse) qui permet d’identifier le port actif de l’agrégation. En cas d’égalité, le numéro de port le plus bas sera préféré. A noter que par défaut cette valeur est 128 , cependant elle peut être personnalisée par l’administrateur.
- Partner Sent Port ifindex : Indique sur 2 octets le numéro d’identifiant du port sur le switch partenaire. Ce numéro d’identification est attribué par le switch lui-même et ne peut être modifié.
- Partner Group Capability : Indique sur 4 octets les types d’agrégation supportés par le switch partenaire, automatique, dynamique ou statique.
- Partner Group ifindex : Indique sur 2 octets la valeur du switch partenaire comprise entre 1 et 65535 qui permet d’identifier le groupe d’agrégation.
- Partner Count : Indique sur 1 octet le nombre de ports utilisés par l’agrégation de liens.
- Number of TLVs : Indique sur 1 octet le nombre de champs TLV.
- TLV Entry : Indique des informations complémentaires si besoin.
Tout comme pour LACP, les champs Local (équivalent de Actor) sont remplis dès le premier échange PAgPDU, contrairement aux champs Partner qui ne sont remplis qu’à partir du deuxième échange PAGPPU. Les messages PAgPDU sont ensuite échangés périodiquement et mis à jour en fonction des événements réseaux.
Télécharger le paquet Wireshark PAGPDUA la différence de LACP, pour PAgP les ports de l’agrégation peuvent être configurés en trois modes :
- On : Ce mode force l’échange de paquets PAgPDU pour l’établissement de l’agrégation de liens. Cette négociation entièrement manuelle, doit être cohérente des deux côtés.
- Auto : Ce mode attend le premier paquet PAgPDU d’un switch configuré en mode Desirable. Ce monde de fonctionnement est donc semblable au mode passif de LACP.
- Desirable : Ce mode envoie des paquets PAgPDU pour initier la négociation de l’agrégation, cela est semblable au mode Actif de LACP.
Vous pouvez voir ci-dessous le tableau de négociation des agrégations de liens pour PAgP :
| Port équipement A | Port équipement B | Agrégation LACP établie |
|---|---|---|
| On | On | Agrégation forcée établie |
| On | Auto | Aucune agrégation |
| On | Desirable | Aucune agrégation |
| Auto | Auto | Aucune agrégation |
| Auto | Desirable | Agrégation PAgP établie |
| Desirable | Auto | Agrégation PAgP établie |
| Desirable | Desirable | Agrégation PAgP établie |
De la même manière que LACP, PAgP dispose de deux fréquences d’envoi des messages, Fast qui envoie un message toutes les 1 seconde et Slow qui envoie un message toutes les 30 secondes.
Globalement, les fonctionnalités avancées de PAgP sont semblables à LACP, avec l’intégration du Failover et le Load Ballencing.
De la même manière que LACP, le fonctionnement du protocole PAgP est conditionné par une correspondance du mécanisme de multiplexage et de la vitesse des interfaces. De même le mode de fonctionnement des interfaces doit être similaire, soit en mode Access soit en mode Trunk et affecté au même VLAN. De plus, le nombre de liens physiques est limité à 16 dont 8 actifs par agrégation. Une fois ces conditions remplies et la configuration effectuée, les paquets PAgPDU vont être échangés : si les configurations sont cohérentes, l’agrégation devrait être établie.
En dehors des modes de négociation plus nombreux sur PAgP, les deux protocoles permettent les mêmes fonctionnalités. La différence vient principalement du fait que LACP permet de profiter d’un renouvellement de matériel pour changer de fournisseur d’équipement de manière graduelle. En revanche, PAgP nécessitera un changement global en raison de sa compatibilité restreinte avec les équipements CISCO.
La sécurisation de ces deux protocoles présente des points communs, comme notamment le contrôle d’accès via des ACL et/ou la restriction Port Security basés sur les MAC. Afin de limiter les risques d’accès de périphériques non légitimes, leur sécurisation passe également par une bonne pratique de configuration. En effet, il faut toujours privilégier les modes Actif/Actif sur LACP et Desirable/Desirable sur PAgP. L’utilisation du mode Auto et/ou Passif, permet à un attaquant de simuler l’envoi de paquets Actif ou/et Desirable afin de perturber la stabilité et l’intégrité de l’agréation. Cela peut impliquer une perturbation de l’algorithme de répartition de charge, mais également une perturbation de la disponibilité via la désactivation de liens. De plus, la mise en place de la QoS peut limiter l’impact en cas de saturation d’un lien de l’agrégat.
LACP et PAgP peuvent être implémentés sur toutes les couches de l’architecture à 3 niveaux en fonction des besoins et des problématiques. En effet, ils pourront être implémentés pour la redondance et l’augmentation de la bande passante. Cependant, sur les couches Aggregation et Core , l’augmentation de la bande passante ne sera bien souvent pas la raison de son implémentation, du fait de l’utilisation de routeurs haut de gamme disposant de ports optiques 25, 50 ou 100 Go ne rendant pas nécessaire leur utilisation. La redondance de liaison reste intéressante sur toutes les couches de notre architecture.
Dans notre cas, nous allons mettre en œuvre ces deux protocoles pour interconnecter nos switch d’agrégation par paires, afin de s’assurer d’une redondance des liaisons physiques.