网络流量似乎没有离开主干

网络流量似乎没有离开主干

我正在准备一些新的虚拟化服务器,其中一部分是将一些更高带宽的管道接入其中。最终目标是将 4 个 GigE 端口绑定到承载 802.1q 标记流量的单个中继中。我可以做到这一点,但是我遇到了一个奇怪的问题。但首先,请看一张图。

----------       ----------  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 均已禁用。

我的问题是,当涉及中继时,与任一客户端计算机通信时都不可能进行双向网络通信。 TCPDUMP 显示它们接收到了 ping 并发送了 ECHO REPLY 数据包,但 VM 主机从未看到它们。同时,如果我尝试从客户端计算机 ping VM,它也不起作用。我无法 ping 位于同一子网上的客户端 2,这表明网络层某处出了问题。

奇怪的是,从 VM 主机我可以 ping 任何交换机上的网关 IP。如果我使用单个接口,无论有没有 VLAN 标记,一切都会正常工作。如果我只绑定单个接口并在该接口上启用 VLAN 标记,我就可以去任何地方。建立一个中继,我只能使用交换机结构。

中继类型似乎并不重要。目前,它们配置了模式 0 中继(balance-rr),但使用 LACP/802.1qa 的行为方式相同。

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

上面是 SW2 上的 VLAN 配置。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,但将其放在图表中会使格式更复杂。无论如何,接口节中的唯一内容是指令name;它被列为untaggedSW1 的 vlan 70 节中的一个端口。

我错过了什么?

答案1

在聊天中进行了长时间的辩论之后迈克保斯卡, 和克里斯,问题最终变成了双重的:

  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

服务器和交换机都在通信。此时,从交换机上仅启用一个接口开始,流量开始正常工作。启用第二个、第三个,最后是第四个接口,流量都保持正常工作。

最终,LACP 模式使一切正常运转。线索是,当 Trunk 中只有一个启用的交换机端口时,循环模式可以工作。服务器在重新启动后仍能以正确的模式启动。但是,不会service network restart导致文件中MODE="4"的部分生效。如果该模式发生变化,它将保持启动时设置的状态(或者更可能是模块的模块加载时间)。ifcfg-bond0/etc/sysconfig/network-scripts/bonding

答案2

您的配置中有:

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

相关内容