R07 - Redondance des passerelles : HSRP, VRRP, CARP, Keepalived

Objectif

Éviter qu’un routeur en panne coupe tout un réseau. Principe : deux routeurs partagent une IP virtuelle qui sert de passerelle aux PC. Si l’un tombe, l’autre la reprend en quelques secondes.


1. Le problème du SPOF

Un SPOF (Single Point Of Failure) = un élément unique dont la panne arrête tout. La passerelle par défaut d’un réseau en est un.

flowchart TB
  subgraph Avant["Sans redondance"]
    PC1[PCs<br/>passerelle .254] --> R0((Routeur unique<br/>.254)) --> I1[Internet]
  end
  subgraph Apres["Avec IP virtuelle"]
    PC2["PCs<br/>passerelle = IP VIRTUELLE .254"] --> VIP{{"IP virtuelle 192.168.10.254"}}
    VIP --> RA["R1 ACTIF<br/>.252 — priorité 110"]
    VIP -.->|si R1 tombe| RB["R2 STANDBY<br/>.253 — priorité 100"]
    RA --> I2[Internet]
    RB -.-> I2
  end
ProtocoleÉditeurUtilisé surTermes
HSRPCisco (propriétaire)Routeurs/switchs CiscoActive / Standby
VRRPStandard (RFC 5798)Tous constructeurs, Linux (Keepalived)Master / Backup
GLBPCiscoCiscoRépartit en plus la charge
CARPLibre (OpenBSD)pfSense, OPNsense, FreeBSDMaster / Backup

2. HSRP sur Cisco

Fonctionnement

  • Les routeurs d’un même groupe HSRP s’échangent des messages hello (toutes les 3 s, délai de mort 10 s).
  • Le routeur à la plus haute priorité (défaut 100) est Active et répond à l’IP et à la MAC virtuelles.
  • Avec preempt, un routeur de meilleure priorité qui revient reprend son rôle.

Configuration (un VLAN, deux routeurs)

! ===== R1 (actif) =====
interface g0/0.10
 encapsulation dot1Q 10
 ip address 192.168.10.252 255.255.255.0
 standby version 2
 ! IP virtuelle = passerelle des PC
 standby 10 ip 192.168.10.254
 ! plus haut = actif
 standby 10 priority 110
 ! reprend la main en revenant
 standby 10 preempt
exit
 
! ===== R2 (secours) =====
interface g0/0.10
 encapsulation dot1Q 10
 ip address 192.168.10.253 255.255.255.0
 standby version 2
 standby 10 ip 192.168.10.254
 standby 10 priority 100
 standby 10 preempt
exit

Bonne pratique : numéro de groupe HSRP = numéro de VLAN (ici 10). Beaucoup plus lisible.

Option : faire baisser la priorité si le lien vers Internet tombe (tracking) :

track 1 interface g0/1 line-protocol
interface g0/0.10
 ! 110 − 20 = 90 < 100 → R2 devient actif
 standby 10 track 1 decrement 20

Vérifier

! qui est Active / Standby, IP virtuelle
show standby brief
show standby

DHCP + HSRP : la passerelle donnée aux clients DHCP (default-router) est l'IP virtuelle, jamais l'IP réelle d'un routeur.


3. CARP sur pfSense (aperçu)

CARP fait la même chose pour deux pare-feux pfSense :

  1. Firewall → Virtual IPs → ajouter une IP de type CARP sur chaque interface (WAN, LAN…), même VHID et mot de passe sur les deux pfSense, skew 0 sur le maître, 100 sur l’esclave.
  2. pfsync : synchronise la table d’états (les connexions survivent à la bascule) via une interface dédiée.
  3. XMLRPC Sync : recopie la configuration (règles, alias, NAT…) du maître vers l’esclave.

Détails : S02 - pfSense.


4. Keepalived sous Linux (VRRP)

Pour rendre redondant un service Linux (ex. deux reverse-proxys HAProxy, deux routeurs Linux).

sudo apt install keepalived          # Debian/Ubuntu
sudo pacman -S keepalived            # Arch

Fichier /etc/keepalived/keepalived.conf sur le serveur maître :

# state : BACKUP sur le second serveur
# interface : carte réseau concernée (voir "ip a")
# virtual_router_id : identique sur les deux serveurs
# priority : ex. 100 sur le BACKUP
# advert_int : annonce toutes les secondes
# auth_pass : identique sur les deux (8 caractères max)
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass Secr3t!
    }
    virtual_ipaddress {
        192.168.10.254/24
    }
}
sudo systemctl enable --now keepalived
ip a show eth0                        # l'IP virtuelle apparaît sur le MASTER uniquement
journalctl -u keepalived -f           # suivre les bascules en direct

Test de bascule : sudo systemctl stop keepalived sur le maître → l’IP virtuelle apparaît sur le backup en ~3 s. Un ping -t lancé depuis un client ne perd que 1 à 3 réponses.


5. Récapitulatif

BesoinOutil
Passerelle redondante, matériel CiscoHSRP (ou VRRP)
Pare-feu pfSense redondantCARP + pfsync
Serveurs Linux redondantsKeepalived (VRRP)
Liens entre switchs redondantsSTP / EtherChannel → R06 - Spanning Tree (STP)

Voir aussi