linux – keepalived config与virtualbox vms无法正常工作

我的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.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...