我的keepalived配置无法正常工作.
我有两个虚拟测试机器(virtualBox)来尝试使用keepalived / vrrp. Bot可以完美地互相ping通(内部虚拟盒网络).
VM 1(MASTER):
eth0: Management eth1: 192.168.2.1/24 eth2: 192.168.2.2/24 keepalived.conf: vrrp_instance test { state MASTER interface eth1 track_interface { eth2 } virtual_router_id 1 priority 101 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.3.1/24 dev eth1 192.168.3.2/24 dev eth2 } } tcpdump on eth1: 12:44:54.720119 IP 192.168.2.1 > vrrp.mcast.net: VRRPv2,Advertisement,vrid 1,prio 101,authtype simple,intvl 1s,length 24 12:44:55.049465 IP 192.168.2.3 > vrrp.mcast.net: VRRPv2,prio 100,length 24 tcpdump on eth2: 12:46:21.082264 IP 192.168.2.1 > vrrp.mcast.net: VRRPv2,length 24 12:46:21.494239 IP 192.168.2.3 > vrrp.mcast.net: VRRPv2,length 24
VM 2(备份):
eth0: Management eth1: 192.168.2.3/24 eth2: 192.168.2.4/24 keepalived.conf: vrrp_instance test { state BACKUP interface eth1 track_interface { eth2 } virtual_router_id 1 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.3.1/24 dev eth1 192.168.3.2/24 dev eth2 } } tcpdump on eth1: 12:53:12.265456 IP 192.168.2.1 > vrrp.mcast.net: VRRPv2,length 24 12:53:12.670635 IP 192.168.2.3 > vrrp.mcast.net: VRRPv2,length 24 tcpdump on eth2: 12:53:34.397374 IP 192.168.2.1 > vrrp.mcast.net: VRRPv2,length 24 12:53:34.787327 IP 192.168.2.3 > vrrp.mcast.net: VRRPv2,length 24
在VM 2上启动keepalived后,它立即转换到主状态,这不应该.
为什么会这样?
解决方法
eth1和eth2是否在同一物理(虚拟 – 物理)子网上?如果没有,那么在每个主机上有两个不同的接口并且在同一子网上具有IP并且您正在为同一子网上的每个接口分配IP,这似乎有点奇怪.我建议尝试一下:
VM 1: eth1 - 192.168.101.2/24,eth2 - 192.168.102.2/24 VM 2: eth1 - 192.168.101.3/24,eth2 - 192.168.102.3/24 VRRP: eth1 - 192.168.101.1/24,eth2 - 192.168.103.1/24
这会将每个接口上的地址放在同一个子网上,但是放在同一主机上其他接口的不同子网上.我不确定这会导致问题,但似乎可能,因为您的主机将有两个不同的设备路由到同一个子网,这可能会混淆keepalived和/或VRRP.我认为这通常是你看到VRRP在思科路由器之类的东西上工作的方式 – 你会看到一个虚拟IP地址,然后是两个设备的物理IP,都在同一个子网上.
在keepalived文档中似乎建议的另一件事是将50-ish点的优先级分开 – 因此,将MASTER设置为150,将BACKUP设置为100.