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 :

composition du paquets LACPDU
  • 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.
  • TLV : Indique les informations complémentaires si besoin.
  • Reserved : Champ d’un octet réservé pour les extensions futures du protocole.
  • Télécharger le paquet Wireshark LACPDU

    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 :

  • 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 :

    composition du paquets PAGPDU
  • 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 :
  • 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 :
  • 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 PAGPDU

    A 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.