Configuring NIC Teaming in Windows Server 2012 R2


By utilizing NIC Teaming, also known as load balancing and failover (LBFO), you can combine multiple network interface adapters to create a single logical NIC to provide fault tolerance or bandwidth aggregation for your network connections. Adapters that are members of a NIC team each maintain their own separate physical existence and each connect to separate network cables.

 

Prior to Windows Server 2012, NIC Teaming was available only through the use of 3rd party software solutions (such as HP, Intel, and Dell), and required specific network adapter hardware. In Windows Server 2012 and 2012 R2, however, NIC Teaming is built into the operating system, and it’s vendor, hardware, and line-speed agnostic. In this blog post we will review the built-in NIC teaming feature of Server 2012 R2 and we will go through how to configure NIC teams, using the GUI and PowerShell.

 

1. NIC Teaming Overview

 

1.1 Benefits/Features of built-in NIC teaming in Windows Server 2012 R2

 

  • Built-in support in Server 2012 and newer, ensures that it’s no longer necessary to download additional software to create and manage the team.

 

  • NIC teaming is supported on both physical and Hyper-V virtual machines, and on Core and Full iterations of Server 2012/2012R2.

 

  • Possible to mix NICs in a team from different manufacturers.
  • Provides fault tolerance, if one NIC goes down for whatever reason, such as faulty cable, switch port or adapter, the server still remains connected to the network through the other NIC(s) in the team.

 

  • Multiple NICs can increase available bandwidth, providing load balancing.
  • The built-in NIC Teaming feature is fully supported by Microsoft.

 

  • Server 2012 R2 supports up to 32 NICs in a team on physical servers. On virtual servers, Microsoft only supports two NIC members in each team, although it is possible to create teams with more than two NIC members, such configurations will not be supported by Microsoft.

 

  • WLAN, Bluetooth, WWAN, Infiniband NIC types are not supported in NIC teams.
  • Mixing NICs with different speeds in a team is not supported by Microsoft. Obviously mixing a 1Gbps and 100Mbps NIC in a team would not yield good load balancing results anyway.

 

1.2 Teaming Modes

 

You can configure the NIC team in three different modes

• Static Teaming (Switch Dependent)

NicTeam5

This mode requires the switch to be aware of and to participate in the NIC Teaming. Since the NIC team is dependent on the switch, you must ensure that all of the members of the NIC team are connected to the same physical switch and not spread across multiple different switches.

 

• Switch Independent

NicTeam6

This configuration does not require the switch to participate in the teaming, therefore the network interface adapters may be connected to different switches. But connecting the NICs to different switches is not a requirement, its merely a possibility in this teaming mode. This teaming configuration will also work with any switches, including non-intelligent/team-aware ones, since all of the intelligence required to support NIC Teaming is handled by Windows Server itself. It also adds an additional layer of failover, if more than one switch is utilized.

 

LACP (Switch Dependent)
NicTeam5

Similar to static teaming, the Link Aggregation Control Protocol (LACP) mode requires the switch to be aware of and to participate in the NIC teaming. Therefore all the members of the team must be connected to the same physical switch, and the switch must be preconfigured to enable LACP. Once enabled, it can be used to automatically combine multiple NICs into one logical link any time the switch is reconfigured.

 

1.3 Load Balacing Modes

 

There are three different load balancing modes, which function differently depending on whether you choose switch dependent or switch independent teaming mode.

 

Switch Independent

Address Hash

  • Inbound traffic is limited to only one adapter (the primary member), meaning that the inbound traffic cannot exceed the bandwidth of one team member. Outbound traffic is distributed across all the active NICs in the team, by utilization of a hashing algorithm on the destination information – typically the port, IP, and MAC addresses. Using the results of the algorithm, the NIC team determines which NIC will be used to send the packet.

Hyper-V Port

  • This configuration will send packets using all active team members distributing the load based on the Hyper-V switch port number. Each Hyper-V port will be bandwidth limited to not more than one team member’s bandwidth because the port is affinitized to exactly one team member at any point in time. Because each Hyper-V port is associated with a single team member, this mode receives inbound traffic for the VM’s switch port on the same team member the switch port’s outbound traffic uses.

Dynamic

  • This load balancing mode was introduced with Server 2012 R2, and is not available in Server 2012. This mode gives you the best of the other two load-balancing modes, and therefore yields in most circumstances the best performance. Both inbound and outbound traffic can be spread out evenly across the members of your NIC team.

 

Switch Dependent

Address Hash

  • The switch determines how to distribute the inbound traffic among the team members. Outbound traffic is distributed across all the active NICs in the team, by utilization of a hashing algorithm on the destination information.

Hyper-V Port

  • The switch determines how to distribute the inbound traffic among the team members. On outbound traffic the load is distributed based on the Hyper-V switch port number. Each Hyper-V port will be bandwidth limited to not more than one team member’s bandwidth because the port is affinitized to exactly one team member at any point in time.

Dynamic

  • This load balancing mode was introduced with Server 2012 R2, and is not available in Server 2012. This mode gives you the best of the other two load-balancing modes, and therefore yields in most circumstances the best performance. Both inbound and outbound traffic can be spread out evenly across the members of your NIC team.

 

In 2012R2 Microsoft recommends to utilize Dynamic, instead of Hyper-V Port, Load Balancing Mode in both Switch dependent and Switch independent teaming modes.

 

2. Configuring NIC teaming using the GUI

 

2.1 Start Server Manager
2.2 Click Local Server from the menu options on the left side, and you will notice that NIC teaming is listed as Disabled. Click on the Disabled link.
NicTeam1

2.3 In the NIC Teaming dialog box, select the NICs you want to create a new team with, then right-click and select Add to New Team.
NicTeam2

2.4 In the New team dialog box, give the new NIC team a name, and then expand the Additional properties option to configure the Teaming and Load Balancing modes.
NicTeam3

NicTeam4

On the switch dependent teaming modes all adapters will be active. While in the switch independent mode you can choose to put one of the adapters in standby mode, which means said adapter will not be utilized unless one of the other adapters goes offline for whatever reason. In most circumstances you’d probably want optimal load balancing, and thus keep all adapters active.

 

2.5 Click on OK, and the NIC Team will be created
NicTeam7

2.6 If you check the network connections on the Server, you will see that a new virtual NIC representing the team has been created.
NicTeam8

It will have the combined speed of the team members.
NicTeam9

 

2.7 Network settings must be configured on this virtual NIC, and not on the different team members. In fact, if you try to configure IPv4 or IPv6 properties on one of the team members, you will notice that its not possible.
NicTeam10

 

3. Configuring NIC teaming using PowerShell

 

3.1 You create a new NIC team with the New-NetLbfoTeam cmdlet. The following example creates a NIC Team named Team1, with exactly the same settings as we defined in the GUI. The parameters for the cmdlet are self-explanatory.

New-NetLbfoTeam -Name Team1 -TeamMembers “Team1 Nic1”, “Team1 Nic2”, “Team1 Nic3” -TeamingMode SwitchIndependent -LoadBalancingAlgorithm Dynamic

 

3.2 The Get-NetLbfoTeam retrieves a list of NIC teams on the system.
NicTeam11

3.3 While Set-NetLbfoTeam obviously lets you set parameters on the specified NIC team.
3.4 You can find the full list of NIC Teaming Cmdlets on Technet

1 Comment

  1. Ryan M

    Nice detailed tutorial. Thanks!

Comments are closed.