Ceci est une ancienne révision du document !
Installation de Ucarp
Ucarp est un outil pour créer des "adresses IP virtuelles" entre plusieurs serveurs pour mettre en place un service en haute disponibilité (ex routeur …) .
Téléchargements
Pour cela vous pouvez simplement taper dans une console :
sudo apt-get install ucarp
Mise en place du service
Seulement à ce moment la nous n'avons que l'utilitaire ucarp et non pas un service.
Toute la difficulter va etre de le rendre disponible via un service.
Créer les répertoires utilent à ucarp
sudo mkdir /etc/ucarp sudo mkdir /etc/ucarp/interface
Paramètre Généraux
Créer le fichier contenant les paramètres Généreaux à ucarp
sudo vim /etc/default/ucarp
Insérer
# Location of the ucarp executable UCARP_EXEC=/usr/sbin/ucarp IFCONFIG=/sbin/ifconfig # # ucarp options # -z run shudown script on exit # -P force perferred master #OPTIONS="-z -B" OPTIONS="-z"
Paramètre interface virtuelle
Pour chaque adresse virtuelle nous allons créer une interface
sudo vim /etc/ucarp/interface/ucarp0
Insérer :
# # Location of the ucarp pid file UCARP_PIDFILE=/var/run/ucarp0.pid # # ucarp base, lower number will be perfered master # set to same to have master stay alive as long as possible UCARP_BASE=1 # # Interface for Ipaddress INTERFACE=eth0:carp0 # # Instance id # any number from 1 to 255 # Master and Backup need to be the same INSTANCE_ID=42 # # Password so servers can trust who they are talking to PASSWORD=<password> # # The Application Address that will failover VIRTUAL_ADDRESS=192.168.0.32 VIRTUAL_BROADCAST=192.168.0.255 VIRTUAL_NETMASK=255.255.255.0 # # The Maintanence Address of the local machine SOURCE_ADDRESS=192.168.0.1
Fichier de service
De façon à pouvoir activer les adresses virtuelles simplement, nous allons créer un fichier de service ucarp dans /etc/init.d
sudo vim /etc/init.d/ucarp
Insérer :
#!/bin/sh
#/etc/init.d/ucarp: start ucarp daemon.
### BEGIN INIT INFO
# Provides: ucarp
# Short-Description: Start software ucarp daemon
# Required-Start: $local_fs $remote_fs $syslog
# Required-Stop: $local_fs $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin
# For configuration of the init script use the file
# /etc/default/ucarp, do not edit this init script.
# Set run_ucarp to 1 to start ucarp or 0 to disable it.
run_ucarp=1
R_INTERFACE=/etc/ucarp/interface
start() {
if [ $run_ucarp = 1 ]
then
echo -n "Starting $NAME daemon: "
for fichier in $( find $R_INTERFACE -type f -name '*' | sort )
do
[ -e $fichier ] && . $fichier
$IFCONFIG $INTERFACE $VIRTUAL_ADDRESS netmask $VIRTUAL_NETMASK \
broadcast $VIRTUAL_BROADCAST
UCARP_OPTS="$OPTIONS -b $UCARP_BASE -i $INTERFACE \
-v $INSTANCE_ID -p $PASSWORD -a $VIRTUAL_ADDRESS -s $SOURCE_ADDRESS"
start-stop-daemon --start --background --make-pidfile \
--pidfile ${UCARP_PIDFILE} --quiet --exec ${UCARP_EXEC} -- ${UCARP_OPTS}
echo ucarp.
done
fi
}
stop() {
if [ $run_ucarp = 1 ]
then
echo -n "Stopping $NAME daemon: "
for fichier in $( find $R_INTERFACE -type f -name '*' | sort )
do
[ -e $fichier ] && . $fichier
$IFCONFIG $INTERFACE down
if start-stop-daemon --stop --quiet --pidfile ${UCARP_PIDFILE}
then
echo ucarp.
else
echo
fi
done
fi
}
[ -e /etc/default/ucarp ] && . /etc/default/ucarp
test -x ${UCARP_EXEC} || exit 0
NAME=ucarp
case "$1" in
start)
start "$2"
;;
stop)
stop "$2"
;;
restart)
stop "$2"
start "$2"
;;
force-reload)
stop "$2"
start "$2"
;;
*)
echo "Usage: /etc/init.d/ucarp {start|stop|restart|force-reload}"
exit 1
esac
exit 0
Une fois crée il faut rendre executable le script
sudo chmod 744 /etc/init.d/ucarp
Maintenant il ne reste plus qu'a lancer le service comme les autres.
sudo /etc/init.d/ucarp start
En lancant ifconfig dans un terminal :
eth0 Link encap:Ethernet HWaddr 00:15:C5:5D:89:77
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:385003 errors:671 dropped:0 overruns:0 frame:671
TX packets:99652 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:48549065 (46.2 MiB) TX bytes:40492320 (38.6 MiB)
Base address:0xecc0 Memory:fe9e0000-fea00000
eth0:carp0 Link encap:Ethernet HWaddr 00:15:C5:5D:89:77
inet addr:192.168.0.32 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Base address:0xecc0 Memory:fe9e0000-fea00000