我有一个关于主干测试环境的具体问题。我有以下网络设置:
+------------+ +------------+
| | +-----+ | |
| eth0 +----+ br0 +----+ eth0 |
| | +-+---+ | |
| Guest1 | | | Guest2 |
| | +-----+ | |
| eth1 +----+ br1 +----+ eth1 |
| | +---+-+ | |
+------------+ | | +------------+
+-+-+--+
| Host |
+------+
KVM 主机为客户机提供两个网桥(/etc/network/interfaces):
auto br0
iface br0 inet manual
bridge_ports none
bridge_fd 0
bridge_stp off
auto br1
iface br1 inet manual
bridge_ports none
bridge_fd 0
bridge_stp off
客户机使用以下配置连接到交换机:
# Actual interfaces
allow-hotplug eth0 eth1
iface eth0 inet manual
iface eth1 inet manual
# Internet facing network
auto eth0.100 eth1.100
iface eth0.100 inet manual
iface eth1.100 inet manual
auto bond0
iface bond0 inet manual
bond_mode active-backup
bond_miimon 200
bond_downdelay 200
bond_updelay 200
# Something I found to make the active secondary slave listening
post-up echo 1 > /sys/devices/virtual/net/bond0/bonding/all_slaves_active
slaves eth0.100 eth1.100
auto bond0.1
address 10.110.0.10x
netmask 255.255.0.0
# Please don't ask why the three vlan is needed.
# The bonding works only if these three are defined :\
现在我的问题如下:
默认的主从服务器是两个客户机上的 eth0.100 接口。如果我使用以下命令关闭主从服务器
$ ip link set eth0.100 down
根据“ip link”,链接断开,绑定更改主从属,但数据包在非活动接口上被接受。(我通过运行“tshark -i eth1.100”发现了这一点,并且只显示了 ping 回复消息。)
如果我关闭主机上的接口,客户机之间的整个通信就会停止。甚至绑定也无法识别这种变化。
附加信息:
- 我没有 IPTables/EBTables 规则来阻止此接口上的软件包
- 我知道广播模式可以帮助解决我所有的问题,尽管我认为这会让两位嘉宾之间的交流变得臃肿。我宁愿不使用该选项。
问题:
- 为什么“ip link set ... down”不能关闭链接?
- 干预 all_slaves_active 是否会以某种方式干扰接口状态?
- 是否存在我可能遗漏的选项,可以让主动备份意识到接口的变化?
- (为什么需要三个 VLAN 才能使绑定工作?)
任何答复都将不胜感激。