From f5cdd1f2f78ff91a7c6a85e16e52b7a86a068b89 Mon Sep 17 00:00:00 2001 From: Tristan Date: Thu, 14 Mar 2019 15:06:45 +0100 Subject: [PATCH] Ajout d'un cas pratique de bascule --- HowtoOpenBSD/CARP.md | 105 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/HowtoOpenBSD/CARP.md b/HowtoOpenBSD/CARP.md index 0ea10267..f59bc47b 100644 --- a/HowtoOpenBSD/CARP.md +++ b/HowtoOpenBSD/CARP.md @@ -115,6 +115,111 @@ Pour revenir à l'état initial Si lors d'un incident on a coupé une interface carp en faisant `ifconfig carpX down`, pour la remettre en place, on vérifie que le `advskew` est bien supérieur à celui où le master est actuellement pour ne pas basculer directement en tant que MASTER. Si ce n'est pas le cas, on peut corriger avec `ifconfig carpX advskew xxx`. Lorsque c'est OK, il reste juste à faire `ifconfig carpX up`. +### Cas pratique de bascule + +Dans cet exemple, nous avons deux pare-feux configurés avec CARP. + +Sur fw00 : + +~~~ +$ ifconfig carp +carp0: flags=8843 mtu 1500 + lladdr 00:00:42:00:00:01 + index 12 priority 15 llprio 3 + carp: MASTER carpdev em0 vhid 1 advbase 1 advskew 1 + groups: carp + status: master + inet 192.0.2.30 netmask 0xffffffe0 broadcast 192.0.2.31 +carp1: flags=8843 mtu 1500 + lladdr 00:00:42:00:00:02 + index 13 priority 15 llprio 3 + carp: MASTER carpdev em1 vhid 2 advbase 1 advskew 1 + groups: carp + status: master + inet 192.0.2.60 netmask 0xffffffe0 broadcast 192.0.2.61 +~~~ + +Sur fw01 : + +~~~ +$ ifconfig carp +carp0: flags=8843 mtu 1500 + lladdr 00:00:42:00:00:03 + description: CARP DMZ + index 16 priority 15 llprio 3 + carp: BACKUP carpdev em0 vhid 1 advbase 1 advskew 42 + groups: carp + status: backup + inet 192.0.2.30 netmask 0xffffffe0 broadcast 192.0.2.31 +carp1: flags=8843 mtu 1500 + lladdr 00:00:42:00:00:04 + description: CARP LAN + index 17 priority 15 llprio 3 + carp: BACKUP carpdev em1 vhid 2 advbase 1 advskew 42 + groups: carp + status: backup + inet 192.0.2.60 netmask 0xffffffe0 broadcast 192.0.2.61 +~~~ + +Nous souhaiterons mettre à jour fw00 et donc passer fw01 en master. + +Sur fw00 : + +~~~ +ifconfig -g carp carpdemote 50 +mv /etc/hostname.carp* /root/ +~~~ + +Le master va alors immédiatement passer en backup. Le déplacement des fichiers de configuration CARP évite que les interfaces ne remontent en cas de redémarrage. On peut désormais lancer la mise à jour et effectuer notre redémarrage. + +Une fois fw00 prêt à être réintégré en production, voici un moyen de garantir une re-bascule sans coupure en recréant nos interfaces CARP avec ifconfig sur fw00. Sur ce dernier nous créons les interfaces à la main en se basant sur le contenu des fichiers hostname.carpX (et en veillant à modifier la valeur du advskew pour une valeur plus élevée que celle actuellement configurée sur fw01). + +Sur fw00 : + +~~~ +ifconfig carp0 vhid 1 pass puffy carpdev em0 advskew 142 advbase 1 192.0.2.30 netmask 255.255.255.224 state backup +ifconfig carp1 vhid 2 pass puffy carpdev em1 advskew 142 advbase 1 192.0.2.60 netmask 255.255.255.224 state backup +~~~ + +Nous avons désormais nos interfaces CARP en BACKUP sur fw00. Le failover est donc d'ores et déjà fonctionnel. + +Il s'agit maintenant de remettre en place nos fichiers de configuration CARP. + +Sur fw00 : + +~~~ +mv /root/hostname.carp* /etc/ +~~~ + +On bascule ensuite les interfaces CARP depuis fw01 pour les repasser en BACKUP sur ce dernier et en MASTER sur fw00. + +Sur fw01 : + +~~~ +ifconfig -g carp carpdemote 50 +~~~ + +Le pare-feu fw00 doit être repassé en MASTER maintenant. + +On remet les valeurs de advskew à zero sur notre MASTER. + +Sur fw00 : + +~~~ +ifconfig carp0 advskew 1 +ifconfig carp1 advskew 1 +~~~ + +Enfin nous reconfigurons le carpdemote à 0 sur fw01. + +Sur fw01 : + +~~~ +ifconfig -g carp -carpdemote 50 +~~~ + +Et c'est terminé ! + ### Optimisation CARP au (re)boot d'un BACKUP Lorsque que l'on a un firewall en BACKUP, il est important de pouvoir le redémarrer sans que cela n'impacte le MASTER. Pour cela, il faut bien comprendre le comportement de CARP au démarrage : pendant un certain temps, il va toujours rester en BACKUP pour voir si il ne reçoit pas d'annonce d'un MASTER. Ce comportement est aussi présent lors de la (re)configuration même si le CARP était MASTER initialement. S'il n'a rien reçu, il passe en MASTER. Ce temps est d'attente correspond à la valeur du paramètre _advbase_ (par défaut à 1 seconde).