Guides
VRRP
Passerelle redondante via un routeur virtuel partagé (bascule master/backup).
VRRP permet à deux appliances SiHA de partager une adresse IP virtuelle sur un segment, de sorte que les clients disposent toujours d’une passerelle joignable — même si un nœud tombe en panne. Une appliance est élue master et possède l’adresse virtuelle ; l’autre reste backup et prend le relais automatiquement si elle cesse d’entendre les annonces du master.
L’unité de configuration est un VirtualRouter : il déclare un VRID
(identifiant de routeur virtuel), une liste d’adresses virtuelles et une priorité.
Deux nœuds forment une paire redondante en déclarant chacun un VirtualRouter avec
le même VRID et les mêmes adresses virtuelles sur le même segment L2, mais avec des
priorités différentes — la priorité la plus élevée devient master.
Configuration
Paire unique, une seule adresse virtuelle
# On the primary node (higher priority → master)
type: VirtualRouters.vrrp.siha
metadata: { namespace: vrrp, id: ext-vr }
spec:
interface: ext # COSI id of a link.siha Interface
vrId: 10 # VRID 1–255, shared by both nodes
priority: 200 # higher wins (default VRRP master priority is 100)
addresses:
- 10.0.0.1 # the floating gateway address clients use
---
# On the backup node (lower priority → backup)
type: VirtualRouters.vrrp.siha
metadata: { namespace: vrrp, id: ext-vr }
spec:
interface: ext
vrId: 10
priority: 100
addresses:
- 10.0.0.1
Les deux ressources portent les mêmes id, vrId et addresses. Seule la
priority diffère. Le nœud avec priority: 200 gagne l’élection et devient
master ; le nœud avec priority: 100 devient backup.
Plusieurs adresses virtuelles
Vous pouvez déclarer plus d’une adresse flottante par VRID. Toutes les adresses de la liste doivent appartenir à la même famille d’adresses (toutes IPv4 ou toutes IPv6) :
spec:
interface: ext
vrId: 20
priority: 200
addresses:
- 203.0.113.1
- 203.0.113.2
Champs optionnels
spec:
interface: ext
vrId: 10
priority: 200
addresses: [10.0.0.1]
intervalCs: 100 # advertisement interval in centiseconds (default: 100 = 1 s)
preempt: true # allow a higher-priority node to reclaim master (default: false)
accept: true # master accepts packets addressed to the virtual IP (default: false)
vrId doit être compris entre 1 et 255. priority doit être comprise entre 1 et
255 (255 est le propriétaire de l’adresse IP, validé séparément). Omettre
intervalCs et preempt est sûr pour la plupart des déploiements.
Exigences L2
Les annonces VRRP sont des trames multicast (IPv4 : 224.0.0.18, IPv6 :
ff02::12). Le segment entre les deux appliances doit les acheminer.
Sur un segment L2 virtualisé (un pont Linux en labo), le multicast VRRP simple
passe généralement, mais un pont avec vlan_filtering=1 jette les trames
marquées 802.1Q — y compris les annonces VRRP envoyées sur des sous-interfaces
VLAN. Si vous faites tourner VRRP sur une interface VLAN, désactivez le filtrage
VLAN sur le pont :
ip link set <bridge-name> type bridge vlan_filtering 0
Sur un fabric cloud, le multicast VRRP est généralement bloqué par les règles
anti-usurpation des ports à moins que vous n’autorisiez explicitement
224.0.0.18 dans les paires d’adresses autorisées du port.
Exploitation
S="sihactl --sihaconfig ~/.siha/config --addr <node-ip>:6443"
$S get virtualrouter # list all virtual routers + live state
$S get virtualrouter ext-vr -o yaml # full spec + status (state, swIfIndex, lastError)
La table par défaut montre les colonnes les plus utiles :
| Colonne | Source | Notes |
|---|---|---|
interface | spec | la ressource Interface à laquelle le VR est rattaché |
vrId | spec | VRID partagé par les deux nœuds |
priority | spec | la priorité de ce nœud |
addresses | spec | la (les) adresse(s) flottante(s) |
state | status | MASTER, BACKUP, INIT, ou INTERFACE_DOWN |
error | status | dernière erreur remontée par le vrrp_plugin de VPP, le cas échéant |
Une paire active/veille saine montre un nœud en MASTER et l’autre en BACKUP.
INIT signifie que le plugin est encore en train de négocier. INTERFACE_DOWN
signifie que l’interface déclarée n’est pas opérationnellement up — remontez
d’abord l’interface.
Pour vérifier les deux nœuds simultanément :
# On the primary:
$S get virtualrouter ext-vr -o yaml
# On the backup (separate --addr):
sihactl --sihaconfig ~/.siha/config --addr <backup-ip>:6443 get virtualrouter ext-vr -o yaml
Alias acceptés par sihactl get : virtualrouters, virtualrouter, vr.