relecture
This commit is contained in:
parent
3a3fecabbb
commit
e04bbf88e7
90
HowtoVRRP.md
90
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
|
- 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
|
- 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)
|
## Utilisation
|
||||||
* 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
|
|
||||||
|
|
||||||
## Exemple
|
Il faut au préalable ajuster des paramètres _sysctl_ (voir `/usr/share/doc/vrrpd/sysctl.vrrpd`) :
|
||||||
|
|
||||||
~~~
|
|
||||||
/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
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
net.ipv4.conf.default.rp_filter=0
|
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.rp_filter=0
|
||||||
net.ipv4.conf.all.arp_ignore=1
|
net.ipv4.conf.all.arp_ignore=1
|
||||||
net.ipv4.conf.all.arp_announce=2
|
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
|
||||||
|
|
||||||
Logs dans /var/log/daemon
|
* Des logs sont envoyés à syslog
|
||||||
|
* L'historique des changements d'états dans /var/log/vrrpd/state.$vrid
|
||||||
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`
|
||||||
Etat courant dans /var/run/vrrpd/vrrp-${instance_name}
|
|
||||||
|
|
||||||
Fichier pid /var/run/vrrpd_${instance_name}_${vrid}.pid
|
|
||||||
|
|
Loading…
Reference in a new issue