I - Architecture traditionnelle Core, Aggregation, Access

7. Qu'est-ce que VRRP et GLBP ?

L’accès aux ressources externes étant indispensable, des protocoles de redondance de Gateway ont été développés dès le début des années 90 avec HSRPv1 (Hot Standby Router Protocol) propriétaire CISCO. Il faudra attendre 1998 pour qu’un standard de l'IETF soit publié dans la RFC 2338, il s’agit de VRRP (Virtual Router Redundancy Protocol). CISCO actualisera son protocole en 2000 avec HSRPv2 en ajoutant des fonctionnalités de sécurité et de gestion des VLAN. Une actualisation du standard VRRPv2 a été publiée dans la RFC 3768 en 2004 afin de prendre en charge de nouvelles fonctionnalités. GLBP (Gateway Load Balancing Protocol) a été proposé par CISCO en 2006 pour permettre une prise en charge du balancement de charge en plus de la redondance de Gateway. VRRP connaîtra sa dernière mise à jour en 2010 avec la RFC 5798 qui intègre la prise en charge d’IPv6.

Chronnologie des RFC

Le protocole VRRP a pour but d’offrir une redondance de Gateway, afin de garantir une haute disponibilité en définissant un routeur « Master » et un « Backup » au sein d’un groupe de routeurs. Une IP et une MAC virtuelles seront associées au routeur « Master ». En cas de défaillance du « Master », le routeur « Backup » sera élu nouveau « Master » et se verra attribuer cette IP et cette MAC. Un échange de paquets VRRP Advertisement sur l’adresse multicast « 224.0.0.8 » périodique (avec un intervalle de 1 seconde) permet de procéder à l’élection du « Master », mais également de détecter une panne de ce dernier. A noter que la MAC virtuelle est normée sous la forme « 00:00:5E:00:01:XX », la valeur « XX » équivaut à l’identifiant du groupe VRRP en hexadécimal.

Topologie VRRP

Vous trouverez le récapitulatif des états que peut prendre un routeur VRRP dans le tableau suivant :

Etat Description
Initialize Le routeur initialise sa configuration, ses timer et sa priorité, il ne participe pas encore activement au groupe VRRP.
Backup Le routeur surveille le master, sans traiter aucun flux réseaux autre que les paquets VRRP Advertisement.
Master Le routeur transmet activement le trafic et envoie des paquets VRRP Advertisement.

Nous allons maintenant procéder à l’analyse du paquet VRRP Advertisement :

paquet VRRP Advertisement
  • Version : Indique sur 4 bits la version du protocole VRRP.
  • Type : Indique sur 4 bits le type de paquet.
  • Virtual Router ID (VRID) : Indique sur 8 bits l’identifiant unique du groupe VRRP.
  • Priority : Indique sur 8 bits la priorité du routeur émetteur pour l’élection du « Master », la valeur par défaut est égale « 100 ». A noter qu'elle peut être personnalisée par l’administrateur entre « 0 » et « 255 ».
  • Count IP Addresses : Indique sur 8 bits le nombre d’IP associées à ce routeur virtuel.
  • Authentication Type : Indique sur 8 bits le type d’authentification utilisé, mot de passe, MD5.
  • Advertisement Interval : Indique sur 8 bits l’intervalle maximal admissible en secondes entre deux messages en provenance du « Master ».
  • Checksum : Indique sur 16 bits la somme de contrôle d’intégrité du paquet VRRP.
  • Addresses : Indique la liste des adresses IP virtuelles du groupe de VRRP.
  • Authentication Data :Indique les données d’authentification VRRP.
  • Télécharger le paquet Wireshark VRRP Advertisement

    L’échange de ces paquets, permet au routeur de procéder à l’élection du routeur « Master » en se basant sur la priorité, plus elle est élevée plus le routeur sera préféré. En cas d’égalité de priorité, l’adresse IP la plus élevée sera utilisée pour départager les routeurs. Une fois le routeur « Master » élu, des paquets d’annoncement sont envoyés toutes les 1 seconde en vue de détecter les pannes. En cas de perte de 3 paquets consécutifs, une nouvelle élection aura lieu. Le concept de préemption permet au routeur de redevenir « Master » après une défaillance temporaire. VRRP ne permet pas une répartition de charge native, contrairement à GLBP. Cependant, il existe un moyen détourné de créer un balancement de charge en créant deux groupes VRRP pour le même réseau IP avec une priorité inversée, puis de répartir les clients manuellement sur les Gateway virtuels.


    Il est théoriquement possible de créer 255 groupes VRRP sur un routeur en fonction des ressources matériels de ce dernier. Chaque groupe VRRP peut prendre en charge 255 routeurs, soit 1 « Master » et 254 « Backup ».


    Les protocoles HSRP et VRRP sont globalement semblables dans leurs fonctionnalités, les légères différences existantes sont les noms de mode des routeurs « Actif/Passif » au lieu de « Master/Backup », mais également sur les valeurs par défaut des timer.


    GLBP est un protocole propriétaire CISCO, qui permet de mettre en œuvre un balancement de charge en plus d’une redondance. Pour garantir ce balancement de charge, le groupe GLBP procède à l’élection de l’AVG (Active Virtual Gateway) et de/des AVF (Active Virtual Forwarder). Cette élection intervient après la configuration du protocole via l’échange de paquets multicast via l’IP « 224.0.0.102 » sur le port UDP 3222 toutes les 3 secondes.

    Nous allons maintenant analyser les différents champs qui composent le paquet GLBP :

    paquet VRRP Advertisement
  • Version : Indique sur 1 octet la version du protocole GLBP, afin de garantir la compatibilité.
  • Unknown1 : Champ réservé pour une extension de fonctionnalité future du protocole.
  • Group : Indique sur 1 octet le numéro de groupe GLBP, un groupe représente une seule IP virtuelle. Les valeurs admissibles sont comprises entre 0 et 1023.
  • Unknown2 : Champ réservé pour une extension de fonctionnalité future du protocole.
  • Owner ID : Indique sur 6 octets l’adresse MAC du routeur AVG.
  • TLV l=24, t=Auth : TLV regroupant les champs d’authentification ci-dessous.
  • TLV l=28, t=Hello : TLV regroupant les champs d’annonce du groupe GLBP ci-dessous.
  • TLV l=20, t=Request/Response? : TLV regroupant les champs de coordination des rôles des routeurs du groupe GLBP ci-dessous.
  • Télécharger le paquet Wireshark GLBP

    Maintenant que vous maîtrisez la composition des paquets GLBP, nous allons aborder les rôles des routeurs au sein d’un groupe GLBP :

  • AVG : Le routeur qui porte ce rôle est le routeur principal, c’est lui qui est chargé de répondre aux requêtes ARP sur l'IP virtuelle du groupe GLBP. Cette réponse aux requêtes ARP permet de répartir la charge sur les différents AVF en tenant compte de l’algorithme sélectionné. L'AVG procède à la coordination et à l’attribution des rôles des AVF, tout en surveillant leur état de santé. A noter que l’AVG est également AVF. Dans le cadre d’une défaillance de l’AVG, l'AVG Standby prendra le relais, il agit également comme un AVF.
  • AVF : Le ou les routeurs AVF servent de Gateway pour les clients qui ont été redirigés vers eux par l’AVG via leur MAC virtuelle. L’AVF répond de manière régulière à l’AVG pour confirmer qu’il est toujours opérationnel, cela permet à l’AVG de rediriger le trafic vers un autre AVF en cas de défaillance.

  • Comme vous l’avez compris, une fois la configuration effectuée, GLBP procède à l’élection de l’AVG. Pour cela les informations échangées via les paquets GLBP sont utilisées. Le routeur qui dispose de la plus grande priorité sera préféré, en cas d’égalité l’adresse IP la plus haute sera préférée à son tour. A noter que la priorité peut être personnalisée par l’administrateur entre 1 et 255 (la valeur par défaut est 100). L’AVG Standby est élu selon le même principe que l’AVG avec la seconde priorité la plus haute. Les routeurs AVG et AVF passent par plusieurs états avant d’atteindre leur rôle.


    Les routeurs AVG transitent par les 6 états suivants :

    1. Disabled : Dispose d’une configuration GLBP partielle, il fait partie d’un groupe GLBP mais, ne dispose pas d’une IP pour participer au processus.

    2. Initial : Dispose d’une configuration IP, cependant les timer et la priorité sont encore en cours d’initialisation.

    3. Listen : Reçoit les paquets HELLO des autres routeurs AVG et/ou AVG standby, mais il n’envoie pas encore de paquets HELLO.

    4. Speak : Envoie des paquets HELLO de manière active, pour participer à l’élection de l’AVG et l’AVG standby.

    5. Stanby : Surveille l’AVG pour prendre le relais en cas de panne de ce dernier.

    6. Active : Assume le rôle d’AVG de manière active et coordonne les AVF.


    Les routeurs AVF transitent seulement par les 4 états ci-dessous :

    1. Disabled : Dispose d’une configuration GLBP partielle, il fait partie d’un groupe GLBP mais, n’a pas encore de MAC virtuelle attribuée par l’AVG.

    2. Initial : Dispose d’une MAC virtuelle et entre dans la phase d’initialisation finale de la configuration.

    3. Listen : Reçoit les paquets HELLO de l’AVG et se prépare à prendre le rôle AVF à la demande de l’AVG.

    4. Active : Agit comme un AVF actif et participe à l’équilibrage de charge en traitant le trafic du sous-ensemble de clients que l’AVG lui adresse.


    Le protocole GLBP peut théoriquement supporter 1024 groupes, bien que certains routeurs d’entrée de gamme ne disposent pas des ressources matériels suffisantes pour gérer autant de groupes GLBP. Chaque groupe GLBP peuvent contenir 1024 routeurs, cependant seulement 4 routeurs peuvent être AVF actifs en même temps.


    L’adresse IP virtuelle est définie par l’administrateur, contrairement à l’adresse MAC qui est générée de la manière suivante : « 00:07:B4:XX:YY:ZZ »

    Partie Description
    00:07:B4 Préfix OUI (Organizationally Unique Identifier) attribué à CISCO pour GLBP.
    XX Numéro du groupe GLBP compris entre 0 et 1023.
    YY de l’AVF compris entre 0 et 4.
    ZZ Généré aléatoirement pour éviter les conflits sur le réseau.
    Topologie VRRP

    Abordons maintenant les trois algorithmes de répartition de charge disponibles sur GLBP :

  • Round Robin : Transmet les paquets de manière cyclique à chaque AVF à tour de rôle, cela assure une répartition totalement équitable. Cet algorithme est recommandé quand les AVF ont tous la même performance de routage.
  • Weighted : Transmet les paquets en tenant compte du poids des AVF définis par l’administrateur (entre 1 et 255), plus le poids est élevé plus le routeur transmettra de trafic. A noter que la valeur « Weighted » par défaut est égale à 100. Cet algorithme est préféré quand les AVF n’ont pas tous les mêmes performances de routage, cela permet de maîtriser plus finement la charge envoyée à chaque routeur.
  • Host-Dependent : Transmet le paquet aux AVF en fonction du client émetteur. Chaque client se voit attribuer un AVF via le hash de son IP. Cela permet de limiter les fluctuations de routage, ce qui sera préféré pour des services qui sont sensibles à ces fluctuations, comme la VOIP.

  • Comme tous les services et protocoles, de nos jours la sécurisation de ces protocoles est un point essentiel. La sécurisation de nos protocoles passe par deux grands axes : l’authentification et le filtrage. En effet, les protocoles GLBP et VRRP (jusqu’à la version 2 pour VRRP) permettent une authentification de leurs échanges via un mot de passe, le hachage MD5 et/ou SHA256. De plus, comme pour de nombreux protocoles, les ACL peuvent être implémentées afin de filtrer les paquets VRRP et GLBP. L’utilisation de ces deux méthodes permet de limiter grandement le risque d’usurpation d’un routeur illégitime, mais également la compromission des paquets.

    Ces deux protocoles s’intègrent parfaitement sur la couche « Aggregation » de l’architecture à trois niveaux. En effet, la couche « Aggregation » étant constituée d’une paire de MLS qui assure le routage inter-VLAN pour les switch de la couche « Access », la mise en place de VRRP ou GLBP offrira une redondance de Gateway. Le choix entre ces deux protocoles se fait en fonction du fournisseur de matériels réseaux et du besoin de balancement de charge. Si vous ne souhaitez pas être dépendant d’un seul constructeur, VRRP sera un choix plus raisonnable. Au contraire, si la dépendance à CISCO ne vous gêne pas et que le balancement de charge est impératif pour vous, GLBP sera un très bon choix.

    Dans le cadre de notre infrastructure, nous mettrons en œuvre GLBP sur une paire de MLS de la couche « Aggregation » et VRRP sur une autre paire de MLS de la couche « Aggregation », cela nous permettra d’opposer leur configuration.