Skip to content

NIC Teaming Configuration and Redundancy Design

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.

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

VariableExampleDescription
<<TEAM_NAME>>Team01Team name
<<ADAPTER1>>Ethernet1Physical NIC 1
<<ADAPTER2>>Ethernet2Physical NIC 2
<<TEAM_NIC>>TeamedNICVirtual team interface name
<<STATIC_IP>>192.168.10.100Static IP address
<<PREFIX_LENGTH>>24Subnet prefix length
<<GATEWAY>>192.168.10.1Default gateway
<<DNS_SERVER>>192.168.10.10DNS server address

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

Terminal window
# 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)

Section titled “Step 2: Create the Team (LBFO Configuration)”

Load Balancing Algorithm Comparison (Common Across LBFO Modes)

Section titled “Load Balancing Algorithm Comparison (Common Across LBFO Modes)”
AlgorithmSupported ModesDescriptionTypical Use Case
AddressHashSwitch Independent / Static / LACPDistributes traffic based on source/destination IP and port hashGeneral server communication
HyperVPortSwitch Independent / LACPDistributes per VM or virtual NIC, balancing receive trafficHyper-V environments
DynamicSwitch Independent / LACPSends via hash, adjusts receive dynamically based on adapter loadDefault and recommended
TransportPortsSwitch IndependentDistributes by TCP/UDP portHigh-traffic applications
IPAddressesSwitch IndependentHashes based on IP pairsStatic IP environments
MACAddressesStatic / LACPSimple MAC-based distributionLegacy or fixed setups

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

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

Verify configuration:

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

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

Terminal window
# 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:

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

Review the operational state of the team members.

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

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


Validate that redundancy functions properly.

  1. Disconnect <<ADAPTER1>> or disable the NIC:
Terminal window
Disable-NetAdapter -Name "<<ADAPTER1>>" -Confirm:$false
  1. Check the status and re-enable the adapter:
Terminal window
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.


Events related to LBFO NIC Teaming are logged here:

Terminal window
# 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:

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

Step 7: Modify or Remove Team Configuration

Section titled “Step 7: Modify or Remove Team Configuration”

Use the following commands to change or remove the team.

Terminal window
# 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.


Configuration TypeFeaturesRecommended Use
Switch Independent + DynamicNo switch setup, bidirectional load balancingSmall to medium physical servers
LACPRequires LAG setup on the switch, better throughputNetworks supporting LACP
Active/StandbyOne active, one standby for clear redundancyEnvironments prioritizing stability

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


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.