The load balancing on NIC teams in ESXi is based on number of connections (think Round Robin) on Windows Server 2003/2008.
Load balancing only occurs on outbound connections i.e. traffic from VM > vSwitch > LAN
ESXi has a number of load balancing options which are:
Route Based on the Originating Virtual Port ID
ESXi runs an algorithm to evenly balance the number of connections across multiple uplinks e.g. 10 virtual machines residing on one vSwith which contains two uplinks would means that each uplink has 5 virtual machines using it.
Once a VM is assigned to an uplink by the VMkernel it continues to use this until it is vMotioned to another ESXi Host or a uplink failure occurs.
Route based on the originating virtual port ID is the default setting in ESXi.
Route Based on Source MAC Hash
This is much like ‘route based on originating virtual port ID’ as the MAC address of the VM’s do not change and therefore they will continue to use the same connection path over and over. The only way around this is to have multiple virtual NICs (vNIC’s) within the VM which will produce multiple MAC addresses.
Route Based on IP Hash
This uses the source IP and destination IP to create an Hash. So on each new connection a different uplink path would be taken. Naturally, if you are transferring large amount of data, the same path would be used until the transfer had finished.
When enabling ‘Route Based on IP Hash’ you will get an information bubble:
You need to ensure that all uplinks are connected to the same physical switch and that all port groups on the same vSwitch are configured to use ‘route based on IP hash’.
Use Explicit Failover Order
This isn’t really load balancing as the secondary active (vmnic1) uplink will only come into play if vmnic4 fails.
If you have an active and standby adapter, the same procedure applies.
On all Load Balancing policies it is set by default to notify switches, what does this actually mean? Well it means that the physical switches learn that:
– A vMotion occurs
– A MAC address is changed
– A NIC team failover or failback has occurred
– A VM is powered on
Virtual Switch Security
Virtual switch security has three different elements which are:
– Promiscuous Mode, this is where the vSwitch and/or Port Group can see traffic which is not for itself.
– MAC Address Changes, this is where the vSwitch and/or Port Group is interested if the incoming traffic into the vSwitch/Port Group has been altered.
– Forged Transmits, this is where the vSwitch and/or Port Group is interested if the outgoing traffic into the vSwitch/Port Group has been altered.
In all of the above configurations you have a choice to either Reject or Accept the traffic.
VMware recommends that all of these are set to reject.
However if you are using Network Load Balancing or devices with ‘Virtual IP Address’s’ such as Hardware Load Balancers often use an algorithm that produces a shared MAC Address which is different from the original source or destination MAC address and therefore can cause traffic not to pass.
If in doubt you can always turn all three to reject, however I would recommend letting the Server Team know first!