NIC Teaming Configuration and Redundancy Design

Overview

This article explains how to configure NIC Teaming and design redundancy in a Windows Server environment. It covers how to create an LBFO (Load Balancing and Failover) team using Switch Independent mode + Dynamic Load Balancing, perform failover testing, and monitor related logs.

Variable Conventions

The following variables represent environment-specific values. Replace them as needed for your configuration.

Variable Example Description
<<TEAM_NAME>> Team01 Team name
<<ADAPTER1>> Ethernet1 Physical NIC 1
<<ADAPTER2>> Ethernet2 Physical NIC 2
<<TEAM_NIC>> TeamedNIC Virtual team interface name
<<STATIC_IP>> 192.168.10.100 Static IP address
<<PREFIX_LENGTH>> 24 Subnet prefix length
<<GATEWAY>> 192.168.10.1 Default gateway
<<DNS_SERVER>> 192.168.10.10 DNS server address

Step 1: Check NIC Configuration

Verify the status of the physical NICs that will be used in the team. Ensure all adapters have consistent speed, vendor, and driver versions.

# List available NICs
Get-NetAdapter | Select-Object Name, Status, LinkSpeed, InterfaceDescription, MacAddress

Adapters with Status = Up are eligible for teaming.


Step 2: Create the Team (LBFO Configuration)

Load Balancing Algorithm Comparison (Common Across LBFO Modes)

Algorithm Supported Modes Description Typical Use Case
AddressHash Switch Independent / Static / LACP Distributes traffic based on source/destination IP and port hash General server communication
HyperVPort Switch Independent / LACP Distributes per VM or virtual NIC, balancing receive traffic Hyper-V environments
Dynamic Switch Independent / LACP Sends via hash, adjusts receive dynamically based on adapter load Default and recommended
TransportPorts Switch Independent Distributes by TCP/UDP port High-traffic applications
IPAddresses Switch Independent Hashes based on IP pairs Static IP environments
MACAddresses Static / LACP Simple MAC-based distribution Legacy or fixed setups

Use Switch Independent mode (no switch configuration required) + Dynamic load balancing for optimal performance.

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

Verify configuration:

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

Step 3: Configure Team Interface

Assign an IPv4 address to the created team NIC. For IPv6, add the parameter -AddressFamily IPv6.

# Set IP configuration
New-NetIPAddress -InterfaceAlias "<<TEAM_NIC>>" -IPAddress "<<STATIC_IP>>" -PrefixLength <<PREFIX_LENGTH>> -DefaultGateway "<<GATEWAY>>"

# Set DNS server
Set-DnsClientServerAddress -InterfaceAlias "<<TEAM_NIC>>" -ServerAddresses "<<DNS_SERVER>>"

Verify settings:

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

Step 4: Check Team Status

Review the operational state of the team members.

# Check team member status
Get-NetLbfoTeamMember -Team "<<TEAM_NAME>>"

All members should show Active. If not, check cable connections and switch port configurations.


Step 5: Perform Failover Test

Validate that redundancy functions properly.

  1. Disconnect <<ADAPTER1>> or disable the NIC:
Disable-NetAdapter -Name "<<ADAPTER1>>" -Confirm:$false
  1. Check the status and re-enable the adapter:
Get-NetLbfoTeamMember -Team "<<TEAM_NAME>>"
Enable-NetAdapter -Name "<<ADAPTER1>>"

If <<ADAPTER1>> shows Inactive while <<ADAPTER2>> remains Active and connectivity is preserved, failover is working correctly.
Repeat in reverse to confirm bidirectional failover.


Step 6: Event Log and Monitoring

Events related to LBFO NIC Teaming are logged here:

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

System event logs can also be monitored:

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

Step 7: Modify or Remove Team Configuration

Use the following commands to change or remove the team.

# Change algorithm (example: Hyper-V Port)
Set-NetLbfoTeam -Name "<<TEAM_NAME>>" -LoadBalancingAlgorithm HyperVPort

# Remove the team
Remove-NetLbfoTeam -Name "<<TEAM_NAME>>"

After removal, reassign IP settings to each physical NIC as needed.


Step 8: Redundancy Design Considerations

Configuration Type Features Recommended Use
Switch Independent + Dynamic No switch setup, bidirectional load balancing Small to medium physical servers
LACP Requires LAG setup on the switch, better throughput Networks supporting LACP
Active/Standby One active, one standby for clear redundancy Environments prioritizing stability

In virtualized environments, LBFO is deprecated; use SET (Switch Embedded Teaming) instead.


Conclusion

NIC Teaming via LBFO offers simple yet robust redundancy and load balancing.
The Switch Independent + Dynamic configuration is especially easy to manage and suitable for small to medium server deployments.
Regular event monitoring and periodic failover testing ensure stable operation.
For Hyper-V or SDN environments, SET is the recommended approach.