在 Ubuntu14.04 中使用两个绑定网络接口

在 Ubuntu14.04 中使用两个绑定网络接口

我的服务器中有 6 张以太网卡。4 张 1Gbps 卡和 2 张 10Gbps 卡,因此我已将所有 4Gig 卡配置为 Bond0,静态 IP 为 144,将 10Gig 卡配置为 Bond1,IP 为 122。我面临的问题是,服务器始终将传入流量重定向到任何一个绑定接口,即 Bond0 或 Bond1。如果我重新启动服务器,它可能会使用另一个绑定接口。

这就是我正在做的事情。

scp abc.xyz[电子邮件保护]

我希望 bond0 能够在这里接收流量,但是事实并非如此。

即使我SCP对于 IP 122,它选择 bond1。 在我重启系统后,当我尝试 scp 到两个 IP 时,它这次选择 bond0。

但我期望的是静态行为,即,如果我始终 scp 到 IP 144,则流量应该由 bond0 挑选,并且如果我执行 scp 到 122,则流量应该重定向到 bond1。

答案1

您所描述的是当同一子网中拥有多个接口时 Linux 的默认工作方式。

Linux 默认没有“这个接口及其 MAC”和“那个接口及其 MAC”的概念,它只知道“我的接口和 MAC”,并且会回复任何接口上的任何 ARP 请求。

您可以使用可调参数正确地配置每个 ARP 接口:

net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.all.arp_announce = 2

要让流量按照您想要的方式流动,您需要设置策略路由,以便每个绑定都有一个单独的路由表和默认网关,因此每个绑定的源地址都有 IP 规则需要匹配,以便将流量放入所需的路由表中。这需要应用程序绑定到源地址才能工作。

然而,这是一个复杂且有问题的配置,我不推荐它。

如果您希望在每个结合接口上分离不同的流量,请将一个结合放在与另一个结合不同的广播域和不同的子网中,并正确路由流量。

相关内容