- Overview
- Variable Conventions
- Step 1: Check NIC Configuration
- Step 2: Create the Team (LBFO Configuration)
- Step 3: Configure Team Interface
- Step 4: Check Team Status
- Step 5: Perform Failover Test
- Step 6: Event Log and Monitoring
- Step 7: Modify or Remove Team Configuration
- Step 8: Redundancy Design Considerations
- Conclusion
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.
- Disconnect
<<ADAPTER1>>or disable the NIC:
Disable-NetAdapter -Name "<<ADAPTER1>>" -Confirm:$false
- 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.
