NIC Teaming Configuration and Redundancy Design
Overview
Section titled “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
Section titled “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
Section titled “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 NICsGet-NetAdapter | Select-Object Name, Status, LinkSpeed, InterfaceDescription, MacAddressAdapters 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)”| 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 TeamNew-NetLbfoTeam ` -Name "<<TEAM_NAME>>" ` -TeamMembers "<<ADAPTER1>>","<<ADAPTER2>>" ` -TeamingMode SwitchIndependent ` -LoadBalancingAlgorithm Dynamic ` -TeamNicName "<<TEAM_NIC>>"Verify configuration:
Get-NetLbfoTeam | Format-Table Name, TeamingMode, LoadBalancingAlgorithm, StatusStep 3: Configure Team Interface
Section titled “Step 3: Configure Team Interface”Assign an IPv4 address to the created team NIC. For IPv6, add the parameter -AddressFamily IPv6.
# Set IP configurationNew-NetIPAddress -InterfaceAlias "<<TEAM_NIC>>" -IPAddress "<<STATIC_IP>>" -PrefixLength <<PREFIX_LENGTH>> -DefaultGateway "<<GATEWAY>>"
# Set DNS serverSet-DnsClientServerAddress -InterfaceAlias "<<TEAM_NIC>>" -ServerAddresses "<<DNS_SERVER>>"Verify settings:
Get-NetIPAddress -InterfaceAlias "<<TEAM_NIC>>"Get-DnsClientServerAddress -InterfaceAlias "<<TEAM_NIC>>"Step 4: Check Team Status
Section titled “Step 4: Check Team Status”Review the operational state of the team members.
# Check team member statusGet-NetLbfoTeamMember -Team "<<TEAM_NAME>>"All members should show Active. If not, check cable connections and switch port configurations.
Step 5: Perform Failover Test
Section titled “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
Section titled “Step 6: Event Log and Monitoring”Events related to LBFO NIC Teaming are logged here:
# LBFO provider logsGet-WinEvent -LogName "Microsoft-Windows-MsLbfoProvider/Operational" -MaxEvents 20 | Select-Object TimeCreated, Id, LevelDisplayName, MessageSystem event logs can also be monitored:
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-MsLbfoSysEvtProvider'} -MaxEvents 20 | Select-Object TimeCreated, Id, LevelDisplayName, MessageStep 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.
# Change algorithm (example: Hyper-V Port)Set-NetLbfoTeam -Name "<<TEAM_NAME>>" -LoadBalancingAlgorithm HyperVPort
# Remove the teamRemove-NetLbfoTeam -Name "<<TEAM_NAME>>"After removal, reassign IP settings to each physical NIC as needed.
Step 8: Redundancy Design Considerations
Section titled “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
Section titled “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.