这里有一个设置,大约30 Dom0s运行Xen 4.0.3,Dom0内核为2.6.32.57 x86_64。(我们在之前的Xen 4.0.1和内核2.6.32.2X中看到了同样的行为)
有时,xen突然停止为新的(或迁移的) DomUs添加vifs。接口在那里,添加到正确的桥,但桥端口从来没有收到任何流量.此时,所有已连接的接口都可以正常工作。这种情况同时发生在dom0上的所有桥接器上(我们有11个vlans的11个网桥,每个主机有4个物理接口,网桥上的stp已经关闭)。
如果发生这种情况,当通过xen添加接口时,我在日志中看到了这一点,而xen似乎缺少刚刚添加的接口进入转发状态的桥:
[809766.761058] device r624-eth0 entered promiscuous mode
[809766.773664] br-vlan2801: port 1(r624-eth0) entering learning state
[809766.857665] device r624-eth1 entered promiscuous mode
[809766.872226] br-vlan2802: port 2(r624-eth1) entering learning state
[809768.377613] blkback: ring-ref 8, event-channel 8, protocol 2 (x86_32-abi)
[809776.810481] r624-eth0: no IPv6 routers present
[809777.870549] r624-eth1: no IPv6 routers presentr624-eth0的IP之后是不可点击的。tcpdump -i br-vlan2801显示pinging的ARP请求,tcpdump -i r624-eth0没有显示任何内容。因此,数据包到达桥接器,但不被转发到vif (据我理解)。通过ifconfig br-vlan2801 down拆下桥没有帮助--但是删除和重新创建桥解决了这个问题。这使我得出结论,Xen不是问题的一部分。
如果我只是通过ifconfig br-vlan2801 down / up重新启动桥接器接口,我会看到以下内容:
Jul 5 16:43:52 kernel: [811367.029655] br-vlan2159: port 4(b434-eth1) entering disabled state
Jul 5 16:43:52 kernel: [811367.029893] br-vlan2159: port 3(d434-eth1) entering disabled state
Jul 5 16:43:52 kernel: [811367.030121] br-vlan2159: port 2(w434-eth1) entering disabled state
Jul 5 16:43:52 kernel: [811367.030350] br-vlan2159: port 1(eth0.2159) entering disabled state
Jul 5 16:44:15 kernel: [811389.818841] br-vlan2159: port 4(b434-eth1) entering learning state
Jul 5 16:44:15 kernel: [811389.819076] br-vlan2159: port 3(d434-eth1) entering learning state
Jul 5 16:44:15 kernel: [811389.819307] br-vlan2159: port 2(w434-eth1) entering learning state
Jul 5 16:44:15 kernel: [811389.819536] br-vlan2159: port 1(eth0.2159) entering learning state
Jul 5 16:44:25 kernel: [811399.959567] br-vlan2159: no IPv6 routers present如果删除桥并重新配置它,当桥再次出现时,我会看到如下情况:
Jul 5 16:47:23 kernel: [811578.178683] br-vlan2159: port 4(w434-eth1) entering learning state
Jul 5 16:47:23 kernel: [811578.178917] br-vlan2159: port 3(eth0.2159) entering learning state
Jul 5 16:47:23 kernel: [811578.179146] br-vlan2159: port 2(d434-eth1) entering learning state
Jul 5 16:47:23 kernel: [811578.179374] br-vlan2159: port 1(b434-eth1) entering learning state
Jul 5 16:47:34 kernel: [811588.789566] br-vlan2159: no IPv6 routers present
Jul 5 16:47:38 kernel: [811593.178568] br-vlan2159: port 4(w434-eth1) entering forwarding state
Jul 5 16:47:38 kernel: [811593.178801] br-vlan2159: port 3(eth0.2159) entering forwarding state
Jul 5 16:47:38 kernel: [811593.179029] br-vlan2159: port 2(d434-eth1) entering forwarding state
Jul 5 16:47:38 kernel: [811593.179255] br-vlan2159: port 1(b434-eth1) entering forwarding state在此之后,桥和连接到它的所有接口都按预期工作。
同时,所有的桥梁都发生了这种情况,我不会为此责怪brctl工具,而会在内核中更深入地指责它。因为它是随机发生的,而且每隔一个月都会发生一次,所以我没有可能将它与更新的内核交叉检查。
主要的问题(据我理解)是:为什么桥没有在刚刚添加的/设置的端口上进入前向状态?
发布于 2012-10-09 13:13:29
如果波特坚持学习,什么对我们有用:
#brctl showstp
if1.ext (5)
port id 8005 state learning
designated root 8000.d8d3855f7f58 path cost 100
designated bridge 8000.d8d3855f7f58 message age timer 0.00
designated port 8005 forward delay timer 17075646.29
designated cost 0 hold timer 0.00
flags 删除并添加具有0转发延迟的桥接器接口:
#brctl delif xenbr1 if1.ext
#brctl setfd 0
#brctl addif xenbr1 if1.exthttps://serverfault.com/questions/405075
复制相似问题