Network Interface Card (NIC) teaming in Windows Server 2012 is a technology that enables a system to link two or more NICs for failover or bandwidth aggregation purposes. NIC teaming is known in the industry under at least the following names: NIC bonding, Network adapter teaming, Load Balancing and Failover (LBFO)
NIC Teaming overview
Historically, NIC teaming is tied to a particular NIC hardware manufacturer. Moreover, bonded NICs typically didn’t work with many Windows Server services (Hyper-V comes to mind). Windows Server 2008 R2 supports NIC teaming, but only through the NIC vendor’s proprietary protocols. The good news for us today is that Windows Server 2012 now supports vendor-neutral NIC teaming!
We Windows administrators can make good use of this feature in two chief ways:
Failover. If or when one of your server’s NICs fails, network traffic transparently fails over to another member of the NIC team.
Load Balancing/Bandwidth aggregation. We can spread network traffic load among all members of the NIC team. We can also combine the bandwidth of the individual network adapters into a large, virtual pipe. Thus, if we bind two 1 Gbps NICs into a single team, then our server can operate at an effective rate of 2 Gbps.
How NIC Teaming works
A NIC team can be considered a virtual network adapter. Thus, we don’t configure TCP/IP parameters on the individual team members; instead, we assign an IP address to the virtual NIC. NIC teaming in Windows Server 2012 supports NIC teams that consist of 2 to 32 members.
Creating a NIC team involves a few decisions on your part. First, we must decide on a team connection mode. Here are our choices:
Switch independent mode. In this mode, NIC team members can be connected to separate switches, and all NIC teaming logic is performed by the host Windows Server computer. The advantage of this mode is that we can transparently fail over to another NIC team member in the case of failure. We also can protect against a single switch failure.
The failover aspect of NIC teaming is accomplished with switch-independent teaming by specifying an active/passive NIC configuration. By contrast, we can set all NIC team members to an active state if pure bandwidth aggregation is our goal.
Switch-dependent mode. In this mode, all NIC team members are connected to the same switch. This configuration (in general) requires switch configuration as well as Windows Server configuration. The two switch-dependent modes are as follows:
- Generic or static teaming. This mode always requires manual configuration of NIC teaming on the target switch
- IEEE 802.1ax Link Aggregation Control Protocol (LACP) teaming. This mode (at least in theory) dynamically configures the switch for NIC teaming. However, you will still probably have to undertake manual intervention at the switch
Finally, we need to decide upon a traffic distribution algorithm that the NIC team will use. Here are our choices:
Address Hashing. This algorithm takes address components of each packet (MAC addresses, IP addresses, etc.) and computes hash values that are used by the server and/or the switch to assign traffic to a particular network adapter.
Hyper-V switch port. This algorithm can use the MAC addresses of your guest virtual machines (VMs) to assign packets to particular NIC team member interfaces.
Recall that Microsoft puts Hyper-V virtualization front and center in the Windows Server 2012 release. Therefore, we can create either physical or virtual NIC teams. An example of a virtual NIC team is assigning multiple virtual network adapters to one or more Hyper-V virtual switches.
Okay—enough with the background theory. Now let’s turn our attention to configuring NIC teaming in Windows Server 2012 by using both the Server Manager graphical interface and the Windows PowerShell 3 command-line interface.
Creating a NIC Team
We can create a NIC team by using either Server Manager or PowerShell 3. From Server Manager, we can navigate to the Local Server node and change the NIC Teaming property from Disabled to Enabled. We’ll then be presented with the NIC Teaming dialog shown in the following figure, from which we can round up our NICs, name the team, and set properties.
Creating a NIC Team
You’ll notice that once you have deployed the NIC team, you’ll have a new entry in your Network Connections folder: the Microsoft Network Adapter Multiplexor. This is shown in the following figure:
Viewing the NIC team
You’ll want to set an IP address to the new NIC Team object; this becomes the server’s virtual IP address by which it is accessed on your LAN.
NIC Teaming and PowerShell
From an elevated PowerShell prompt, we use the New-NetLbfoTeam cmdlet to define a new NIC team. If you have any familiarity with PowerShell, then you can correctly surmise that the other principal NIC teaming-related cmdlets are Get-NetLbfoTeam, Set-NetLbfoTeam, Rename-NetLbfoTeam, and Remove-NetLbfoTeam.
The following screenshot displays the NIC team that I configured on my lab server:
NIC teaming and PowerShell
For detailed step-by-step procedures for creating and managing NIC teams, please see any of the following Microsoft resources:
- Windows Server 2012 NIC Teaming (LBFO) Deployment and Management
- NIC Teaming Overview
- NIC Teaming (NetLBFO) Cmdlets in Windows PowerShell
- Network Interface Card (NIC) Teaming
In this blog post we learned the “hows and whys” of the new NIC teaming feature in Windows Server 2012. At this point you understand the benefits of NIC teamings, as well as the basics of how to create and manage a NIC team by using either Server Manager or PowerShell 3.