A Stockphoto - stock.adobe.com
Network interface card, or NIC, teaming in Windows Server is a straightforward but essential configuration for any data center administrator. NIC teaming offers two benefits for network configurations: bandwidth and redundancy.
A typical network connection for a server consists of a NIC connected to one port in a single switch by a twisted-pair network cable. The OS sees this configuration and uses bandwidth based on the limitations of the slowest component.
Any one of the pieces is a single point of failure. It's simple enough to provide another network cable, and your organization might already have multiple switches. The problem is the server only has one way of physically connecting to the network. You can install another NIC, but this also adds a second identity to the server in the form of an IP address.
NIC teaming can help in the following ways:
- Bandwidth. Network bandwidth is a connection's maximum total data transfer rate. NIC teaming aggregates two or more NICs, increasing the bandwidth.
- Redundancy. One connection to one switch is a single point of failure. Teaming supports multiple connections.
If you assign a single IP address configuration to a NIC team, you can connect the NICs to multiple physical or virtual switches. This process eliminates the switches as failure points, too.
Windows Server moves the teaming functionality from the hardware layer to the OS layer. Before Windows Server 2012, aggregation and redundancy options relied on interface vendors and required identical interfaces. Now, NIC teaming is device-agnostic, ensuring flexibility and convenience.
Sometimes, admins confuse NIC teaming and NIC bridging. Here is a brief review of the two:
- Teaming aggregates two or more NICs for bandwidth and redundancy using one IP address.
- Bridging uses two network interfaces that provide a bridge between two network segments.
Here, I demonstrate the teaming configuration next.
Configuring NIC teaming in Windows Server
Support for NIC teaming arrived in Windows Server 2012 and remains largely unchanged through current versions. Below, I demonstrate the GUI configuration and then define the related PowerShell cmdlets.
Configure NIC teaming in the GUI
Deploying NIC teaming in Windows Server consists of the following primary steps:
- Install two or more NICs.
- Configure NIC teaming in Server Manager, and select the desired modes.
The first task is physically installing the network cards in the server. Use the latest device drivers for these NICs, too. Unlike teaming configurations from years ago, you do not need to use NICs from the same vendor or those with the same device driver. This NIC-agnostic support is a step forward in flexibility.
Next, enter Server Manager, and browse to the Local Server node. The NIC Teaming link is under the server properties. If you haven't configured teaming, the link reads Disabled. Select the link to open the NIC Teaming configuration interface.
The NIC Teaming configuration interface displays three windows:
- Servers. The server you're configuring.
- Teams. Any existing teams -- empty until the first team is deployed.
- Adapters and interfaces. Any installed adapters.
Choose one or more NICs to add to the team. Right-click the NICs in the Adapters and Interfaces window, and then choose Add to New Team. You can add or remove NICs later if you need to change the size of the team.
Provide a descriptive team name.
Before selecting OK, click the Additional properties menu to configure various teaming modes.
Here are the choices for additional properties (the following sections provide more details on these options):
- Teaming mode.
- Load balancing.
- Standby adapter.
Select OK to complete the process. The team appears in the Teams window. The team also appears in the Network Connections interface.
Use the same windows to adjust properties as needed, add or remove the team, or add or remove NICs in the team.
Teaming modes define how the server balances traffic across the links. You have the following three choices:
- Switch Independent. This requires no switch configurations and is also used with NIC teaming on VMs.
- LACP. Link Aggregation Control Protocol enables load balancing on traffic from the switch to the team.
- Static. This uses a link aggregation group to load-balance. You manually configure this on the server and the switch.
Load-balancing modes calculate the appropriate balance among team members. Options include the following:
- Address Hash. Splits traffic based on IP addresses -- or combinations of IP addresses and port numbers when configured with PowerShell.
- Hyper-V Port. Assigns virtual MAC addresses to the NICs. Used with Hyper-V VMs configured for NIC teaming.
- Dynamic. Combines the features of Address Hash and Hyper-V Port modes to identify and avoid over- and underused interfaces.
You might want to use NIC teaming on VMs. This is supported, but a few of the parameters are configured differently, such as the following:
- Use the Switch Independent mode.
- Use the Transport Port algorithm.
Configure NIC teaming in PowerShell
You can use PowerShell to configure NIC teaming, too. The primary cmdlets are Get-NetAdapter and New-NetLbfoTeam. You need to add parameters for the team name, mode and other values.
PowerShell offers the advantage of scripting a configuration as a part of a larger automation scheme.
Get-NetAdapter displays the current interfaces so you can select the NICs you want to add to the team. New-NetLbfoTeam creates the new NIC team.
You need to provide the appropriate information to the New-NetLbfoTeam cmdlet. This information includes member NICs, the team name, mode and algorithm.
Below are the parameters:
- -TeamMembers. Lists the NICs displayed in the Get-NetAdapter results that will be added to the team.
- -Name. Specifies a name for the NIC team.
- -TeamingMode. Defines the mode using the same options as the GUI.
- -LoadBalancingAlgorithm. Sets the load-balancing method using the same options as the GUI.
Here's an example of configuring a team using the New-NetLbfoTeam cmdlet.
Once you've deployed the team, run the Get-NetLbfoTeam cmdlet to display it in the interface.
If you need to change team parameters later, use the following two cmdlets:
- Get-NetLbfoTeam. Lists the teams on the server.
- Set-NetLbfoTeam. Sets team parameters.
Cmdlet nouns, such as NetLbfoTeamMember and NetLbfoTeamNic, enable additional configuration.
Deploy NIC teaming today
NIC teaming adds an essential layer of redundancy to any server configuration. NICs are often a single point of failure, but NIC teaming is an easy and budget-friendly way of addressing this risk. The bandwidth aggregation opportunity is also an important consideration.
Whether configuring NIC teaming through the GUI or PowerShell, the setup is straightforward. The process involves installing the NICs and connecting them to the appropriate switches. Then, use the NIC Teaming window to group the interfaces together and select the desired modes.
Take a few minutes to examine the Windows servers you're responsible for in your network environment. How many have a single NIC? How many support bandwidth-heavy applications? Could these devices benefit from the redundancy and efficiency offered by NIC teaming?
Once you configure your Windows servers for NIC teaming, consider what other servers might benefit from a similar setting. For example, Red Hat Enterprise Linux also supports NIC teaming.