networkingstream量似乎不会离开中继线

我正在安装一些新的虚拟化服务器,其中一部分是为了获得一些高带宽的pipe道。 最终目标是将4个GigE端口绑定到一个携带802.1q标记stream量的中继线上。 我可以得到这么多,但是我遇到了一个奇怪的问题。 但首先,一个图。

---------- ---------- 1GbE trunks | | 10GbE | | ------------- -------- | SW1 |-------| SW2 | ------------- | VM1 | | | | | ------------- -------- ---------- ---------- | | 1GbE ----------- | 1GbE |--------| client2 | | ----------- ---------- | | 1GbE ----------- | SW3 |------| client1 | | | ----------- ---------- 

所有交换机都是HP ProCurve 2910al交换机,不能堆叠。 上图中的Client2和VM1在同一个VLAN中。 Client1在不同的VLAN中。 对于VM机器(CentOS 6),iptables和SELinux都被禁用。

我的问题是,当涉及到中继时,双向networkingstream量是不可能的任何一个客户端机器谈话时。 TCPDUMP显示ping被它们接收,ECHO REPLY数据包被发送,但VM主机从不会看到它们。 同时,如果我尝试从客户端机器ping虚拟机,它也不起作用。 事实上,我不能ping同一个子网上的客户端2,暗示在某个地方的networking层是一个棘手的问题。

奇怪的是,从VM主机,我可以ping任何交换机上的网关IP。 如果我使用一个单一的接口,一切工作都很好,无论是否有VLAN标记。 如果我只是绑定一个接口,并在该接口上添加VLAN标记,我可以去任何地方。 构build一条中继线,而我仅限于交换matrix。

干线的types似乎并不重要。 现在他们configuration模式0中继(balance-rr),尽pipe使用LACP / 802.1qa的行为方式相同。

 vlan 70 name "Virtualization Subnet" untagged 35,36,38,40 tagged Trk1-Trk2,Trk5,Trk8 no ip address jumbo exit 

那是SW2上的VLANconfiguration。 SW1的VLAN 70定义具有在其上定义的“IP地址”。 上面的代码片段处于完全未被占用的模式。 当我被树干的时候:

 trunk 35-36,38,40 Trk16 trunk vlan 70 name "Virtualization Subnet" tagged Trk1-Trk2,Trk5,Trk8,Trk16 no ip address jumbo exit 

802.1qa / LACP版本为trunk 35-36,38,40 Trk16 lacp干线定义,但正如我所说的,不会改变问题的表述。

Client2实际上连接到SW1,但将它放在图表中会使格式变得更复杂。 在任何情况下,Interface节中唯一的一个是name指令。 它在SW1的vlan 70节中被列为untagged端口。

我错过了什么?

在经过MikeyB , Pauska和ChrisS的长时间的讨论之后,问题变成了两个方面:

  1. CentOS 6中一个可能的错误是没有改变bonding模块的模块选项作为service network restart一部分,所以它没有跟踪我在LACP模式(4)和roundrobin(0)之间的变化。
  2. 循环模式不喜欢与ProCurve交换机配合使用。

一旦我通过这个命令强制绑定接口到LACP / 802.1qa模式:

 ifconfig bond0 down echo "4" > /sys/class/net/bond0/bonding/mode ifconfig bond0 up 

服务器和交换机都在说话。 此时,从交换机上只启用一个接口开始,stream量开始正常工作。 启用第二个,第三个,最后,第四个接口都保持stream量正常工作。

最终,LACP模式是使事情成功的原因。 线索是,在中继线中只有一个使能的交换机端口的情况下,循环模式起作用。 服务器在重启后仍然存在,并以正确的模式启动。 但是, service network restart不会导致/etc/sysconfig/network-scripts/中的ifcfg-bond0文件的MODE="4"部分生效。 如果该模式改变,它将保持在启动时设置的(或者更可能的是, bonding模块的模块加载时间)。

你有你的configuration:

 trunk 35-36,38,40 Trk16 trunk vlan 70 name "Virtualization Subnet" tagged Trk1-Trk2,Trk5,Trk8,Trk16 no ip address jumbo exit 

不应该是:

  untagged Trk16 tagged Trk1-Trk2,Trk5,Trk8