One of the biggest improvements in Windows Server 2012 is a feature of NIC teaming. At first glance, it is not a big deal; NIC teaming exists for years. Yes, there is a teaming feature, but not on all systems. Additionally, we can make such teaming only between NICs of the same brand and often the same model.
With Windows Server 2012 and later, we can make a team of any NICs in the system. Even more, NICs may have different speeds. Also, we can make more than one team in the same server.
Why is this so cool feature? Simply, we can make a NIC team, consist of two NICs, and easily achive both failover and higher throughput. This is very important for the critical infrastructure servers and services.
In case that one NIC burn out or a network switch refuses further cooperation, our server is still up and available, servicing clients. Yes, the bandwidth will be reduced and service degraded, but we’ll still be able to work.
Ingredients for our recipe
Our recipe is very simple, although the whole process behind it is not. We can setup the NIC team for less than two minutes. This is a recipe for the GUI version. The power shell version will be covered in another article (edited 12.06.2017.).
We need Windows Server 2012, 2012R2 or 2016. Our server must recognize all NICs in the chassis, regardless of whether it is physical or virtual hardware.
In our case, I used Oracle VBox platform and VM with two different virtual NICs. As you can see, you’re not limited to hardware servers or on the specific virtualization platform.
Before we proceed, we need to make a few choices. In essence, this process is very easy and straightforward. However, in some environments, you will may have to make further adjustments. I recommending to you to check out this Microsoft TechNet page and to find out more about all the possibilities of NIC teaming.
For most installations, the default settings will be fine. Only if you have very specific reason, like VLANs or specific network switches, you should change the teaming mode or load balancing algorithm. In addition, we don’t need to work in the active-passive mode, as the failover process is now automatic.
Configuring NIC teaming
If we have more than one NIC and want to use them all, they all must be configured separately. Furthermore, we shouldn’t have multiple gateways to the same network. If there are, sooner or later, our server will get confused.
It’s strongly recommended that server has only one default gateway on a single NIC. If we need a route to other network, we must define it manually using the route command.
Open Server Manager and go to Local Server. We will see properties of our server.
We can see all existing NICs and the teaming status. Now it’s disabled. We need to click on that Disabled label. This is also a link to the configuration window. A new window will appear.
We will see all available TEAMs and recognized NICs on our local server. Actually, we can configure teaming even on the remote server. However, keep in mind that you can break the connection to that server, and cut you from it, when you’re making a team with the NIC used for a remote access.
We can make the team in several ways. I will click on the drop-down menu above the TEAMS list. Select New Team from the menu.
New window open. You should give the meaningful name to the team (like LAN, Public, etc.). Our new team will be a new, virtual, NIC in the system with that name. Then, choose all NICs that you want to associate with this team.
In most cases, you will click now on the button OK. This will create the new team name LAN with switch independent teaming, dynamic load balancing and all active network adapters.
Don’t be confused with this option switch independent. This means that you may, but you don’t really need, to connect the server to the different network switches.
The greatest advantage of this solution is that you don’t need to configure anything on the switch side. Just plug the network cables and voila! Everything will work immediately.
Just to mention that the static teaming option requires additional configuration of the link aggregation feature (or, like some vendors named it – trunking) on the network switch. This is the old way. Therefore, avoid it whenever you can.
Configuration in progress
After we click on the [ OK ] button, Windows will initiate the process of team creation. That process will create one more virtual NIC and change the properties of all physical NICs. The whole process will take less than a minute.
After short time, we will see our new team. Status should be OK, but sometimes it can has warnings.
In this demo, I used the bridged connection through vSwitch over WiFi adapter. Although this will work, that’s not the best solution. That caused this temporary error.
After very short time, the second NIC also connected. Now we have fully operated NIC team.
This TEAM is only NIC for the system
Although operating system can see all physical (virtual NICs in this case) NICs as devices, all further network operations will use only this new TEAM virtual adapter.
In addition, Task Manager will also report one network connection instead of two.
We can check the Network details pane and we can see that out new network connection have the bandwidth equivalent equal to the sum of all bandwidths for every single NIC. In our example, we have two NICs, each with the bandwidth of 1Gbps.
Even more, we can see third NIC in the list of network adapters. This third NIC is of the type Microsoft Network Adapter Multiplexor Driver.
If we open the properties of the NICs and the TEAM adapter, we can see that TEAM adapter has all network protocols associated with it.
In the same time, our NICs have only one protocol – Microsoft Network Adapter Multiplexor Protocol.
And it worked faster and fail safer after all
As you can see, this whole process is very simple. You needed more time to read this post than to configure your first network team.
You should implement the network-teaming configuration on all mission critical servers, like domain controllers, file servers, database servers, etc. You will achive both the bandwidth aggregation and faster connection, while in the same time this connection will be fail-safe.
Most configurations will stay with the default parameters, as they allow automatic adaptation to our server on the network environment, decreasing the reconfiguration time on the network switches.
This was a quick guide for the GUI versions. Many servers running the Core version and we will need the power shell commands. All these steps can be performed using the power shell commands. Even more, this GUI frontend executes them in the background. I will leave this part for another post.