sys*_*138 8 networking linux bonding centos6 hp-procurve
我正在搭建一些新的虚拟化服务器,其中一部分是让一些更高带宽的管道进入它们。最终目标是将 4 个 GigE 端口绑定到一个承载 802.1q 标记流量的中继。我可以走那么远,但是我遇到了一个奇怪的问题。但首先,一张图表。
---------- ---------- 1GbE trunks
| | 10GbE | | ------------- --------
| SW1 |-------| SW2 | ------------- | VM1 |
| | | | ------------- --------
---------- ----------
| | 1GbE -----------
| 1GbE |--------| client2 |
| -----------
----------
| | 1GbE -----------
| SW3 |------| client1 |
| | -----------
----------
Run Code Online (Sandbox Code Playgroud)
所有交换机都是 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 标记,我可以去任何地方。构建一个主干,我仅限于交换结构。
树干的类型似乎并不重要。现在,它们配置为模式 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
Run Code Online (Sandbox Code Playgroud)
那是 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
Run Code Online (Sandbox Code Playgroud)
802.1qa/LACP 版本交换了中继定义,trunk 35-36,38,40 Trk16 lacp但正如我所说,并没有改变问题的表现。
Client2 实际上连接到 SW1,但将它放在图表中会使格式化更加棘手。在任何情况下,Interface 节中唯一的东西就是一个name指令;它被列为untaggedSW1 的 vlan 70 节中的一个端口。
我错过了什么?
在涉及MikeyB、Pauska和ChrisS 的聊天中进行了长时间的辩论之后,问题最终有两个方面:
bonding作为 的一部分service network restart,因此它没有跟踪我在 LACP 模式 (4) 和循环 (0) 之间的更改。一旦我通过以下命令将绑定接口强制为 LACP/802.1qa 模式:
ifconfig bond0 down
echo "4" > /sys/class/net/bond0/bonding/mode
ifconfig bond0 up
Run Code Online (Sandbox Code Playgroud)
服务器和交换机都在说话。此时,从交换机上仅启用一个接口开始,流量开始正常工作。启用第二个、第三个和最后的第四个接口都可以保持流量正常工作。
最终,LACP 模式使一切正常。线索是当中继中只有一个启用的交换机端口时,循环模式有效。服务器在重新启动后仍然存在并以正确的模式运行。但是,aservice network restart不会使文件中的MODE="4"部分生效。如果该模式发生变化,它将保持启动时的设置(或更可能是模块的模块加载时间)。ifcfg-bond0/etc/sysconfig/network-scripts/bonding
| 归档时间: |
|
| 查看次数: |
680 次 |
| 最近记录: |