From e04bbf88e78bc393450bded957d767d1a5191239 Mon Sep 17 00:00:00 2001 From: gcolpart Date: Fri, 5 May 2017 12:09:19 +0200 Subject: [PATCH] relecture --- HowtoVRRP.md | 90 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 53 insertions(+), 37 deletions(-) diff --git a/HowtoVRRP.md b/HowtoVRRP.md index c38b737d..32372d9a 100644 --- a/HowtoVRRP.md +++ b/HowtoVRRP.md @@ -1,12 +1,23 @@ -**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** +--- +categories: network +title: Howto VRRP +... -# uvrrpd +Le protocole [VRRP](https://www.ietf.org/rfc/rfc3768.txt) permet à plusieurs équipements, sur un même segment réseau, de partager une même adresse IP en gérant des états *master*/*slave*. L’objectif principal est de permettre une bascule réseau sur un équipement secondaire en cas d’incident. Sous OpenBSD, on utilise un dérivé de ce protocole : [CARP](HowtoOpenBSD/CARP). Sous Linux, il existe plusieurs implémentations d'un démon _vrrpd_. -Utiliser le demon vrrp [uvrrpd](https://forge.evolix.org/projects/uvrrpd) +## Installation -# Paquet debian wheezy vrrpd +Le paquet officiel [vrrpd](https://packages.debian.org/jessie/vrrpd) officiel pose différents soucis, nous utilisons à la place un [paquet avec plusieurs patchs](#XXX) disponible sur le [repository Evolix](http://pub.evolix.net/jessie/) : -Utiliser le paquet evolix vrrpd wheezy avec différents patches ainsi qu'un script permettant d'utiliser les *macvlan* : +~~~ +# apt install vrrpd=1.0-2.evolix +~~~ + +Nous avons entrepris la ré-écriture d'un démon _vrrpd_ : [uvrrpd](https://forge.evolix.org/projects/uvrrpd) mais nous ne l'utilisons pas encore en production. + +### Patchs sur paquet patchés + +Notre paquet **vrrpd** intègre différents patches, notamment un un script permettant d'utiliser les *macvlan* : ~~~ - debian/patches/010-vrrpd-1.0_to_1.0-1exp1 @@ -27,48 +38,53 @@ Utiliser le paquet evolix vrrpd wheezy avec différents patches ainsi qu'un scri - debian/README.macvlan ~~~ -L'utilisation des macvlans permet l'utilisation des adresses mac virtuelles VRRP. +L'utilisation des *macvlans* permet d'avoir des adresses MAC spécifiques à VRRP. Pour cela, il faut : -Pour cela : +* utiliser le script `/etc/vrrpd/vrrp_switch` (installé par défaut) +* utiliser l'option `-x` pour interdire à vrrpd de manipuler les interfaces en déléguant cette opération au script. Dans ce mode, vrrpd reçoit et emet des paquets VRRP et appelle /etc/vrrpd/vrrp_switch lors des changements d'états master/slave +* ne pas utiliser l'option `-n` -* utiliser le script vrrp_switch_macvlan (/etc/vrrpd/vrrp_switch installé par défaut) -* utiliser l'option -x pour interdire à vrrpd de manipuler les interfaces en déléguant cette opération au script. Dans ce mode, vrrpd reçoit et emet des paquets VRRP et appelle /etc/vrrpd/vrrp_switch lors des changements d'états master/slave -* ne pas utiliser l'option -n +## Utilisation -## Exemple - -~~~ -/usr/sbin/vrrpd -i eth0 -x -D -d 10 -v 42 -p 100 -l wan 192.168.1.240 - -## VRRP instance "wan" -# -i eth0 : bind to eth0 (wan interface) -# -x : don't handle the virtual IP address -# -D : daemonize -# -d 10 : 10s between advertisement, 1s by default -# -v 42 : VRID -# -p 100 : priority 100 -# -l wan : Name of vrrp instance (for logging purpose) -~~~ - -Dans l'état master, l'interface vrrp_${vrid}_${interface} est crée avec la VIP et l'adresse mac VRRP 00:00:5e:00:01:${vrid} (ici interface vrrp_42_eth0, VIP 192.168.1.240 et la mac 00:00:5e:00:01:2a). - -## Sysctls - -Voir /usr/share/doc/vrrpd/sysctl.vrrpd +Il faut au préalable ajuster des paramètres _sysctl_ (voir `/usr/share/doc/vrrpd/sysctl.vrrpd`) : ~~~ net.ipv4.conf.default.rp_filter=0 +net.ipv4.conf.eth0.rp_filter=0 net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.all.arp_ignore=1 net.ipv4.conf.all.arp_announce=2 ~~~ +Puis, on lancer par exemple : + +~~~ +# vrrpd -i eth0 -x -D -d 10 -v 42 -p 100 -l foo 192.0.2.42/27 +~~~ + +Détails des options utilisées : + +* `-i eth0` : se binder sur l'interface _eth0_ +* `-x` : ne pas manipuler d'interface mais déléguer au script `vrrp_switch` +* `-D` : lancer en mode démon +* `-d 10` : 10s between advertisement, 1s by default +* `-v 42` : identifiant VRID (il doit être unique sur un même segment réseau) +* `-p 100` : priority 100 +* `-l foo` : Name of vrrp instance (for logging purpose) + +Dans l'état master, l'interface vrrp_${vrid}_${interface} est créée avec l'adresse IP et l'adresse MAC 00:00:5e:00:01:${vrid} : + +~~~ +$ ifconfig vrrp_2_eth0 +vrrp_2_eth0 Link encap:Ethernet HWaddr 00:00:5e:00:01:2a + inet adr:192.0.2.42 Bcast:0.0.0.0 Masque:255.255.255.224 + adr inet6: fe80::200:5eff:fe00:102/64 Scope:Lien +[...] +~~~ + ## Logs -Logs dans /var/log/daemon - -Historique des changements d'états dans /var/log/vrrpd/state.$vrid - -Etat courant dans /var/run/vrrpd/vrrp-${instance_name} - -Fichier pid /var/run/vrrpd_${instance_name}_${vrid}.pid +* Des logs sont envoyés à syslog +* L'historique des changements d'états dans /var/log/vrrpd/state.$vrid +* L'état courant se trouve dans /var/run/vrrpd/vrrp-${instance_name} +* Un fichier PID est dans `/var/run/vrrpd_${instance_name}_${vrid}.pid`