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.