![绑定接口导致数据包丢失](https://linux22.com/image/1467578/%E7%BB%91%E5%AE%9A%E6%8E%A5%E5%8F%A3%E5%AF%BC%E8%87%B4%E6%95%B0%E6%8D%AE%E5%8C%85%E4%B8%A2%E5%A4%B1.png)
我们运行的是 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 -> 这是外观上的,不用担心。