VRRP: précisions pour le firewalling + vocabulaire

This commit is contained in:
Jérémy Lecour 2024-01-25 09:52:39 +01:00 committed by Jérémy Lecour
parent c2a69d821f
commit d17a4148b5
Signed by: jlecour
SSH key fingerprint: SHA256:h+5LgHRKwN9lS0SsdVR5yZPeFlJE4Mt+8UtL4CcP8dY

View file

@ -59,7 +59,7 @@ net.ipv4.ip_nonlocal_bind=1
Si l'on utilise [minifirewall](https://gitea.evolix.org/evolix/minifirewall) comme pare-feu, il y a des actions à réaliser en fonction de la version de minifirewall.
Vérifier votre version de inifirewall avec la commande suivante : `/etc/init.d/minifirewall version`.
Vérifier votre version de minifirewall avec la commande suivante : `/etc/init.d/minifirewall version`.
#### Version 22.03 ou ultérieure
@ -68,9 +68,13 @@ Il faut simplement avoir `SYSCTL_RP_FILTER='0'` dans `/etc/default/minifirewall`
Ajouter une autorisation dans `/etc/minifirewall.d/vrrpd` :
~~~
iptables -A INPUT -s <adresse IP du pair> -d 224.0.0.18 -j ACCEPT
iptables -A INPUT -i <interface> -s <adresse IP du pair> -d 224.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -o <interface> -p 112 -j ACCEPT
~~~
Il est possible de ne pas restreindre à l'interface ou à l'IP du(des) pair(s), mais on acceptera alors des paquets d'origines moins ciblées.
Si des paquets CARP sont reçus par un processus vrrpd, on aura des messages d'erreurs `vrrp invalid checksum` dans les logs pou chaque paquet.
#### Version inconnue ou antérieure
* Il faut ajouter la commande suivante dans sa configuration `/etc/default/minifirewall`, pour s'assurer que les paramètres soient gardés après redémarrage de minifirewall :
@ -94,11 +98,7 @@ done
**Attention** : ne pas simplement commenter le bloc ou modifier le "echo 1" de l'activation en "echo 0", mais bien commenter le premier bloc et ajouter le second bloc pour bien expliciter le changement de configuration.
* Au niveau du pare-feu, il faut ajouter la règle suivante :
~~~
# iptables -A INPUT -s <adresse IP du pair> -d 224.0.0.18 -j ACCEPT
~~~
* Au niveau du pare-feu, il faut ajouter les mêmes règles (entrée et sortie) que pour la version 22.03 ou ultérieure de minifirewall.
### Exécution
@ -115,13 +115,13 @@ Détails des options utilisées :
* `-i eno0` : se binder sur l'interface _eno0_
* `-x` : ne pas manipuler d'interface mais déléguer au script `vrrp_switch`
* `-D` : lancer en mode démon
* `-d 10` : intervalle d'avertissement en seconde (défaut : 1)
* `-d 10` : intervalle d'annonce en seconde (défaut : 1)
* `-v 42` : identifiant VRID (il doit être unique sur un même segment réseau)
* `-p 100` : priorité entre 1 et 255 (défaut : 100) ; le plus élevé est master
* `-l foo` : nom de l'instance
* `-a pw/OxPASSWORD` : mot de passe en hexadécimal
Au bout de quelques dizaines de secondes, vrrpd va passer dans l'état _master_ et créer l'interface `vrrp_${vrid}_${interface}` avec l'adresse IP et l'adresse MAC `00:00:5e:00:01:${vrid}`:
Au bout de 3 fois l'intervalle d'annonce, vrrpd va passer dans l'état _master_ et créer l'interface `vrrp_${vrid}_${interface}` avec l'adresse IP voulue. L'adresse MAC sera de la forme `00:00:5E:00:01:<XX>``<XX>` est le `VRID` encodé en hexadécimal.
~~~
$ ifconfig vrrp_42_eno0
@ -145,7 +145,7 @@ Sur une autre machine, après avoir également ajusté les paramètres _sysctl_,
# vrrpd -i eth0 -x -D -d 10 -v 42 -p 90 -a pw/0xPASSWORD -l foo 192.0.2.10/27
~~~
Cette machine va rester en état _slave_ tant qu'elle capte des messages d'avertissement de la machine _master_ :
Cette machine va rester en état _slave_ tant qu'elle capte des messages d'annonce de la machine _master_ :
~~~
Apr 23 18:26:28 lb02 vrrpd->lan[57143]: Starting (adver_int: 10000000, vrid: 42, use virtual mac: yes)