1、官网
https://www.keepalived.org/download.html
2、下载
wget https://www.keepalived.org/software/keepalived-2.0.16.tar.gz
3、解压
tar -zxvf keepalived-2.0.16.tar.gz
4、安装
./configure --sysconf=/etc/ --prefix=/data/app/keepalived
make && make install
5、配置
more /etc/keepalived/keepalived.conf
global_defs {
notification_email {
#acassen@firewall.loc
#failover@firewall.loc
#sysadmin@firewall.loc
xxxxx@qq.com #收邮件
}
notification_email_from Alexandre.Cassen@firewall.loc
#smtp_server 192.168.200.1
smtp_serve smtp.qq.com #邮箱smtp服务器
smtp_connect_timeout 30
router_id lb_test
vrrp_skip_check_adv_addr
#vrrp_strict #严格模式,单播功能会被禁止
#vrrp_garp_interval 0
#vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER #master节点
interface eth0 #绑定一个网卡
virtual_router_id 51 #id号,主从一致
priority 50 #优先级
advert_int 1
authentication{ #验证
auth_type PASS
auth_pass 2111
}
#调整为单播,非同网段,调整为单播模式
unicast_src_ip 172.17.150.251 #本机IP
unicast_peer {
172.17.12.241 #目标IP
}
virtual_ipaddress{ #vip
172.17.150.200 dev eth0 label eth0:1
}
}
#virtual_server 172.17.150.200 80 {
# delay_loop 6
# lb_algo rr
# lb_kind NAT
# persistence_timeout 50
# protocol TCP
# real_server 172.17.150.251 80 {
# weight 1
# }
# real_server 172.17.12.241 80 {
# weight 1
# }
#}
6、防火墙设置
iptables 允许ping、arrp等权限
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT
iptables -A INPUT -p vrrp -j ACCEPT
service iptables save
service iptables restart
7、设置keepalived日志
把日志单独存放
修改/etc/sysconfig/keepalived
把KEEPALIVED_OPTIONS="-D" 修改为:KEEPALIVED_OPTIONS="-D -d -S 0"
KEEPALIVED_OPTIONS="-D -d -S 0"
在/etc/rsyslog.conf 末尾添加
local0.* /var/log/keepalived.log
重启日志服务
service rsyslog restart
8、启动keepalived
systemctl start keepalived
9、查看arrp记录
tcpdump -i eth0 vrrp -n
10、关于keepalived漂移VIP的问题
内核开启IP转发和允许非本地IP绑定功能
vi /etc/sysctl.conf
#开启IP转发功能 :
net.ipv4.ip_forward = 1
#开启允许绑定非本机的IP:
net.ipv4.ip_nonlocal_bind = 1
#如果使用LVS的DR或者TUN模式结合Keepalived需要在后端真实服务器上特别设置两个arp相关的参数:
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
如果Keepalived所在网络不允许使用组播,可以使用VRRP单播
需要注意主备的weight和priority的值,这两个值如果设置不合理可能会影响VIP的切换。