NIC 团队配置与冗余设计

概述

本文讲解在 Windows Server 环境中配置 NIC 团队(NIC Teaming)和设计网络冗余的方法。
通过使用 LBFO(Load Balancing and Failover)实现 Switch Independent 模式 + 动态负载均衡(Dynamic Load Balancing),并介绍故障转移(Failover)测试与事件日志监控。

变量说明

以下变量需根据实际环境替换。

变量名 示例值 说明
<<TEAM_NAME>> Team01 团队名称
<<ADAPTER1>> Ethernet1 物理网卡 1
<<ADAPTER2>> Ethernet2 物理网卡 2
<<TEAM_NIC>> TeamedNIC 虚拟团队接口名称
<<STATIC_IP>> 192.168.10.100 固定 IP 地址
<<PREFIX_LENGTH>> 24 子网前缀长度
<<GATEWAY>> 192.168.10.1 默认网关
<<DNS_SERVER>> 192.168.10.10 DNS 服务器地址

步骤 1:检查 NIC 状态

确认用于组队的物理网卡是否正常。建议保持速度、品牌与驱动版本一致。

Get-NetAdapter | Select-Object Name, Status, LinkSpeed, InterfaceDescription, MacAddress

仅状态为 Up 的网卡可用于 NIC Teaming。


步骤 2:创建团队(LBFO 模式)

负载均衡算法对比

算法名称 支持模式 特点 主要用途
AddressHash Switch Independent / Static / LACP 根据源和目标 IP、端口进行哈希分配 通用服务器通信
HyperVPort Switch Independent / LACP 按 VM 或虚拟网卡分配,均衡接收负载 适用于 Hyper-V 环境
Dynamic Switch Independent / LACP 发送端按哈希,接收端按利用率动态调整 默认推荐模式
TransportPorts Switch Independent 基于 TCP/UDP 端口分配 高流量应用
IPAddresses Switch Independent 基于 IP 对进行哈希 静态 IP 环境
MACAddresses Static / LACP 简单的 MAC 地址分配 旧设备或固定配置

推荐使用 Switch Independent + Dynamic 模式(无需配置交换机,双向负载均衡)。

New-NetLbfoTeam `
  -Name "<<TEAM_NAME>>" `
  -TeamMembers "<<ADAPTER1>>","<<ADAPTER2>>" `
  -TeamingMode SwitchIndependent `
  -LoadBalancingAlgorithm Dynamic `
  -TeamNicName "<<TEAM_NIC>>"

验证命令:

Get-NetLbfoTeam | Format-Table Name, TeamingMode, LoadBalancingAlgorithm, Status

步骤 3:配置团队接口 IP 与 DNS

为团队虚拟网卡配置 IPv4 地址。若使用 IPv6,请添加 -AddressFamily IPv6

New-NetIPAddress -InterfaceAlias "<<TEAM_NIC>>" -IPAddress "<<STATIC_IP>>" -PrefixLength <<PREFIX_LENGTH>> -DefaultGateway "<<GATEWAY>>"
Set-DnsClientServerAddress -InterfaceAlias "<<TEAM_NIC>>" -ServerAddresses "<<DNS_SERVER>>"

检查设置:

Get-NetIPAddress -InterfaceAlias "<<TEAM_NIC>>"
Get-DnsClientServerAddress -InterfaceAlias "<<TEAM_NIC>>"

步骤 4:检查团队状态

Get-NetLbfoTeamMember -Team "<<TEAM_NAME>>"

所有成员状态应为 Active。如有异常,请检查线缆连接和交换机端口。


步骤 5:故障转移测试(Failover)

验证冗余是否生效。

  1. 拔掉 <<ADAPTER1>> 网线或禁用网卡:
Disable-NetAdapter -Name "<<ADAPTER1>>" -Confirm:$false
  1. 检查状态后重新启用:
Get-NetLbfoTeamMember -Team "<<TEAM_NAME>>"
Enable-NetAdapter -Name "<<ADAPTER1>>"

<<ADAPTER2>> 保持 Active 并通信正常,说明故障转移功能正常。


步骤 6:事件日志与监控

查看与 LBFO 相关的事件日志:

Get-WinEvent -LogName "Microsoft-Windows-MsLbfoProvider/Operational" -MaxEvents 20 |
  Select-Object TimeCreated, Id, LevelDisplayName, Message

查看系统事件:

Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-MsLbfoSysEvtProvider'} -MaxEvents 20 |
  Select-Object TimeCreated, Id, LevelDisplayName, Message

步骤 7:修改或删除团队配置

Set-NetLbfoTeam -Name "<<TEAM_NAME>>" -LoadBalancingAlgorithm HyperVPort
Remove-NetLbfoTeam -Name "<<TEAM_NAME>>"

删除后,请重新为各独立网卡配置 IP。


步骤 8:冗余设计建议

类型 特点 推荐场景
Switch Independent + Dynamic 无需交换机设置,双向负载 小中型服务器
LACP 需在交换机上配置 LAG,带宽利用率高 支持 LACP 的网络设备
Active/Standby 一侧待机,明确的冗余结构 高稳定性环境

在虚拟化环境中,LBFO 已被视为 过时(deprecated),推荐使用 SET(Switch Embedded Teaming)


总结

LBFO 模式的 NIC 团队提供了简洁但高效的冗余与负载均衡。
Switch Independent + Dynamic 是最易维护、最稳定的配置,适用于小到中型物理服务器。
请定期执行故障转移测试并监控事件日志,以确保持续稳定运行。
对于 Hyper-V 或 SDN 环境,建议迁移至 SET 方案。