NIC Teaming on Windows Server 2012
Articles,  Blog

NIC Teaming on Windows Server 2012


Welcome to the ITFreeTraining video on NIC
teaming. NIC teaming is the process of combining multiple network cards together to form one
connection. This video will look at what you can hope to achieve using this process and
some of the limitations. NIC teaming is when multiple network cards
are combined together. Allthought Windows Server 2012 refers to this as NIC Teaming,
other vendors may refer to this as bonding, balancing or aggregation. The result however
is the same, combining multiple network cards is done for performance or redundancy reasons.
Let’s consider a server with two network cards. Using NIC teaming you can combine these
two network cards together. The second network card could be configured as a standby network
card in case the first network card fails, or both networks could be combined and effectively
double the amount of data the server can transmit to the network. In Windows Server 2012, if you decide to combine
two network cards together and one fails, the second network card will receive and send
all traffic even though the first network card has failed. I will go into some of the
reasons why you would want to have a dedicated fail over network card verses combining the
two network cards together. Both will give you fault tolerance regardless of which one
you choose. If you were to add a 3rd network card to
the one server, this network card could be combined with the other two or be used as
a standby network card. In Windows Server 2012, you can have up to 32 network cards
combined together in the one NIC team. You can see that you have a lot of flexibility
on how you can configure NIC teaming, but before you start using NIC teaming you first
need to decide if you want to combine the switches on your network for NIC teaming or
use them the way they are. The first teaming mode that I will look at
is called switch-independent. This does not require any configuration of the network switches
on your network. In this mode you can use one or more switches. Since it requires no
configuration and can be used with any number of switches, it is the simplest and most flexible
of all the teaming modes. For example, you could configure 3 network
cards and plug them into the same switch. All these cards could be combined together
to form the one NIC team. If you later decide to, you could add a fourth network card that
was connected to a different switch. Now consider a second example, you have a
fast network switch and a slow network switch on the same network. The fast network switch
does not have that many ports so you want to plug as many servers into as possible in
it, but you also want some redundancy on the network. For this reason, you plug an active network
card into the fast switch and a standby network card into the slow switch. You can see this
is one reason why you would want to configure a network card as a standby network card.
Later in the video I will go into some of the other reasons why you would want to use
standby network cards rather than combining the network cards together, but before I do
that I will have a look at the next two teaming modes. The next teaming mode is static teaming. This
teaming mode uses the network protocol 802.3ad to combine multiple ports on a switch together.
When static teaming is used, the ports on the switch need to be configured to use this
protocol. If you do decide to use static teaming, the cables need to be plugged in the correct
ports. Static teaming is unforgiving if you plug the network cabling into the wrong ports
in the switch. Since the switch needs to be configured, all
the NIC team members need to be plugged into the same switch. You cannot use multiple switches
like the previous teaming mode of switch-independent. Although in theory you cannot use multiple
switches, some vendors do allow switches to be combined together to form the one switch.
If your vendor and the switches you have allow them to be combined so that Windows see multiple
switches as the one switch, you can use static teaming with multiple switches. Either way,
I would suggest if you are new to NIC Teaming, to use the previous team mode of switch-independent
as this is simple to set up and does not require any configuration of your switches. Having
to configure your switches does complicate your network and if you are new to switch
configuration this can be a difficult task. The advantage of configuring your switches
for static teaming is that this allows packet based load balancing. As shown, you could
have two network cards plugged into the same switch and the same server. The switch will
send half the packets to one network card and half to the second. This means both network
cards will be well utilized. Later in the video I will look at how traffic is routed
using NIC teaming when network ports are not combined together using a protocol. With static
teaming, the switch makes sure that network traffic is balanced and both network cards
are well utilized, however as we will see later in this video this is not the case when
a switch protocol is not used. The last teaming mode is LACP which standards
for Link Aggregation Control Protocol. LACP uses the 802.1ax protocol which is effectively
a newer version of the protocol used for static teaming. Like static teaming, this creates
a single pipe for multiple network adapters. This means that you get better utilization
of the network cards in the team. The advantage of LACP over static teaming
is that network cards can dynamically be added to the NIC team. Dynamically adding network
adapters is difficult to configure so in the real world this feature is generally not used.
The important point to remember is you need to ensure that the switches that you use support
the protocol that you configure. Just like static teaming, the network switch
needs to be configured. LACP is difficult to configure and get working and so is generally
only used in high availability enterprise environments. Once you have decided on your teaming mode,
the next setting to configure is how load balancing should be performed. For this, Windows
Server 2012 has two different modes, but before we look at these two modes, letís first address
an issue that needs to be considered when using NIC Teaming. When transmitting network traffic through
a network, network administrators will attempt to have the network traffic travel through
the network via a single flow. The reason for this is to reduce the need for traffic
to reassemble when it reaches the other end. To understand why, consider that you have
four network cards which transmit one packet each as part of a network stream. As you can
see, the first packet to arrive is packet 4 followed up by packet 3. Packet 2 arrives
next and finally packet 1 arrives last. Before packet 2, 3 or 4 can be processed, the computer
must wait for packet 1 to arrive. Having packets like this arrive out of order increases the
amount of processing the network device needs to do in order to start using the data. For
this reason, traffic distribution algorithms like the ones we are about to look at attempt
to keep network data in a single stream so as to reduce the amount of reassembly required
when the network traffic reaches the other end. The first algorithm that I will look at is
called address hashing. Address hashing uses information like the IP Address, port, Mac
Address for both source and destination to create a hash value. Once this has been determined,
communication that matches all these inputs is always sent via the same network card. Let’s consider a server with 4 network cards
installed in it and a network with 4 computers on it. What will happen is this: The server
uses the hash value to decide which network card to send data out through. Data for the
destination will always use the same path through the network. As shown, 3 of the 4
network cards were used, and the 3rd network card was not. This is what happens when a
hashing algorithm is used. For a small number of clients it may or may not make good decisions
about how to output traffic. The network load may or may not be evenly separate out amongst
the network cards. The more clients you have on the network, the better the network traffic will
start averaging out between all the network cards. The problem with this approach is that if
a network stream has a lot more data than the others, it will only ever utilize the
one network card. The system works best when there are a lot of network streams with about
the same amount of data travelling through them. If this occurs, you will get nice balancing
between the network cards. Before I look at the last traffic algorithm,
I first want to look at incoming traffic. When you use the address hashing algorithm,
all incoming traffic arrives via the same network card. If you consider the example
when clients are sending data to the server, you can see that all the incoming data is
arriving via the same network card. The server is only able to make decisions
about the traffic leaving the server. It does not have any control over the data coming
into the server. The only exception to this is if you are using static teaming or LACP.
In this case, the switch has bound multiple network cards together at the hardware level,
so it can load balance incoming and outgoing traffic as the switch performs this role.
If the network cards are not bound together on the switch like this, the next traffic
algorithm can assist with incoming traffic control if you are using virtual machines. The algorithm, Hyper-V port, routes traffic
from a virtual machine out the same network card each time. If you consider the following,
it is easy, as we have seen, to control traffic leaving the server. Hyper-V switch port can
also make sure that incoming traffic comes back through the same port as shown. How does it do this? It should be remembered
that each virtual machine has its own Mac address. What essentially happens is that
NIC teaming uses this MAC address on the network. Like any other device on the network, the
traffic will find its way to the network adapter that has that MAC address. By using Hyper-V
switch port you are essentially saying all traffic from a virtual machine should always
use the same network card. This does not give you any performance increase, but does mean
that if a network card were to fail, NIC teaming would automatically redistribute the load
between the network cards that are available. Hyper-V switch port works best when you have
a lot of virtual machines on the one server so the load can be distributed across the
available network cards. Well that covers it for all the theory for
NIC Teaming. In the next video I will perform a demonstration on Windows Server 2012 to
show how you configure NIC teaming. I hope you have found this video useful and I hope
to see you in the next one. Thanks and see you next time.

18 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *