实践单组KeeAlived各抢占模式和单播配置

实验内容:	1.单组KeeAlived   
			2.抢占模式、非抢占模式、抢占延迟模式  
			3.VIP单播配置

CIP:192.168.10.50       gateway:192.168.10.2
KA1:DIP:192.168.80.100  gateway:192.168.80.2      master
KA2: RIP:192.168.80.110  gateway:192.168.80.2      backup

 

MASTER配置
global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from root@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id localhost7A
   vrrp_iptables
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   vrrp_mcast_group4 224.0.0.18
}
vrrp_instance zzhz {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 95
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass centos
    }
    virtual_ipaddress {
        192.168.80.222/24 dev eth0 label eth0:1
    }
}

#从主机配置文件和master基本一致,只需修改四行
global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from zzhz@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id localhost7B  # 
   vrrp_iptables
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   vrrp_mcast_group4 224.0.0.18

}
vrrp_instance zzhz {
    state BACKUP  #
    interface eth0
    virtual_router_id 51  #
    priority 80   #
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass centos
    }
    virtual_ipaddress {
        192.168.80.222/24 dev eth0 label eth0:1
}
}

  

3.抓包观察测试


tcpdump -i eth0 -nn host 224.0.0.18
20:49:17.610250 IP 192.168.80.100 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 0, authtype simple, intvl 2s, length 20   
 
[root@localhost7A ~]# systemctl stop   keepalived.service  #停止服务器
20:49:30.330979 IP 192.168.80.110 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 80, authtype simple, intvl 2s, length 20   #backup变主


[root@localhost7A ~]# systemctl start   keepalived.service  # 重启服务:抢占模式
20:49:30.331286 IP 192.168.80.100 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 95, authtype simple, intvl 2s, length 20  

  

抢占模式和非抢占模式
默认为抢占模式,即当高优先级的主机恢复在线后,会抢占低先级的主机的master角色,造成网络抖动,
建议设置为非抢占模式 nopreempt ,即高优级主机恢复后,并不会抢占低优先级主机的master角色
注意:要关闭 VIP抢占,必须将各 keepalived 服务器state配置为BACKUP

vrrp_instance zzhz {
    state BACKUP		#都为BACKUP
    interface eth0
    virtual_router_id 51
    priority 95
    advert_int 2
    nopreempt			 #添加此行,都为nopreempt

vrrp_instance zzhz {
	state BACKUP		#都为BACKUP
    interface eth0
    virtual_router_id 51
    priority 80
    advert_int 2
    nopreempt    #添加此行,都为nopreempt

测试:

21:05:43.384531 IP 192.168.80.100 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 95, authtype simple, intvl 2s, length 20

[root@localhost7A ~]# systemctl stop    keepalived.service 
21:05:44.420620 IP 192.168.80.110 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 80, authtype simple, intvl 2s, length 20   

[root@localhost7A ~]# systemctl restart     keepalived.service 
21:05:44.420620 IP 192.168.80.110 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 80, authtype simple, intvl 2s, length 20    后面没有抢回

  

抢占延迟模式
抢占延迟模式,即优先级高的主机恢复后,不会立即抢回VIP,而是延迟一段时间(默认300s)再抢回 VIP
preempt_delay #s 指定抢占延迟时间为#s,默认延迟300s
注意:需要各keepalived服务器state为BACKUP,一般设置在priority比较高vrrp_instance中,与nopreempt选项互斥。

vrrp_instance zzhz {
    state BACKUP		#都为BACKUP,(测试中发现可设置为master)
    interface eth0
    virtual_router_id 51
    priority 95
    advert_int 2
    preempt_delay 15s		#抢占延迟模式,默认延迟300s	 

vrrp_instance zzhz {
	state BACKUP		#都为BACKUP
    interface eth0
    virtual_router_id 51
    priority 80
    advert_int 2
 
测试
21:17:29.095281 IP 192.168.80.100 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 95, authtype simple, intvl 2s, length 20
[root@localhost7A ~]# systemctl stop   keepalived.service
21:18:28.841600 IP 192.168.80.110 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 80, authtype simple, intvl 2s, length 20
[root@localhost7A ~]# systemctl restart   keepalived.service #15秒后抢占
21:18:28.841607 IP 192.168.80.100 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 95, authtype simple, intvl 2s, length 20

  

VIP单播配置
默认keepalived主机之间利用多播相互通告消息,会造成网络拥塞,可以替换成单播,减少网络流量
注意:启用单播,不能启用 vrrp_strict(vrrp_strict这个默认是启用)

参数说明 vrrp_strict #严格遵守VRRP协议,禁止以下状况:1.无VIP地址 2.配置了单播(unicast选择) 3.在VRRP版本2中有IPv6地址,开启动此项会自动开启iptables防火墙规则,建议关闭此项配置,

#分别在各个keepalived 节点设置对方主机的IP,建议设置为专用于对应心跳线网络的地址,而非使用业务网络
unicast_src_ip <IPADDR> #指定单播的源IP,指本机地址。
unicast_peer {
<IPADDR> #指定单播的对方目标主机IP
...... #多个keepalived时要写上所有的地址
}

cat /etc/keepalive/keepalived.conf
global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from root@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id localhost7A
   vrrp_iptables
   #vrrp_strict   #重点
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   vrrp_mcast_group4 224.0.0.18
}
vrrp_instance zzhz {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 95
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass centos
    }
    virtual_ipaddress {
        192.168.80.222/24 dev eth0 label eth0:1
    }
	unicast_src_ip 192.168.80.100  #单播设置
    unicast_peer {
        192.168.80.110
    }
}


测试:
[root@localhost7A ~]# tcpdump  -i eth0 -nn host 192.168.80.100 and host 192.168.80.110
10:45:25.184343 IP 192.168.80.100 > 192.168.80.110: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 2s, length 20
10:45:25.184380 IP 192.168.80.110 > 192.168.80.100: ICMP 192.168.80.110 protocol 112 unreachable, length 48

  

 

posted @ 2022-07-28 10:27  yuanbangchen  阅读(316)  评论(0)    收藏  举报