Отказоустойчивый шлюз
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# ssh server2
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
CTRL + D
[root@server1 /]# yum install -y ucarp && ssh server2 yum install -y ucarp
[root@server1 /]# chkconfig --level 345 ucarp on && ssh server2 chkconfig --level 345 ucarp on
### BACKUPS CONFIG FILES
[root@server1 /]# cp /etc/ucarp/vip-common.conf /etc/ucarp/vip-common.conf.bkp && ssh server2 cp /etc/ucarp/vip-common.conf /etc/ucarp/vip-common.conf.bkp
[root@server1 /]# cp /usr/libexec/ucarp/vip-up /usr/libexec/ucarp/vip-up.bkp && ssh server2 cp /usr/libexec/ucarp/vip-up /usr/libexec/ucarp/vip-up.bkp
[root@server1 /]# cp /usr/libexec/ucarp/vip-down /usr/libexec/ucarp/vip-down.bkp && ssh server2 cp /usr/libexec/ucarp/vip-down /usr/libexec/ucarp/vip-down.bkp
=================
Дано:
192.168.1.20 — адрес сервера который должен быть зарезервирован
192.168.1.21 — адрес master сервера
192.168.1.22 — адрес stand-by сервера
===========================
SERVER1
# vi /etc/ucarp/vip-common.conf
ID="001"
VIP_ADDRESS="192.168.1.20"
PASSWORD="MYPASSWD"
BIND_INTERFACE="eth0"
SOURCE_ADDRESS="192.168.1.21"
OPTIONS="--shutdown --preempt --advskew=10"
ID — id нашего «кластера»;
BIND_INTERFACE — интерфейс на котором будет висеть ucarp и проверять другой хост;
SOURCE_ADDRESS — адрес ЭТОЙ машины. У каждой он свой;
VIP_ADDRESS — адрес который резервируем, на нем висит необходимый сервис (веб сервер, к примеру)
PASSWORD — пароль для обмена сообщениями между серверами (одинаковый для обоих серверов)
OPTIONS — доп.опции. У master сервера должна быть опция —preempt. У stand-by сервера этой опции быть не должно
# vi /etc/ucarp/vip-001.conf
# VIP_ADDRESS="192.168.1.20"
[root@server1 ~]# scp /etc/ucarp/vip-001.conf server2:/etc/ucarp/vip-001.conf
[root@server1 ~]# ssh server2
SERVER2
[root@server2 ~]# vi /etc/ucarp/vip-common.conf
ID="001"
VIP_ADDRESS="192.168.1.20"
PASSWORD="MYPASSWD"
BIND_INTERFACE="eth0"
SOURCE_ADDRESS="192.168.1.22"
CTRL + D
===========================================
[root@server1 ~]# vi /usr/libexec/ucarp/vip-up
#!/bin/sh
exec 2>/dev/null
/sbin/ifconfig eth0:0 192.168.1.20/24 up
[root@server1 ~]# scp /usr/libexec/ucarp/vip-up server2:/usr/libexec/ucarp/vip-up
[root@server1 ~]# vi /usr/libexec/ucarp/vip-down
#!/bin/sh
exec 2>/dev/null
/sbin/ifconfig eth0:0 down
[root@server1 ~]# scp /usr/libexec/ucarp/vip-down server2:/usr/libexec/ucarp/vip-down
===========================================
[root@server1 ~]# service network restart && ssh server2 service network restart
[root@server1 ~]# service ucarp restart && ssh server2 service ucarp restart
[root@server1 ~]# ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr 08:00:27:93:1E:10
inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
[root@server1 ucarp]# ip addr show dev eth0
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:93:1e:10 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.21/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.20/32 scope global eth0
inet6 fe80::a00:27ff:fe93:1e10/64 scope link
valid_lft forever preferred_lft forever
[root@server1 ucarp]# ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=0.077 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.116 ms
===================
Почитать:
http://habrahabr.ru/post/137476/
http://lug-wiki.nnov.ru/server/carp-ucarp-v-linux-dva-servera-na-odnom-ip-centos-rhel-oel/