我有一个由3个主机组成的HyperV群集。 每台主机都连接到在以太网通道中运行的两台Nexus 5548交换机。 在服务器端使用Broadcom 802.3ad进行交换机和网卡绑定的LACP。 这给我2GB的带宽,并提供容错。
我遇到的问题是在执行实时迁移时发生的。 在实时迁移之前,Nexus交换机都会在ARP表中显示VM的MAC。 迁移后,一台交换机显示虚拟机的MAC地址,另一台显示移动到的HyperV主机的MAC地址。
我运行了一个数据包捕获,看到HyperV主机发送一个免费的ARP与虚拟机的IP和主机的MAC,而不是虚拟机的MAC。 发生这种情况时,我失去了三层连接。 我必须手动清除交换机上的ARP条目,或等待大约7分钟,以便自行更正。
我在使用Broadcom处理网卡绑定时做了一些四处观望,并且也遇到了类似的问题。 有没有人看过这个? 任何build议?
——–编辑下面添加
使用Link Aggregation 802.3ad进行组合时,我只有这个问题。 Broadcom的团队select是…
我切换到智能负载平衡和VM Live迁移,而不会丢失任何networking连接。 然而,Nexus交换机上的ARP表是同步的,但它们显示了主机的MAC地址,而不是虚拟机。 这与我认为会做的相反。 交换机的ARP表不应该显示虚拟机的MAC地址吗? 如果没有,他们是想显示主机的MAC,为什么?
好的。 经过三周激烈的战斗,我终于明白了这一切。
我在Broadcom的支持下打开了一个案例,在这里来回走了几天之后,我收到了Broadcom软件开发商的回应。
在远程站或交换机上查看(vm_ipv4,host_mac_addr)或(vm_ipv6,host_mac_addr)对对于许多networking来说都是可以的。 巴斯普将处理地址的混合,并确保虚拟机获得正确的数据包。
但是,一些networkingconfiguration需要IP地址映射到vm_mac_addr。 如果要使用vm_mac_addr而不是host_mac_addr,则需要添加下面列出的HyperVModeregistry项。
如果不希望多路复用vm的mac地址,也就是说不能用nic的mac地址来replace它,则需要在运行vm的主机上设置以下registry项,然后重新启动系统影响。 通过basp设置这个registry项导致效率较低的操作,但在某些设置中是必要的,例如当有一个dhcp服务器需要使用vm的mac地址来分配ip地址时。 通过设置此registry项,您还应该可以看到vm所连接的所有远程站点的arp表中的实际vm的mac地址。
可以在创build团队之后,但在使用团队的hyper-v虚拟适配器创build之前添加此注册项。 如果值为1,则会在负载平衡stream程中将baspconfiguration为使用vm的mac地址,而不是slb组中的nic的mac地址。 值为0(或不存在)configurationbasp为mux / demux虚拟机的mac地址与组中的一个nic的mac地址。
将registrypath中的“1”设置为要应用此模式的正确组号,然后重新启动系统。 请注意,这个registry项将在删除团队时被删除,每次团队创build时都必须重新创build。 未来版本的BACS将会有一个checkbox来设置这个registry项,并且在创build一个团队并且不得不重新启动系统时不需要添加它。 此registry项仅在> = basp6-1.5.1上可用。
Windowsregistry编辑器版本5.00
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Blfp \ Parameters \ 1]“HyperVMode”= dword:00000001
PS。 除此registry项仅在> = basp6-1.5.1上可用,它仅适用于slb团队types,不适用于lacp或gec团队。
所以说,我试了一下。 首先,我申请了创buildregistry项。 然后,我将虚拟交换机更改为专用虚拟机networking模式。 我给服务器快速重启。 最后,当服务器恢复联机时,我将虚拟交换机configuration回外部模式,然后selectBASP虚拟适配器。 我testing了Live Migrations,一切正常,Nexus中的ARP表显示了VM_IP和VM-MAC。 YEY !!!!
这是SCVMM中的设置。 直到我为主机打开“中继”模式之前,我一直在等您。 如果在SCVMM – >属性 – >networking选项卡上右键单击主机
