小编jjo*_*nic的帖子

如何在内核级别诊断 Linux LACP 问题?

Linux 绑定驱动程序是否有一个底层的管理或诊断接口来确定内部发生了什么?

多年来,我一直在 Linux 机器和 Cisco 交换机之间使用链路聚合。在设置 Linux 端根本不响应 Cisco LACP 数据包的新机器时,我会定期遇到死胡同。我对每台服务器都严格遵循一套严格的说明,但结果似乎各不相同。

无论绑定包含一个从属设备还是八个从属设备,tcpdump 都会显示来自所有绑定接口上的交换机的 LACP 数据包,并且没有数据包被传回。事实上,没有数据包是传输周期。 rx_packets为接口显示可观的流量,但tx_packets为零。日志中没有关于 MII 或绑定的有趣内容。甚至没有任何错误。

目前,我正在处理一个只有两个网卡的盒子。目前,我的债券中只有 eth1。显然,这是一个退化的配置。这种情况不会随着 eth0 和 eth1 在债券中而改变;当网络堆栈完全关闭时,它只会使机器更难工作。如有必要,我可以为两个 nic 重新配置它并通过管理界面 (DRAC),但我无法通过这种方式从框中复制粘贴。

一些预习:

  • 我测试了网卡、端口和电缆。当接口未绑定时,一切都按预期工作。
  • 我已经重新启动并确认模块加载正确。
  • 我已经尝试过使用和不使用 vlan 中继;这应该无关紧要,因为链路聚合发生在堆栈中该点下方。
  • 该交换机具有通向其他 Linux 机器的工作中继通道组。即使 Linux 机器的发行版、内核和硬件不同,配置也或多或少相同。

这是今天下载的 debian 8.6。

Linux box 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2
    (2016-10-19) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

一个简写的配置:

iface eth1 inet manual

auto bond0
iface bond0 inet manual
        slaves eth1
        address 10.10.10.10
        netmask 255.255.255.0
        bond_mode 4
        bond_miimon 100
        bond_downdelay 200
        bond_updelay 200 …
Run Code Online (Sandbox Code Playgroud)

linux bonding linux-networking linux-kernel lacp

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

bonding ×1

lacp ×1

linux ×1

linux-kernel ×1

linux-networking ×1