NIC Teaming with Broadcom on HyperV 2008 R2
Okay. After 3 weeks of intense battle I finally got it all figured out.
I opened a case with Broadcom support and after going back and forth for a few days here is the response I received from a Broadcom software developer.
Seeing a (vm_ipv4, host_mac_addr) or (vm_ipv6, host_mac_addr) pair on a remote station or switch is okay for many networks. Basp will handle the muxing of the addresses and make sure the vm's get the correct packets.
However, a few network configurations require the ip address to map to the vm_mac_addr. If you want to use the vm_mac_addr instead of the host_mac_addr, you need to add the HyperVMode registry key listed below.
If it is desired not to mux the vm's mac address, that is to not replace it with a mac address of a nic, you need to set the following registry entry on the host the vm is running on and reboot the system for it to take effect. Setting this registry entry results in a less efficient operation by basp, but is necessary in certain setups, such as when there is a dhcp server that requires the vm's mac address be used in order to assign an ip address. By setting this registry entry, you should also see the actual vm's mac address in the arp table of all the remote stations the vm is connected to.
This registy entry can be added after a team has been created, but before the hyper-v virtual adapter using the team has been created. A value of 1 will configures basp to use a vm's mac address instead of the mac address of a nic in a slb team when load balancing flows. A value of 0, or not present, configures basp to mux/demux the vm's mac address with a mac address of one of the nics in the team.
Set the "1" in the registry path to the correct team number that this mode is to be applied to and reboot the system. Note that this registry entry will be deleted when the team is deleted, and must be recreated each time the team is created. Future versions of BACS will have a check-box that will set this registry entry and prevent the need for adding it when a team is created and having to reboot the system. This registry entry is only available on >=basp6-1.5.1.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ Blfp\Parameters\1] "HyperVMode"=dword:00000001
PS. Besides this registry entry being only available on >=basp6-1.5.1, it is only applicable to slb team types, and does not apply to lacp or gec teams.
So with that said I gave it a try. First, I applied created the registry key. Then, I changed the Virtual Switch to Private Virtual Machine Network mode. I gave the server a quick reboot. Finally, when the server came back online I configured the Virtual Switch back to External Mode and choose the BASP Virtual Adapter. I tested Live Migrations and everything worked perfectly and the ARP tables in the Nexus showed the VM_IP and the VM-MAC. YEY!!!!
Here is the setting within SCVMM. I was having issues like you until I turned on Trunk mode for the Host. If you right click on the host in SCVMM --> Properties --> Networking tab