到服务器的 Force10 端口通道也支持 PXE 引导

网络工程 linux IEEE-802.1ax 力10
2021-08-03 02:32:55

我有一个 802.3ad 端口通道,由 2 个 10GigE 链路组成,从 Force10 E1200 交换机到带有一个双端口 10G NIC 的 Linux 服务器。当 Linux 使用 LACP 并提供绑定接口时,此设置非常有效。但是,当 Linux NIC 中的 PXE 选项 ROM 运行时,在 Linux 运行之前,它不起作用。也就是说,当我配置了一些东西时,当交换机端口都设置为端口通道模式时,PXE 选项 ROM 无法在预期的本机 VLAN 上发送或接收任何数据包。

我想要的是当 LACP 尚未建立端口通道时,Force10 交换机端口回退到正常交换机端口的一种方式,以便 PXE 仍然可以工作。

我怎样才能做到这一点?希望只需要一些额外的交换机配置?

我知道解决这个问题的方法,比如从不同的非端口通道接口启动 PXE 等。我真的受到我拥有的硬件的限制,正在寻找一个只涉及我拥有的交换机的解决方案,以及两个 10G 网卡端口。此外,我知道其他不需要交换机端端口通道的 Linux 绑定类型(例如,balance-rr、active-backup)。我已经测试过这些,它们在 Linux 和 PXE 中都可以工作,但我真正想要的是单个 20Gb/s 链路和交换机端的端口通道。

Force10 开关的配置如下:

接口 TenGigabitEthernet 7/32
 没有IP地址
 端口通道协议LACP 
  端口通道 99 模式活动 
 不关机

和:

接口 TenGigabitEthernet 8/32
 没有IP地址
 端口通道协议LACP 
  端口通道 99 模式活动 
 不关机

和:

#show int switch Po99

代码:U - 未标记,T - 标记
        x - Dot1x 未标记,X - Dot1x 标记
        G - GVRP 标记,M - 主干

名称:Port-channel 99
...
802.1Q 标记:混合
VLAN成员:
Q VLAN
123

本机 VlanId:123。

Linux 服务器具有:

# cat /etc/sysconfig/network-scripts/ifcfg-bond0 
设备=bond0
名称=bond0
类型=债券
BONDING_MASTER=是
IPADDR=...
网关=...
前缀=...
开机=是
BOOTPROTO=无
BONDING_OPTS="模式=802.3ad miimon=100"
DNS1=ABCD
域=bar.com foo.bar.com

和:

# cat /etc/sysconfig/network-scripts/ifcfg-enp6s0f0 
类型=以太网
BOOTPROTO=无
设备=enp6s0f0
名称=enp6s0f0
开机=是
主=债券0
奴隶=是

和:

# cat /etc/sysconfig/network-scripts/ifcfg-enp6s0f1
类型=以太网
BOOTPROTO=无
设备=enp6s0f1
名称=enp6s0f1
开机=是
主=债券0
奴隶=是
2个回答

@Matthew 你走对了路。我过去曾遇到过这个确切的问题,我在 S4810 设备中使用过这个命令。

不幸的是,我怀疑并非所有 Force10 模型都支持此命令。我刚刚在 S60 和 S4810 中对其进行了测试,并且可以正常工作。您应该检查您的模型/版本 cli 文档。

实际上,根据 E 系列 CLI,不支持此命令。对于那个很抱歉。

无论如何,一种可能的解决方法是使用第三个独立接口进行 PXE 配置,然后使用端口通道进行正常操作。

另一种选择是使用支持 LACP 的 PXE 驱动程序。这样的 PXE 驱动程序 AFAIK,在这个意义上并不真正支持端口分组。它只是“说出”LACP PDU 以响应交换机中的活动模式 LACP 配置(并且仅在执行 PXE 的 NIC 端口上)这足以说服交换机将该端口移至 LAG 中的成员身份并开始交易数据。然而,诀窍是将这个 LACP 增强的 PXE 代码合并到您当前安装的 NIC 中。幸运的是,这不是那么复杂的操作。访问 www.iPXE.org 了解如何做到这一点。iPXE ROM 支持响应 LACP 协商 PDU,并且应该在主动模式 LACP 交换机配置下表现良好。这样的解决方案将多余交换机中对 LACP-Suspend-to-Individual 类型的配置的需求。任何开关。