Virtual Router Redundancy Protocol
Virtual Router Redundancy Protocol (protocole de redondance de routeur virtuel, VRRP) est un protocole réseau de redondance de passerelle normalisé par l'Internet Engineering Task Force (IETF). Il permet d'assurer la haute disponibilité de la passerelle par défaut d'un sous-réseau IP en regroupant plusieurs routeurs physiques au sein d'un routeur virtuel partageant une même adresse IP virtuelle[1].


Au sein d'un groupe VRRP, un routeur est élu pour assurer le rôle de routeur actif (Master), tandis qu'un ou plusieurs autres routeurs demeurent en attente (Backup). Les hôtes du réseau utilisent l'adresse IP virtuelle du groupe comme passerelle par défaut. En cas de défaillance du routeur actif, un routeur de secours est automatiquement élu afin d'assurer la continuité du service, sans qu'il soit nécessaire de reconfigurer les équipements clients.
VRRP échange uniquement des informations relatives à l'état des routeurs participant au groupe de redondance. Le protocole ne diffuse pas de routes et ne participe pas au calcul des chemins de routage, ces fonctions restant assurées par les protocoles de routage ou les configurations statiques présents sur les routeurs.
Chaque instance VRRP est limitée à un seul domaine de diffusion (broadcast domain) ou à un unique lien IPv6 et ne peut pas assurer la redondance entre plusieurs sous-réseaux. Le protocole est compatible avec les réseaux IPv4 et IPv6 et peut être utilisé sur différents types de réseaux de couche 2, notamment Ethernet, MPLS ou Token Ring.
Il est décrit dans la RFC 9568 (rendant obsolète la RFC 5798, et encore précédemment la RFC 3768).
Fonctionnement
modifierVRRP repose sur la notion de routeur virtuel, qui regroupe plusieurs routeurs physiques partageant une même adresse IP virtuelle ainsi qu'une adresse MAC virtuelle. Les hôtes d'un sous-réseau utilisent cette adresse IP virtuelle comme passerelle par défaut, sans avoir à connaître le routeur physique qui assure effectivement le transfert des paquets.
Les routeurs appartenant à un même groupe VRRP se voient attribuer l'un des deux rôles suivants : Master ou Backup. Le routeur Master (ou maître en français) est responsable du traîtement du trafic destiné à l'adresse IP virtuelle. Sur les réseaux IPv4, il répond notamment aux requêtes ARP émises par les hôtes afin d'associer l'adresse IP virtuelle à l'adresse MAC virtuelle du groupe. Dans les réseaux IPv6, ce rôle est assuré au moyen du Neighbor Discovery Protocol (NDP)[2].
Afin de signaler sa présence, le routeur Master émet périodiquement des annonces VRRP (Advertisements) à destination des autres membres du groupe. Ces annonces permettent aux routeurs Backup de vérifier que le Master est toujours opérationnel. Si les annonces cessent d'être reçues pendant une durée déterminée, un nouveau processus d'élection est déclenché. Le routeur Backup possédant la priorité la plus élevée devient alors le nouveau Master et reprend l'adresse IP virtuelle ainsi que l'adresse MAC virtuelle du groupe.
Chaque routeur VRRP est associé à une priorité comprise entre 1 et 254, utilisée lors de l'élection du routeur Master. Une priorité de 255 est réservée au propriétaire de l'adresse IP virtuelle, c'est-à-dire au routeur dont l'une des interfaces possède déjà cette adresse comme adresse réelle. A priorité égale, le routeur possédant la plus grande adresse IP est sélectionné comme Master.
VRRP peut fonctionner en mode préemptif, dans lequel un routeur disposant d'une priorité supérieure reprend automatiquement le rôle de Master lorsqu'il redevient disponible, ou en mode non préemptif, où le Master en fonction conserve son rôle jusqu'à sa défaillance. Le mode préemptif est activé par défaut dans la spécification du protocole.
Le protocole ne participe pas au routage des paquets et n'échange aucune information de routage. Il se limite à assurer la disponibilité de la passerelle par défaut d'un unique sous-réseau IPv4 ou d'un lien IPv6. Les protocoles de routage dynamiques, tels qu'OSPF, IS-IS ou BGP, continuent d'assurer indépendamment le calcul et la diffusion des routes.
VRRP est utilisable sur différents réseaux de couche 2, notamment Ethernet, MPLS et Token Ring. La version 3 du protocole, définie initialement par la RFC 5798 puis remplacée par la RFC 9568, prend en charge à la fois IPv4 et IPv6.
Implémentation
modifierLes messages VRRP (Advertisements) sont transmis périodiquement par le routeur Master afin d'annoncer sa présence aux autres membres du groupe. L'intervalle d'émission est d'une seconde par défaut, bien que cette valeur puisse être configurée selon les implémentations.
En IPv4, les annonces sont envoyées à l'adresse multicast 224.0.0.18, tandis qu'en IPv6 elles utilisent l'adresse FF02::12. Les paquets utilisent le numéro de protocole IP 112 et ne reposent ni sur TCP, ni sur UDP.
Chaque routeur VRRP est identifié par un Virtual Router Identifier (VRID), codé sur 8 bits, dont la valeur est comprise entre 0 et 255. Tous les routeurs apartenant à un même groupe doivent partager le même VRID, tandis que deux groupes distincts présents sur un même segment de réseau doivent utiliser des identifiants différents.
Chaque routeur virtuel possède également une adresse MAC virtuelle normalisée. Pour IPv4, celle-ci est de la forme 00:00:5E:00:01:XX, où XX représente le VRID. Pour IPv6, le format utilisé est 00:00:5E:00:02:XX. Cette adresse MAC est utilisée par le routeur Master lors de l'émission des annonces VRRP ainsi que pour répondre aux requêtes des hôtes utilisant l'adresse IP virtuelle.
La détection de la défaillance du routeur Master repose sur un temporisateur calculé à partir de l’intervalle d'annonce et de la priorité du routeur. Cette approche permet de réduire le temps de basculement pour les routeurs de priorité élevée tout en limitant le risque d'élections simultanées.
La spécification définit les mécanismes d'échange des annonces, d'élection du routeur Master et de basculement, mais ne prévoit pas de mécanisme permettant d'adapter dynamiquement la priorité d'un routeur. Certaines implémentations proposent néanmoins des fonctionnalités complémentaires, telles que le tracking d'interfaces réseau, de routes ou de services, permettant de modifier automatiquement la priorité d'un routeur en fonction de l'état des ressources surveillées[3].
Remarque
modifierVRRP ne met pas en œuvre de mécanisme de répartition de charge (load balancing) entre les routeurs d'un même groupe. A un instant donné, un seul routeur exerce le rôle de Master et assure le traitement de l'ensemble du trafic destiné à l'adresse IP virtuelle, tandis que les autres routeurs demeurent en attente. Afin de répartir le trafic entre plusieurs équipements, il est toutefois possible de créer plusieurs groupes VRRP indépendants, chacun disposant de sa propre adresse IP virtuelle, puis de configurer différents ensembles d'hôtes pour utiliser des passerelles par défaut distinctes. Cette approche permet une répartition statique de la charge, sans que celle-ci ne soit assurée par le protocole lui-même.
VRRP n'est pas un protocole de routage et n'échange aucune information relative aux routes du réseau. Son rôle se limite à assurer la disponibilité de la passerelle par défaut au sein d'un même sous-réseau ou d'un même lien IPv6. Le calcul des chemins de routage ainsi que l'échange des informations de routage restent assurés par des protocoles dédiés, tels qu'OSPF, IS-IS ou BGP, ou par des routes statiques.
Voir aussi
modifier- CARP : Une alternative open source
- HSRP : le protocole Cisco antérieur à VRRP
- GLBP : un protocole Cisco qui permet le partage de la charge en plus de la redondance
Références
modifier- ↑ Acee Lindem et Aditya Dogra, « Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6 », IETF, Internet Engineering Task Force, no RFC 9568, (lire en ligne, consulté le )
- ↑ William A. Simpson, Thomas Narten, Erik Nordmark et Hesham Soliman, « Neighbor Discovery for IP version 6 (IPv6) », IETF, Internet Engineering Task Force, no RFC 4861, (lire en ligne, consulté le )
- ↑ (en) Alexandre Cassen, « Keepalived », sur www.keepalived.org (consulté le )