以下文章提供了有关 Windows、VMware 和 Linux 中的 NIC 分组的信息。
网络适配器分组是一个术语,用于描述组合多个网络连接以提高吞吐量或提供冗余的各种方法。网络接口卡 (NIC) 分组和板载 LAN (LOM) 分组。可为组织提供经济高效的方法,以快速轻松地增强网络可靠性和吞吐量。
网络接口卡 (NIC) 分组是在服务器中提供高可用性和容错的一种方法。
下面的示例表示这样一个 Web 服务器:带有两个 NIC,每个都有一个上行链路和一个下行链路连接。
两个网卡中的一个出现故障或已断开连接,但客户端的计算机连接保持连接。
图 1:2 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 分组添加属性
如果您想要为 NIC 分组配置或分配 VLAN 号,请单击主要分组界面右侧的链接。新分组界面对话框将打开。
图 6:Windows 默认 VLAN 成员
要配置 VLAN 成员身份,请单击特定 VLAN。在对话框的第一部分中键入 VLAN 信息。
图 7:特定于 Windows 的 VLAN 成员
单击 OK。
如果您必须在 Hyper-V 主机上设置 NIC 分组,请参阅 Microsoft 文章在主机计算机上创建新的 NIC 分组
PowerShell 说明
使用 PowerShell 创建网络分组
打开已升级 PowerShell 提示符。在 Windows® 10 任务栏搜索中,键入 PowerShell。按 W 和 S 键打开搜索。
您现在应该可以在顶部看到结果 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 使管理员能够使用绑定内核模块和一个称为通道绑定接口的特殊网络接口,将多个网络接口一起绑定到单个通道中。通道绑定使两个或更多网络接口可用作一个,同时增加带宽并提供冗余。警告:不支持在没有网络交换机的情况下使用直接线缆连接进行绑定。如果没有网络交换机,此处介绍的故障转移机制不会按预期工作。
活动-备份、平衡-tlb 和平衡-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/
请在 /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 通道绑定接口