VRRP v3

décembre 31, 2012  |   Blog   |     |   Commentaires fermés sur VRRP v3

Les protocoles FHRP (First Hop Redundancy Protocols) sont des protocoles réseaux conçus pour protéger la passerelle par défaut dans un sous-réseau. Ils permettent à 2 ou plusieurs routeurs de constituer un groupe partageant une même adresse IP virtuelle, celle de la passerelle par défaut. En cas d’indisponibilité du routeur actif (qui prend en charge le rôle de passerelle), un routeur backup prend le relais en quelques secondes de manière transparente pour les hôtes du réseau.

L’article ci-dessous traite du protocole VRRP version 3, qui est un des protocoles FHRP.

Présentation de VRRP v3

Le protocole VRRP (Virtual Router Redundancy Protocol) version 3 est une norme IETF décrite dans la RFC5798. L’IANA attribue le numéro de protocole IP 112 à VRRPv3 (qui est également le numéro de protocole de VRRPv2).

VRRP définit un protocole d’élection qui assigne dynamiquement à un groupe de routeurs un unique routeur virtuel.

La responsabilité de routeur VRRP virtuel sera assuré par un des routeurs du groupe VRRP: ce routeur sera le Master, tous les autres seront Backups. Un groupe VRRP fait référence à l’ensemble des routeurs physiques représentés par le routeur virtuel.

Ce dispositif  apporte de la redondance dans un LAN, ainsi les clients du LAN peuvent utiliser l’adresse IP du routeur virtuel comme adresse IP de la passerelle par défaut.

VRRP v3 est supporté par les interfaces Ethernet, FastEthernet, Bridge Group Virtual Interface (BVI) et Gigabit ainsi que MPLS, les VPN et les VLANs.

VRRPv2 suporte les adresses IPv4. La version 3 de VRRP apporte le support des adresses IPv6 en plus des adresses IPv4. La seule autre différence est la suppression de l’authentification dans la version 3 (qui était également indisponible dans la dernière release de la version 2 mais les champs d’authentification existaient toujours dans la structure des paquets VRRPv2).

vrrp v3 packet structure

vrrp v3 packet structure

Caractéristiques de VRRP v3 autres que la redondance:

– interopérabilité dans des environnements multi-constructeurs
– support de plusieurs groupes VRRP (maximum 255) sur l’interface physique d’un routeur
– management de multiples adresses IPs, y compris des IPs secondaires permettant la configuration de VRRP par sous-réseaux sur une interface,
– VRRPv3 utilise l’adresse multicast 224.0.0.18 pour les IPv4 (ce qui était déjà le cas pour VRRPv2) et l’adresse multicast FF02::12 pour les IPv6.
– le numéro de protocole attribué à VRRPv3 (le 112) reste le même que pour VRRPv2
– les adresses MAC utilisées par les routeurs virtuels sont 0000.5E00.01XX pour IPv4 et 0000.5E00.02XX pour IPv6, où XX= VRID (virtual router id)
– il n’est pas nécessaire de choisir une IP différente pour le routeur VRRP virtuel: en effet le routeur VRRP virtuel peut utiliser l’adresse IP physique du routeur Master ce qui permet de ne pas “gaspiller” les adresses IPs

Description du fonctionnement de VRRP v3

Les priorités attribuées aux routeurs d’un groupe VRRP déterminent le rôle de chaque routeur VRRP et les actions à effectuer en cas d’indisponibilité du master. Les valeurs des priorités sont choisies dans la plage 1-254. Par défaut, la priorité d’un routeur VRRP vaut 100.

Lors du processus d’élection, le routeur VRRP avec la plus haute priorité sera le Master et l’adresse IP du routeur virtuel sera l’adresse IP du routeur physique. Les priorités déterminent également quel routeur VRRP prendra le relais en cas d’indisponibilté du master : le routeur Backup avec  la plus haute priorité sera Master jusqu’à la redisponibilté du Master originel. En cas d’égalité, l’éléction est effectuée selon la plus grande adresse IP.

Si un routeur est ajouté au groupe VRRP avec une plus haute priorité que le Master, ce dernier deviendra Master. Pour éviter ce type de comportement, il faut désactiver l’option “preempt” activée par défaut dans VRRP.  Si cette option est désactivée, le Master élu restera toujours le routeur dont l’adresse IP correspond à l’adresse IP du routeur virtuel. En cas d’indisponibilité du Master, l’élection du Backup se basera sur la priorité.

Dans VRRP, il existe 4 timers différents:

– advertisement_interval: par défaut il vaut 1 seconde et détermine la fréquence d’envoi des annonces VRRP
– master_advertisement_interval: par défaut, sa valeur est égal à l’advertisement_interval. Il est enregistré par les routeurs Backups et est utilisé pour le calcul des 2 timers suivants
– skew_interval: il est calculé ainsi ((256 – <priorité du master>) * master_advertisement_interval) / 256, et permet de calculer le timer suivant
– master_down_interval: détermine le délai suite auquel la non réception des annonces VRRP conduit à la réelection d’un nouveau master, il se calcule de la manière suivante (3 * master_advertisement_interval) + skew_interval

Un routeur virtuel master envoie des annonces VRRP à tous les routeurs du groupe VRRP toutes les secondes par défaut (seul le routeur Master envoie ces VRRP “advertisements” pour éviter de surcharger le réseau). Ces annonces utilisent le protocole IP 112 et indiquent la priorité du routeur dans le groupe ainsi que l’état du master. Si au bout de master_down_interval aucune annonce n’est reçue par les routeurs du groupe VRRP, le routeur Backup de plus haute priorité est élu Master.

Comme décrit plus haut,

– master_down_interval = (3 * master_advertisement_interval) + skew_interval.
– skew_interval = ((256 – <priorité du master>) * master_advertisement_interval) / 256.

En considérant les valeurs par défaut, master_advertisement_intervaladvertisement_interval = 1 seconde.

Les priorités des routeurs VRRP valent 100 par défaut. Donc par défaut, master_down_interval = (3 * 1)+[(256-100)*1/256]= 3 + 156/256 = 3,61 secondes.

Une particularité de VRRPv3, qui n’était pas disponible sur VRRPv2, est la possibilité de configurer des timers en millisecondes. Cependant, si une modification des timers par défaut en millisecondes est effectuée sur un des routeurs du groupe VRRP, elle doit impérativement être effectuée sur tous les routeurs de ce groupe.

Exemple de configuration de VRRPv3 sur un routeur Cisco et comparaison avec HSRP

HSRP est un protocole de redondance propriétaire de Cisco implémentable sur les routeurs et switches de niveau 3.
Les configurations ci-dessous doivent être appliquées à tous les routeurs d’un groupe VRRP ou HSRP.

Note: Ces 2 protocoles ne peuvent pas être mis en place simultanément sur un même routeur

VRRP v3

RouterA> enable
RouterA# configure terminal
RouterA(config)# fhrp version vrrp v3
RouterA(config)# interface <nom de l’interface>
RouterA(config-if)# vrrp <id du groupe> address-family <ipv4|ipv6>

## Choisir entre IPv4 ou IPv6
RouterA(config-if-vrrp)# address <adresse IP>
## L’adresse IP du routeur virtuel VRRP correspondra à l’adresse IP du routeur élu Master: il n’est pas nécessaire de configurer une adresse IP mais cela reste possible
RouterA(config-if-vrrp)# preempt delay minimum <secondes>
## Délai attendu par un routeur Backup avant d’envoyer des annonces indiquant qu’il prend le relais du Master. Le routeur dont l’adresse IP physique correspond à l’IP VRRP ne prend pas en compte cette commande
RouterA(config-if-vrrp)# priority <priorité>
## Par défaut la priorité d’un routeur est 100. Il est également possible de la modifier
RouterA(config-if-vrrp)# timers advertise <millisecondes>
## Configure le advertisement_interval qui vaut 1000 millisecondes par défaut
RouterA(config-if-vrrp)# preempt <délai de preemption en secondes> [disable]
## La preemption est activée par défaut dans VRRP, mais pour éviter certains comportements décrits plus haut dans cet article, il est possible de la désactiver

HSRP

RouterA> enable
RouterA# configure terminal
RouterA(config)# interface <nom de l’interface>
RouterA(config-if)# ip <adresse> <masque>
RouterA(config-if)# standby <numéro groupe> priority <priorité>
RouterA(config-if)# standby <numéro groupe> preempt

## Avec HSRP, la preemption n’est pas activée par défaut. Si cette option n’est pas mise en place, un routeur ajouté au groupe avec une priorité supérieure au routeur actif ne prendra pas immédiatement le rôle (actif) de ce dernier, et il faudra attendre qu’un FailOver se produise.
RouterA(config-if)# standby [group-number] ip [ip-address]
## Cette commande indique l’adresse IP du routeur virtuel. Elle doit être différente de l’adresse IP des routeurs physiques
RouterA(config-if)# end

Avec VRRP, un routeur est élu Master et tous les autres seront Backups.
Avec HSRP, un routeur est Actif, un autre est en Standby, et tous les autres sont en “Listening”.

Sources:
http://tools.ietf.org/html/rfc5798#section-6.1
http://www.cisco.com/en/US/docs/ios-xml/ios/ipapp_fhrp/configuration/15-2mt/fhrp-vrrpv3.html
http://meefirst.blogspot.fr/2012/02/virtual-router-redundancy-protocol-vrrp.html
http://www.h3c.com/portal/Technical_Support___Documents/Technical_Documents/Routers/H3C_SR8800_Series_Routers/Configuration/Operation_Manual/H3C_SR8800_OM%28Release3242_V3.05%29/08-System/201004/672444_1285_0.htm#_Ref139795413 (ce lien n’est plus disponible)
http://www.cisco.com/en/US/docs/routers/asr9000/software/asr9k_r4.1/addr_serv/configuration/guide/ipaddr_cg41a9k_chapter10.pdf
http://www.cisco.com/en/US/docs/ios/ipapp/configuration/guide/ipapp_hsrp.pdf
http://www.ciscoconsole.com/lan-man/hsrp-vrrp-glbp/comparison-and-difference-between-hsrp-vrrp-and-glbp-protocols.html/

Les commentaires sont fermés.