Here's how to create a NIC Team/NIC Bond/Load-Balancing/LBFO setup. This setup is then used in a virtual machine enviroment for all the VM's to use.
First update drivers to INTEL newest drivers v21.1.
We will be using LBFO (LOADBALANCING-FAILOVER) which is built into Windows Server rather than INTEL ANS (Advanced Networking Services) which is built into the Intel driver. The reason for this is that ultimately there are too many issues if you do not use what is built into the Windows OS. Updates and other items will keep having trouble with INTEL ANS.
Remove Existing Settings
-remove static settings from existing nics.
-remove virtual switch in Hyper-V.
Establish New Settings in PowerShell
-first, see the network adapters you have: get-netadapter
-renamed nic1 to TeamNic1: rename-netadapter "Local Area Connection" "TeamNic1"
-renamed nic2 to TeamNic2: rename-netadapter "Local Area Connection 2" "TeamNic2"
-created nic team with name ManagementTeam: new-netlbfoteam -Name "ManagementTeam" -TeamMembers TeamNic1,TeamNic2 -TeamingMode SwitchIndependent -LoadBalancingAlgorithm TransportPorts
-created virtualswitch called ConvergedNetSwitch: New-VMSwitch "ConvergedNetSwitch" -MinimumBandwidthMode weight -NetAdapterName "ManagementTeam"
-click SERVER-MANAGER (the management gui in Windows Server that shows when you start the server)
-click LOCAL-SERVER (on the left-hand side).
-find NIC-TEAMING (at the top section)
-click ENABLED (next to NIC-TEAMING)
(a windows shows)
-right-click on MANAGEMENTTEAM (lower-left) > click PROPERTIES
-click ADDITIONAL-PROPERTIES (at the bottom).
-set SWITCH-INDEPENDENT
-set ADDRESS-HASH (if you set to the HYPER-V-PORT setting, each VM will be assigned to a specific NIC).
-set STANDBY as NONE
To Verify New Settings
-type: get-VMSwitch |fl
-here's my output:
ComputerName : foo
Name : ConvergedNetSwitch
Id : d64482dc-d6d4-4b64-8d24-4105c1ef80a4
Notes :
SwitchType : External
AllowManagementOS : True
NetAdapterInterfaceDescription : Microsoft Network Adapter Multiplexor Driver
AvailableVMQueues : 63
NumberVmqAllocated : 3
IovEnabled : False
IovVirtualFunctionCount : 0
IovVirtualFunctionsInUse : 0
IovQueuePairCount : 0
IovQueuePairsInUse : 0
AvailableIPSecSA : 2048
NumberIPSecSAAllocated : 0
BandwidthPercentage : 100
BandwidthReservationMode : Weight
DefaultFlowMinimumBandwidthAbsolute : 0
DefaultFlowMinimumBandwidthWeight : 1
Extensions : {Microsoft NDIS Capture, Microsoft Windows Filtering Platform}
IovSupport : False
IovSupportReasons : {This network adapter does not support SR-IOV.}
IsDeleted : False
Start New Settings
-rebooted to make sure it survives a reboot.
NOTES
***To be clear, this is set for LOAD-BALANCING (not FAILOVER).*** We would need another NIC to enable failover. Simply add the NIC to the team. Then choose that NIC to be the STANDBY ADAPTER.
A real team/bond requires configuration on the switchs (or more specifically on the switch ports) to create an EtherChannel. If you are to do this, make it easy on yourself and make certain all the switches are the same model. Then make certain all have the same OS before stacking. Once stacked, configure the EtherChannel.
Teaming Mode
Switch-independent teaming allows you to connect team members to multiple, non-stack switches.
LACP teaming, the server and switch will split traffic between all links that are up. It requires switch configuration to build a LACP/LAG which has intelligence that tells the switch to track each active cable in the link and whether that cable is actually connected. If the cable is unavailable, it is unused until the cable is available and connected again.
Static teaming is used when LACP is not available. It still requires switch configuration to create a LAG.
Load Balancing
Load balancing in a team does not evenly split incoming traffic between each link in team; this is unlike a "load balancing appliance" or traditional load balancer.
Address Hash mode uses MAC addresses to attempt to use the source and destination addresses and ports to create an effective balance between team members.
Hyper-V Port mode is intended only for use on Hyper-V virtual machine hosts. This will assign MAC address to each machine on the virtual machine host and then assign a team member to each of the MAC addresses. Only used in certain scenarios.
In Dynamic mode, inbound traffic is split by assigning team members to different MAC addresses. Outbound traffic is split by a combination hash derived from IP/Port. This should provide better overall balancing and is almost always the best load balancing option to use.