以下文章提供有关 Windows、VMware 和 Linux 中的 NIC 组合的信息。
网络适配器组合是一个术语,用于描述组合多个网络连接以提高吞吐量或提供冗余的各种方法。网络接口卡 (NIC) 组合和板载 LAN (LOM) 组合。可以为组织提供一种经济高效的方法来快速轻松地提高网络可靠性和吞吐量。
网络接口卡 (NIC) 组合是在服务器中提供高可用性和容错能力的一种方法。
下面是具有两个 NIC 的 Web 服务器示例,每个 NIC 有一个上行链路和一个下行链路连接。
两个网卡中的一个出现故障或断开连接,但客户端的计算机连接保持连接。
图 1:两个 NIC 组合网卡出现故障,但互联网连接保持正常运行。
四种主要网络分组类型如下所示:
智能负载平衡 (SLB) 和故障切换:这种类型的组合在所有主适配器之间平衡网络流量。如果主适配器发生故障,其余的主适配器将继续平衡负载。如果所有主适配器发生故障,流量将继续使用待机适配器流动,而不会中断。主适配器重新联机后,流量将恢复流经它。
具有自动回退禁用功能的 SLB:这种类型的组合功能如上所述,但流量在重新联机后不会自动恢复到主适配器。
IEEE 802.3ad 动态链路聚合:也称为链路聚合控制协议 (LACP) 或 IEEE 802.1ax。这种类型的组通过将多个物理链路捆绑到一个逻辑链路中来提供更高的吞吐量,该逻辑链路的有效带宽是物理链路带宽的总和。这种类型的组合要求连接另一端的电源支持 LACP。必须正确配置交换机,才能使组正常工作。
通用中继:也称为静态链路聚合,这种类型的组合提供与 IEEE 802.3ad/802.1ax 相同类型的捆绑功能,但不使用 LACP。交换机不必支持 LACP,但必须得到正确配置,此类型的分组才能正常工作。
要创建 NIC 分组:
在服务器管理器中,单击“本地服务器”。
在属性窗格中,找到 NIC 组合,然后单击右侧的链接已禁用。此时将打开“NIC 组合”对话框。
“NIC 组合”对话框
图 2:“Windows NIC 组合”对话框
在“适配器和接口”中,选择要添加到 NIC 分组的网络适配器。
单击 任务,然后单击 添加到新团队。
图 3:Windows 适配器和接口添加到新团队中。
此时将打开“新建团队”对话框,并显示网络适配器和团队成员。在“分组名称”中,键入新 NIC 分组的名称。
图 4:Windows — 通过选择适配器并创建组名来创建 NIC。
如果需要,请展开 其他属性,为组合模式、负载平衡模式和备用适配器选择值。通常,性能最高的负载平衡模式是动态。
图 5:Windows NIC 组添加属性
如果您想要配置 VLAN 编号或将 VLAN 编号分配给 NIC 组,请单击主组界面右侧的链接。此时将打开“新建团队界面”对话框。
图 6:Windows 默认 VLAN 成员身份
要配置 VLAN 成员身份,请单击特定 VLAN。在对话框的第一部分键入 VLAN 信息。
图 7:特定于 Windows 的 VLAN 成员身份
单击 OK。
如果您必须在 Hyper-V 主机上设置 NIC 组合,请参阅 Microsoft 文章 在主计算机上创建新的 NIC 组合
PowerShell 说明
使用 PowerShell 创建网络分组
打开已升级 PowerShell 提示符。在 Windows® 10 任务栏搜索中,键入 PowerShell。按 W 键和 S 键打开 Search。
现在,您应该会在顶部看到 Windows PowerShell 的结果。右键单击Windows PowerShell,然后选择 以管理员身份运行。
图 8:Windows 开始菜单 PowerShell 以管理员身份运行
如果您看到 “用户帐户控制 ”提示,请单击 “是”。
输入命令 new-NetLBFOTeam [TEAMNAME] "[NIC1]", "[NIC2]"
,然后按 Enter 键。
图 8:PowerShell 命令
示例
new-NetLBFOTeam NIC-Team "NIC1" , "NIC2"
通过转到控制面板>网络和 Internet > 网络连接打开网络连接。
VMware vSphere
NIC 团队可以在物理网络和虚拟网络之间共享流量负载。在其部分或所有成员之间,并在发生硬件故障或网络中断时提供被动故障切换。
有关如何在 VMware 上配置 NIC 分组的详细步骤,请参阅 VMware 知识库文章,选择右上角的 ESXi 版本。
在 vSphere 标准交换机或标准端口组上配置 NIC 组合、故障切换和负载平衡。
参考:ESXi 和 ESX 中的 NIC 分组 (1004088)
Linux 允许管理员使用绑定内核模块和一个称为通道绑定接口的特殊网络接口将多个网络接口绑定到单个通道中。通道绑定使两个或更多网络接口可用作一个,同时增加带宽并提供冗余。警告:不支持在没有网络交换机的情况下使用直接电缆连接进行绑定。如果没有网络交换机,此处描述的故障切换机制无法按预期工作。
active-backup、balance-TLB 和 balance-alb 模式不需要交换机的任何特定配置。其它绑定模式需要配置交换机以聚合链路。例如,Cisco 交换机需要用于模式 0、2 和 3 的 EtherChannel,但对于模式 4,则需要 LACP 和 EtherChannel。请参阅交换机随附的文档和 kernel-doc 软件包中的 bonding.txt 文件。
检查绑定内核模块是否已安装。
在 Red Hat Enterprise Linux 6 中,绑定模块默认不加载。您可以通过以 root 用户身份发出以下命令来加载模块:
~]# modprobe --first-time bonding
无可视输出表明该模块未运行,现在已加载。此激活不会在系统重新启动后持续存在。有关持久模块加载的说明,请参见第 31.7 节 “持久模块加载”。使用 BONDING_OPTS 指令给定正确的配置文件,绑定模块将根据需要加载,因此不需要单独加载。要显示有关模块的信息,请发出以下命令:
~]$ modinfo bonding
使用内核模块,了解有关装入和卸载模块的信息。创建通道绑定接口
要创建通道绑定接口,请在 /etc/sysconfig/network-scripts/
名为 ifcfg-bondN 的目录,将 N 替换为接口的数字,例如 0。
该文件的内容可以与绑定的任何类型的接口(如以太网接口)完全相同。唯一的区别是 DEVICE 指令为 bondN,将 N 替换为接口的编号。可以添加 NM_CONTROLLED 指令以防止 NetworkManager 配置此设备。
ifcfg-bond0 接口配置文件示例
下面是通道捆绑接口配置文件的示例:
DEVICE=bond0 IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no NM_CONTROLLED=no BONDING_OPTS="bonding parameters separated by spaces"
绑定的 MAC 地址取自要添加到网络的第一个接口。它还可以使用 HWADDR 指令指定(如果需要)。如果您希望 NetworkManager 控制此接口,请删除 NM_CONTROLLED=no 指令,或将其设置为 yes,然后添加 TYPE=Bond 和 BONDING_MASTER=yes。
创建通道绑定接口后,必须通过将 MASTER 和 SLAVE 指令添加到其配置文件中来配置要绑定在一起的网络接口。每个通道绑定接口的配置文件几乎完全相同。
ifcfg-ethX 绑定接口配置文件示例
如果两个以太网接口是绑定的通道,则 eth0 和 eth1 可能如下所示:
DEVICE=ethX BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no NM_CONTROLLED=no
配置好接口后,重新启动网络服务以使绑定正常运行。以 root 用户身份发出以下命令:
~]# service network restart
要查看绑定的状态,请通过以下列格式发出命令来查看 /proc/ 文件:
cat /proc/net/bonding/bondN
例如:
~]$ cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: load balancing (round-robin) MII Status: down MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0
重要信息:在 Red Hat Enterprise Linux 6 中,绑定内核模块的接口特定参数必须在 ifcfg-bondN 接口文件中的 BONDING_OPTS="bonding parameters" 指令中指定为空格分隔的列表。请勿在 中指定特定于绑定的选项 /etc/modprobe.d/bonding.conf
,或在已弃用的 /etc/modprobe.conf 文件中。max_bonds 参数并非特定于接口,因此,如果需要,应在 /etc/modprobe.d/bonding.conf
如下:
options bonding max_bonds=1
但是,在将 ifcfg-bondN 文件与 BONDING_OPTS 指令配合使用时,不应设置 max_bonds 参数,因为此指令会导致网络脚本根据需要创建绑定接口。
在下次加载模块之前,对 /etc/modprobe.d/bonding.conf 所做的任何更改都不会生效。必须先卸载正在运行的模块。
创建多个绑定
在 Red Hat Enterprise Linux 6 中,为每个绑定创建一个包含 BONDING_OPTS 指令的通道绑定接口。使用此配置方法可使多个绑定设备具有不同的配置。要创建多个通道绑定接口,请按以下步骤操作:
使用 BONDING_OPTS 指令创建多个 ifcfg-bondN 文件;此指令会导致网络脚本根据需要创建绑定接口。
创建或编辑要绑定的现有接口配置文件,并包括 SLAVE 指令。
通过 MASTER 指令将要绑定的接口(从接口)分配给通道绑定接口。
多个 ifcfg-bondN 接口配置文件
示例 以下是通道绑定接口配置文件的示例:
DEVICE=bond N IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no NM_CONTROLLED=no vBONDING_OPTS="bonding parameters separated by spaces"
在此示例中,将 N 替换为绑定接口的编号。例如,要创建两个绑定,请创建两个配置文件 ifcfg-bond0 和 ifcfg-bond1。
根据示例 ifcfg-ethX 绑定接口配置文件创建要绑定的接口,并根据需要使用 MASTER=bondN 指令将其分配给绑定接口。例如,从上面的示例继续,如果需要每个绑定两个接口,则对于两个绑定,创建四个接口配置文件,然后使用 MASTER=bond0 分配前两个,使用 MASTER=bond1 分配后两个。
参考:Linux 通道绑定接口