Différences entre versions de « Ucarp »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 108 : Ligne 108 :
 
ID=001
 
ID=001
 
# Network Interface
 
# Network Interface
BIND_INTERFACE= "eth0"
+
BIND_INTERFACE="eth0"
 
# IP de fw1
 
# IP de fw1
SOURCE_ADDRESS= "192.168.1.200"
+
SOURCE_ADDRESS="192.168.1.200"
 
# IP Virtuel
 
# IP Virtuel
VIP_ADDRESS= "192.168.1.202"
+
VIP_ADDRESS="192.168.1.202"
 
# Mot de passe
 
# Mot de passe
PASSWORD= "password"
+
PASSWORD="password"
 
# Fréquence des paquets de synchro
 
# Fréquence des paquets de synchro
 
ADVBASE=1
 
ADVBASE=1
 
# Pour voir toutes les options: ucarp --help
 
# Pour voir toutes les options: ucarp --help
OPTIONS= "-k 1 --shutdown"
+
OPTIONS="--shutdown --preempt"
 
</pre>
 
</pre>
 
||  
 
||  
Ligne 125 : Ligne 125 :
 
ID=001
 
ID=001
 
# Network Interface
 
# Network Interface
BIND_INTERFACE= "eth0"
+
BIND_INTERFACE="eth0"
 
# IP de fw1
 
# IP de fw1
SOURCE_ADDRESS= "192.168.1.201"
+
SOURCE_ADDRESS="192.168.1.201"
 
# IP Virtuel
 
# IP Virtuel
VIP_ADDRESS= "192.168.1.202"
+
VIP_ADDRESS="192.168.1.202"
 
# Mot de passe
 
# Mot de passe
PASSWORD= "password"
+
PASSWORD="password"
 
# Fréquence des paquets de synchro
 
# Fréquence des paquets de synchro
 
ADVBASE=1
 
ADVBASE=1
 
# Pour voir toutes les options: ucarp --help
 
# Pour voir toutes les options: ucarp --help
OPTIONS= "-k 10 --shutdown"
+
OPTIONS= "--shutdown --preempt"
 
</pre>
 
</pre>
 
|}
 
|}
 
La partie ''OPTIONS'' permet de définir plus finement le comportement du groupe :
 
La partie ''OPTIONS'' permet de définir plus finement le comportement du groupe :
* -k : permet de définir une priorité. Celui avec la plus base est ''master''
+
* -k : permet de définir une priorité. Celui avec la plus base est ''master'', cette option rend ''--preempt'' caduque.
 
* --shutdown : déclenche l'exécution du script de fermeture à l'extinction de la machine
 
* --shutdown : déclenche l'exécution du script de fermeture à l'extinction de la machine
 
* --preempt : si le ''master'' revient, le ''slave'' toujours debout garde la main (évite de faire tomber les tunnels SSL, VPN, etc...)
 
* --preempt : si le ''master'' revient, le ''slave'' toujours debout garde la main (évite de faire tomber les tunnels SSL, VPN, etc...)
 +
 +
Enfin, on va éditer le fichier ''/etc/ucarp/vip-002.conf'' pour y mettre les lignes suivantes :
 +
{|align="center" border="1"
 +
|-align="center"
 +
|| FW1 || FW2
 +
|-
 +
||
 +
<pre>
 +
# ID du cluster
 +
ID=001
 +
# Network Interface
 +
BIND_INTERFACE="eth1"
 +
# IP de fw1
 +
SOURCE_ADDRESS="192.168.2.200"
 +
# IP Virtuel
 +
VIP_ADDRESS="192.168.2.202"
 +
# Mot de passe
 +
PASSWORD="password"
 +
# Fréquence des paquets de synchro
 +
ADVBASE=1
 +
# Pour voir toutes les options: ucarp --help
 +
OPTIONS="--shutdown --preempt"
 +
</pre>
 +
||
 +
<pre>
 +
# ID du cluster
 +
ID=001
 +
# Network Interface
 +
BIND_INTERFACE="eth0"
 +
# IP de fw1
 +
SOURCE_ADDRESS="192.168.2.201"
 +
# IP Virtuel
 +
VIP_ADDRESS="192.168.2.202"
 +
# Mot de passe
 +
PASSWORD="password"
 +
# Fréquence des paquets de synchro
 +
ADVBASE=1
 +
# Pour voir toutes les options: ucarp --help
 +
OPTIONS= "--shutdown --preempt"
 +
</pre>

Version du 22 septembre 2015 à 16:50

Introduction

"UCARP est un programme de haute-disponibilité pour système d'exploitation Unix et dérivés qui permet le partage par plusieurs hôtes d'une même adresse IP afin d'assurer la continuité du service en cas de défaillance d'un hôte. Ce programme implémente en espace utilisateur le protocole Common Address Redundancy Protocol (CARP) disponible sous OpenBSD et s'oppose au protocole propriétaire Virtual Router Redundancy Protocol (VRRP)." wikipedia

Fonctionnement

Le principe est simple, on va utiliser une adresse IP virtuelle entre plusieurs machines qui délivrent le même service. De la sorte, peut importe la machine physique qui a l'adresse IP virtuelle, le service est délivré aux utilisateur sans discontinuité.

Prenons le cas de deux machines avec deux cartes réseaux :

Ucarp example.png

Voici le plan d'adressage qui sera utilisé :

Machine Réseau 1 (eth0) Réseau 2 (eth1)
FW1 192.168.1.200/24 192.168.2.200/24
FW2 192.168.1.201/24 192.168.2.201/24
VIP 192.168.1.202/24 192.168.2.202/24

On a bien une adresse IP par machine sur chaque réseau et, en plus, une adresse IP virtuelle qui sera utilisée par le master.

Préparation

Dans un premier temps, il faudra avoir une connexion à Internet, utiliser un serveur DNS et désactiver SELinux.

Pour ceux qui auraient manqué des étapes, les voici:

Une fois ces étapes effectuées, entrons dans le vif du sujet !


Assurez-vous d'avoir installé le dépôt EPEL car UCARP vient de cette source !


On se retrouve avec la configuration réseau suivante:

FW1 FW2
[root@fw1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:26:70:80 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.200/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::20c:29ff:fe26:7080/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0c:29:26:70:8a brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.200/24 brd 192.168.2.255 scope global eth1
    inet6 fe80::20c:29ff:fe26:708a/64 scope link
       valid_lft forever preferred_lft forever

[root@fw2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:4e:50:32 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.201/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::20c:29ff:fe4e:5032/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0c:29:4e:50:3c brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.201/24 brd 192.168.2.255 scope global eth1
    inet6 fe80::20c:29ff:fe4e:503c/64 scope link
       valid_lft forever preferred_lft forever

Installation

Installons UCARP depuis le dépôt EPEL :

# yum -y install ucarp

Configuration

On va maintenant éditer le fichier /etc/ucarp/vip-001.conf pour y mettre les lignes suivantes :

FW1 FW2
# ID du cluster
ID=001
# Network Interface
BIND_INTERFACE="eth0"
# IP de fw1
SOURCE_ADDRESS="192.168.1.200"
# IP Virtuel
VIP_ADDRESS="192.168.1.202"
# Mot de passe
PASSWORD="password"
# Fréquence des paquets de synchro
ADVBASE=1
# Pour voir toutes les options: ucarp --help
OPTIONS="--shutdown --preempt"
# ID du cluster
ID=001
# Network Interface
BIND_INTERFACE="eth0"
# IP de fw1
SOURCE_ADDRESS="192.168.1.201"
# IP Virtuel
VIP_ADDRESS="192.168.1.202"
# Mot de passe
PASSWORD="password"
# Fréquence des paquets de synchro
ADVBASE=1
# Pour voir toutes les options: ucarp --help
OPTIONS= "--shutdown --preempt"

La partie OPTIONS permet de définir plus finement le comportement du groupe :

  • -k : permet de définir une priorité. Celui avec la plus base est master, cette option rend --preempt caduque.
  • --shutdown : déclenche l'exécution du script de fermeture à l'extinction de la machine
  • --preempt : si le master revient, le slave toujours debout garde la main (évite de faire tomber les tunnels SSL, VPN, etc...)

Enfin, on va éditer le fichier /etc/ucarp/vip-002.conf pour y mettre les lignes suivantes :

FW1 FW2
# ID du cluster
ID=001
# Network Interface
BIND_INTERFACE="eth1"
# IP de fw1
SOURCE_ADDRESS="192.168.2.200"
# IP Virtuel
VIP_ADDRESS="192.168.2.202"
# Mot de passe
PASSWORD="password"
# Fréquence des paquets de synchro
ADVBASE=1
# Pour voir toutes les options: ucarp --help
OPTIONS="--shutdown --preempt"
# ID du cluster
ID=001
# Network Interface
BIND_INTERFACE="eth0"
# IP de fw1
SOURCE_ADDRESS="192.168.2.201"
# IP Virtuel
VIP_ADDRESS="192.168.2.202"
# Mot de passe
PASSWORD="password"
# Fréquence des paquets de synchro
ADVBASE=1
# Pour voir toutes les options: ucarp --help
OPTIONS= "--shutdown --preempt"