网络流量似乎没有离开中继


8

我正在升级一些新的虚拟化服务器,其中一部分是将一些更高带宽的管道插入其中。最终目标是将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虚拟机,则它也不起作用。我无法ping通同一子网中的client2的事实表明,某些地方的网络层存在一些问题。

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

行李箱的类型似乎无关紧要。现在,虽然使用LACP / 802.1qa的行为方式相同,但它们已配置为0模式中继线(balance-rr)。

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,但将其放在图表中会使格式化变得更加棘手。无论如何,Interface节中的唯一内容就是name指令。它untagged在SW1的vlan 70节中被列为端口。

我想念什么?


您可以发布Procurve交换机的VLAN节吗?以及虚拟机管理程序(又名VM)1,客户端1和2正在使用哪些端口?
jftuga 2011年

@jftuga节已输入。
sysadmin1138

对于交换机sw1,2,3,是否在VLAN 70中标记了所有上行链路中继端口(至其他交换机)?另外,tracert显示了什么?
jftuga,2011年

@jftuga是的,所有交换机间链接都经过中继和标记。SW3上没有VLAN 70。Traceroute几乎没有兴趣,在到达VM主机的那一跳处,跟踪消失了。另外,在交换机内部,我无法在中继时对VM主机IP地址执行ping操作。我将看看是否可以找到某些方法来嗅探这组中继端口。
sysadmin1138

您说这是VM,就像在Virtual Machine中一样?您是否正在ESX(i)上运行它?
pauska,2011年

Answers:


7

在涉及MikeyBPauskaChrisS的聊天中长期辩论之后,问题最终有两个方面:

  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中只有一个启用的交换机端口时,轮询模式有效。服务器在重新启动后仍然存在,并以正确的模式启动。但是,a service network restart不会使文件的MODE="4"一部分生效。如果该模式发生更改,它将保留启动时设置的设置(或更可能是模块的模块加载时间)。ifcfg-bond0/etc/sysconfig/network-scripts/bonding


很高兴为您提供帮助:)
MikeyB 2011年

很高兴看到您已解决此问题。
jftuga 2011年

一个非常专业的问答。一定要帮助别人。
artifex 2011年

0

您在配置中:

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

好吧,原始帖子中有一个错误,但不是您所建议的。根据untrunked配置应该有一个“无标记Trk16”在VLAN 70
pauska

我也尝试过该变体。两种变体的执行方式相同,不起作用。只要我不尝试在Linux服务器上聚合接口,使用untagged 35-36,38,40tagged 35-36,38,40...都可以工作。untagged Trk16tagged Trk16...这两个不工作。
sysadmin1138

正在运行Xen?Centos 6仍然会破坏接口定义吗?我回想起一个问题,即在错误的接口(PHY而不是网桥或相反的接口)上创建了VLAN接口,并且发生了奇怪的事情。
MikeyB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.