Linux 绑定模式 4 (802.3ad) - 2 个交换机 - 4 个网卡

Linux 绑定模式 4 (802.3ad) - 2 个交换机 - 4 个网卡

我知道您可以在 1 台服务器上使用绑定模式 4,该服务器有 2 个网卡,使用 2 个交换机。

绑定 0 由以下部分组成:网卡 1 端口 1 -> 交换机 A 网卡 2 端口 1 -> 交换机 B

在这种情况下,我可以丢失一个交换机、一个网卡或一根电缆,但我的网络仍然可以正常工作,如果一切正常,我将在高可用性之上实现链路聚合。

我的问题是,您是否可以做同样的事情,但使用 4 个 NIC 来获得更快的速度并且仍然安全。

绑定 0 由以下部分组成:网卡 1 端口 1 -> 交换机 A 网卡 1 端口 2 -> 交换机 B 网卡 2 端口 1 -> 交换机 A 网卡 2 端口 2 -> 交换机 B

交换机可能是CISCO的。

干杯

答案1

您实际上可以将 LACP 绑定配置到两个独立的交换机。

假设您有以下内容:

+------+     +-----+
| eth0 =-----= sw1 |
| eth1 =-----=     |
|      |     +-----+
|      |     +-----+
| eth2 =-----= sw2 |
| eth3 =-----=     |
+------+     +-----+

所有ethX接口均处于 状态bond0,并且每个交换机都有单独的活动 LACP 端口通道。

该绑定将正常工作,并将识别两个不同的聚合器 ID,但一次只能激活一个聚合器,因此任何时候都只能使用一个开关

因此绑定启动并具有两个聚合器,一个到 sw1,一个到 sw2。第一个聚合器默认处于活动状态,因此所有流量都将在 eth0/eth1 和 sw1 之间。eth2/eth3 和 sw2 保持空闲待机状态。

假设 sw1 的端口 1 发生故障,那么 sw1 的聚合器只有一个端口处于活动状态。sw1 将继续作为活动聚合器。但是,您可以使用ad_select=bandwidth(哪个聚合器具有最多带宽)或ad_select=count(哪个聚合器具有最多从属设备)bonding 模块参数使其故障转移到 sw2。

假设 sw1 完全失败,那么该聚合器将会关闭,而 sw2 将接管。

答案2

我刚刚在 Ubuntu 服务器 14.04 LTS 上配置了完全相同的设置。
对于通过接口文件配置网络的任何 Linux 发行版,过程应该相同。(例如 Debian 及其大多数衍生产品,如 Ubuntu 和 Mint。)

在每个交换机上:
在 802.3ad 以太通道中配置两个端口。无需定义连接两个交换机的通道。应在每个交换机上分别定义通道。

在服务器上:
首先通过包管理器安装包“ifenslave-2.6”。
然后编辑 /etc/modules 并在其中添加一行带有单词“bonding”的额外行。
例如:

# /etc/modules: kernel modules to load at boot time
loop
lp
rtc
bonding

运行一次“modprobeboning”来立即加载bonding模块。
然后编辑/etc/network/interfaces,将真实NIC定义为手动接口,作为新接口“bond0”的从属。
例如:

# The loopback interface
auto lo
iface lo inet loopback

# The individual interfaces
auto eth0
iface eth0 inet manual
bond-master bond0

auto eth1
iface eth1 inet manual
bond-master bond0

auto eth2
iface eth2 inet manual
bond-master bond0

auto eth3
iface eth3 inet manual
bond-master bond0

# The bond interface
auto bond0
iface bond0 inet static
address 192.168.1.200
gateway 192.168.1.1
netmask 255.255.255.0
bond-mode 4
bond-miimon 100
bond-slaves eth0 eth1 eth2 eth3
bond-ad_select bandwidth

最后一条语句确保当 1 个接口发生故障时,2 对中具有完全连接性的那一个将接收所有流量。
因此,如果 eth0 和 eth1 连接到交换机 A,而 eth2-eth3 连接到交换机 B,则如果 eth0 或 eth1 发生故障,连接将使用交换机 B。

最后但并非最不重要的:

ifup eth0 & ifup eth1 & ifup eth2 & ifup eth3 & ifup bond0

就是这样。它可以正常工作,并在重启后自动恢复在线状态。
您可以通过使用 ifdown 关闭单个 ethX 接口来观察故障转移行为,并通过“ethtool bond0”观察由此产生的聚合带宽。
(无需前往服务器机房并拔出电缆。)

答案3

请记住,使用 802.3ad 时,绑定中的所有链路都需要连接到同一交换机,除非该交换机支持通过堆栈/虚拟交换机类型配置与其他交换机共享 802.3ad 信息。

也就是说,您仍然可以通过与每个交换机建立绑定来实现具有 4 个网卡和 2 个交换机的配置,例如:

NIC1/port1 -> bond0 -> switch1
NIC1/port2 -> bond1 -> switch2
NIC2/port1 -> bond0 -> switch1
NIC2/port2 -> bond1 -> switch2

这样,您就可以获得针对单个 NIC 或交换机故障的冗余,并在交换机工作时增加带宽,但您必须自己管理 IP 故障转移。

或者,您可以切换到绑定模式 6,放弃 802.3ad 的要求并运行您在问题中建议的配置。

相关内容