User Tools

Site Tools


протокол_carp

This is an old revision of the document!


Протокол CARP

FreeBSD (user land)

Установка

[nodeN:~] # pkg_add -r ucarp

Настройка

[node1:~] # cat /etc/rc.conf
...
ucarp_enable="YES"
ucarp_vhid="1"
ucarp_if="em0"
ucarp_src="192.168.X.1"
ucarp_addr="192.168.X.254"
# ucarp_advskew="50"
# ucarp_preempt="YES" # For always use master with lover advskew
ucarp_pass="secret"
ucarp_upscript="/usr/local/etc/vip-up.sh"
ucarp_downscript="/usr/local/etc/vip-down.sh"
[node2:~] # cat /etc/rc.conf
...
ucarp_enable="YES"
ucarp_vhid="1"
ucarp_if="em0"
ucarp_src="192.168.X.2"
ucarp_addr="192.168.X.254"
# ucarp_advskew="100"
# ucarp_preempt="YES"
ucarp_pass="secret"
ucarp_upscript="/usr/local/etc/vip-up.sh"
ucarp_downscript="/usr/local/etc/vip-down.sh"
[nodeN:~] # cat /usr/local/etc/vip-up.sh
#!/bin/sh
ifconfig em0 inet 192.168.X.254/32 alias
[nodeN:~] # chmod +x /usr/local/etc/vip-up.sh
[nodeN:~] # cat /usr/local/etc/vip-down.sh
#!/bin/sh
ifconfig em0 inet 192.168.X.254/32 -alias
[nodeN:~] # chmod +x /usr/local/etc/vip-down.sh
[nodeN:~] # /usr/local/etc/rc.d/ucarp start

Ubuntu

Установка

root@nodeN:~# apt-get install ucarp

Вариант использования 1 (устаревший)

Настройка

root@nodeN:~# cat /etc/vip-up.sh
#!/bin/sh
/sbin/ip addr add 192.168.X.254/32 dev "$1"
root@nodeN:~# cat /etc/vip-down.sh
#!/bin/sh
/sbin/ip addr del 192.168.X.254/32 dev "$1"
root@nodeN:~# chmod +x /etc/vip-up.sh /etc/vip-down.sh

Запуск (можно прописать в /etc/rc.local)

root@node1:~# ucarp -i eth0 -s 192.168.X.1 -v 1 -p secret -a 192.168.X.254 -u /etc/vip-up.sh -d /etc/vip-down.sh -z -B

root@node2:~# ucarp -i eth0 -s 192.168.X.2 -v 1 -p secret -a 192.168.X.254 -u /etc/vip-up.sh -d /etc/vip-down.sh -z -B

Примечания:

  • Не смотря на ОБЯЗАТЕЛЬНОЕ наличие ключа -a 192.168.X.254 адрес повторно приходится присваивать/удалять в скриптах
  • If you want a “preferred” master to immediately become a master even if another host is already the master: a) add the –preempt (or -P) switch to *all* hosts b)use a lower skew (-k) or a lower base for the “preferred” one.

Проверка

root@nodeN:~# ip addr show dev eth0

Остановка

root@nodeN:~# killall ucarp

Вариант использования 2

Настройка

root@nodeN:~# less /usr/share/doc/ucarp/README.Debian

root@nodeN:~# ifdown eth0

root@nodeN:~# cat /etc/network/interfaces
...
auto eth0
iface eth0 inet static
        address 192.168.X.N
        netmask 255.255.255.0
        ucarp-vid 1
        ucarp-vip 192.168.X.254
        ucarp-password secret

iface eth0:ucarp inet static
        address 192.168.X.254
        netmask 255.255.255.255
...
root@nodeN:~# cat /usr/share/ucarp/vip-up
#!/bin/sh

/sbin/ifup $1:ucarp
root@nodeN:~# cat /usr/share/ucarp/vip-down
#!/bin/sh

/sbin/ifdown $1:ucarp

Запуск

root@nodeN:~# ifup eth0

Проверка

root@nodeN:~# ps ax | grep carp

root@nodeN:~# ifconfig eth0:ucarp

Остановка

root@nodeN:~# ifdown eth0:ucarp

Дополнительные материалы

FreeBSD (kernel land)

Настройка
node1# ifconfig carp0 create
node1# ifconfig carp0 vhid 1 pass testpass321 192.168.X.254/24

node2# ifconfig carp0 create
node2# ifconfig carp0 vhid 1 advskew 100 pass testpass321 192.168.X.254/24

node1# cat /etc/rc.conf
...
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass321 192.168.X.254/24"
...
node2# cat /etc/rc.conf
...
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 advskew 100 pass testpass321 192.168.X.254/24"
...
Проверка
nodeN# ifconfig carp0
протокол_carp.1432635609.txt.gz · Last modified: 2015/05/26 13:20 by val