绑定接口导致数据包丢失

绑定接口导致数据包丢失

我们运行的是 CentOS 7.1,系统配置了双网卡,设置为单个绑定接口。当此绑定配置为使用绑定模式 1、5 或 6 中的任何一个时,我们会看到大量数据包被丢弃。使用 ifconfig 命令最容易观察到这种情况:

bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet6 fe80::5054:ff:fe3b:c2a6  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:3b:c2:a6  txqueuelen 0  (Ethernet)
        RX packets 29449  bytes 1929707 (1.8 MiB)
        RX errors 0  dropped 14924  overruns 0  frame 0
        TX packets 516  bytes 40394 (39.4 KiB)

当然,我们预计会出现一些丢包现象,但我们看到丢包率高达 20% 甚至更高(上例中为 50%)。这远远超出了正常网络流量应该出现的情况。Bond 模式 2、3 和 4 不会出现这种丢包现象,但我们不想使用其中任何一种。我们首选 Bond 模式 6,但 Bond 模式 5 也可以接受。

有人在 CentOS 7 中使用绑定接口时看到过这种程度的丢包吗?我们在 CentOS 6.5 中没有看到这种情况。我们的绑定是使用以下 ifcfg-bond0 文件设置的:

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
IPV6INIT=no
USERCTL=no
TYPE=Bond
BONDING_MASTER=yes
BONDING_OPTS="mode=6 miimon=100 updelay=12000 downdelay=0"

这是一个相当标准的债券配置。

答案1

我们也看到了这一点。在网上搜索了几个地方,似乎还有其他关于此问题的报告。我敢打赌,这是某种表面错误。您是否注意到应用程序级别发生了任何不良情况?可能需要运行多个 netperf 测试来查看。

tl;dr -> 这是外观上的,不用担心。

相关内容