keepalived单播的配置
keepalived在组播模式下所有的信息都会向224.0.0.18的组播地址发送,产生众多的无用信息,并且会产生干扰和冲突,所以需要将其组播的模式改为单播。这是一种安全的方法,避免局域网内有大量的keepalived造成虚拟路由id的冲突。 单播模式需要关闭vrrp_strict这个选项。单播需要在VIP实例配置段加入单播的源地址和目标地址
准备主机2台
server | hostname | ip |
---|---|---|
keepalived | ka1 | 192.168.99.103 |
keepalived | ka2 | 192.168.99.104 |
- ka1的配置
[ka1]$ vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id ka1
vrrp_skip_check_adv_addr
#vrrp_strict
#vrrp_mcast_group4 224.100.100.100
vrrp_iptables
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 11
priority 100
advert_int 1
#nopreempt #非抢占模式,当优先级更高的主机上线时,不会抢占为主服务器
authentication {
auth_type PASS
auth_pass 123
}
unicast_src_ip 192.168.99.103 #单播的源地址,写本机上的ip即可
unicast_peer {
192.168.99.104 #如果有多个主机组成集群,把其它主机ip都写上
}
virtual_ipaddress {
192.168.0.100 dev eth0 label eth0:1
}
}
- 修改ka2的配置
[ka2]$ vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id ka2
vrrp_skip_check_adv_addr
#vrrp_strict
#vrrp_mcast_group4 224.100.100.100
vrrp_iptables
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 11
priority 80
advert_int 1
#nopreempt #非抢占模式,当优先级更高的主机上线时,不会抢占为主服务器
authentication {
auth_type PASS
auth_pass 123
}
unicast_src_ip 192.168.99.104 #单播的源地址,写本机上的ip即可
unicast_peer { #注意:花括号前有空格
192.168.99.103 #如果有多个主机组成集群,把其它主机ip都写上
}
virtual_ipaddress {
192.168.0.100 dev eth0 label eth0:1
}
}
- 在ka1或ka2新开个终端准备抓包
[ka1]$ tcpdump -i eth0 -nn net 224.100.100.100
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
- 启动ka2的keepalived(先启动backup)
[ka2]$ systemctl restart keepalived
抓到包了。从ka2发往ka1的单播
VIP绑定上了
- 启动ka1的keepalived
[ka1]$ systemctl restart keepalived
单播的源地址目的地址反过来了
VIP漂移到ka1了,因为ka1的优先级比ka2高