[root@wallet03 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@wallet03 ~]# sysctl -p
[root@wallet03 ~]# cd /usr/local/src
[root@wallet03 src]# rpm -ivh epel-release-6-8.noarch.rpm
[root@wallet03 src]# yum install -y libnl libnl-devel
[root@wallet03 src]# tar zxvf keepalived-1.2.19.tar.gz
[root@wallet03 src]# cd keepalived-1.2.19
[root@wallet03 keepalived-1.2.19]# ./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64
[root@wallet03 keepalived-1.2.19]# make && make install
[root@wallet03 keepalived-1.2.19]# ln -s /usr/local/sbin/keepalived /sbin/
[root@wallet03 ~]# chkconfig --add keepalived
[root@wallet03 ~]# chkconfig --level 35 keepalived on
[root@wallet03 ~]# chkconfig --list |grep keepalived
[root@wallet03 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id wallet03
vrrp_instance v01 {
state MASTER
interface eth1
virtual_router_id 203
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.200 dev eth0
}
virtual_server 192.168.1.200 80 {
delay_loop 3
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.1.201 80 {
weight 1
TCP_CHECK {
connect_timeout 1
nb_get_retry 1
delay_before_retry 1
}
}
real_server 192.168.1.202 80 {
weight 1
TCP_CHECK {
connect_timeout 1
nb_get_retry 1
delay_before_retry 1
}
}
}
[root@wallet03 ~]# service keepalived start
[root@wallet01 ~]# vim /etc/init.d/lvsrs
#!/bin/sh
vip=192.168.1.200
/etc/rc.d/init.d/functions
case "$1" in
start)
echo "start lvs of rs"
/sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
/sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 -arp
/sbin/route add -host $vip dev lo:0
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
;;
stop)
/sbin/ifconfig lo:0 down
echo "close lvs of rs"
echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
;;
*)
echo "Usage:$0{start|stop}"
exit 1
esac
[root@wallet01 ~]# chmod 755 /etc/rc.d/init.d/lvsrs
[root@wallet01 ~]# chmod 755 /etc/rc.d/init.d/functions
[root@wallet01 ~]# /etc/rc.d/init.d/lvsrs start
[root@wallet02 ~]# vim /etc/init.d/lvsrs
#!/bin/sh
vip=192.168.1.200
/etc/rc.d/init.d/functions
case "$1" in
start)
echo "start lvs of rs"
/sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
/sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 -arp
/sbin/route add -host $vip dev lo:0
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
;;
stop)
/sbin/ifconfig lo:0 down
echo "close lvs of rs"
echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
;;
*)
echo "Usage:$0{start|stop}"
exit 1
esac
[root@wallet02 ~]# chmod 755 /etc/rc.d/init.d/lvsrs
[root@wallet02 ~]# chmod 755 /etc/rc.d/init.d/functions
[root@wallet02 ~]# /etc/rc.d/init.d/lvsrs start
[root@wallet03 ~]# yum install -y ipvsadm
[root@wallet03 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.200:80 rr persistent 50
-> 192.168.1.201:80 Route 1 6 0
-> 192.168.1.202:80 Route 1 0 0