Hyper-V 主机网络连接不一致

Hyper-V 主机网络连接不一致

我遇到了问题,我的两台服务器无法通信(以一种奇怪的方式)。

服务器都是 Microsoft Hyper-V Server 2012(没有 GUI 的)。

姓名:高压交流电压1
IP 地址:10.0.0.11
托管一个名为 servidor 的虚拟机

姓名:高压交流电压
IP 地址:10.0.0.12
托管名为 WMS-1 的虚拟机

每个虚拟机都复制其他虚拟机,直到大约一个月前,一切都运行正常。

我针对这个问题做的测试都具有以下特点:

  1. 两个都防火墙已禁用(带有netsh advfirewall set allprofiles state off)所以我知道这些不是防火墙问题。

  2. 我总是通过 IP 地址进行 ping 操作(尽管我hosts在每个服务器中都有它们的名称条目,所以这不是 DNS 问题)

  3. 我总是双向 ping,所以要么两个都有效,要么都无效。我从未遇到过只有单向 ping 有效的情况。

  4. 所有主机均配置为响应 Ping。

  5. 一切都是 IP v4

我尝试过的事情:

  1. 我无法在 10.0.0.11 和 10.0.0.12 之间 ping 通。这是我试图解决的基本问题,因为我预计如果我能让这个连接正常工作,我的其他问题就会消失。

  2. 我可以从他们的虚拟机 ping 到主机并返回。因此,servidor可以 ping HVS1。

  3. 我尝试了不同的硬件开关,但没有任何变化。

  4. 更高级别的服务也不起作用:Hyper-V 管理器无法连接两个主机,出现 RPC 错误(RPC 服务正在运行)。

  5. 只要不是来自 HVS2,RDP 进入 HVS1 就可以正常工作,但速度非常慢,经常出现 10 秒的延迟。我没有注意到服务器中还有其他地方速度很慢。

  6. 从我的笔记本电脑 ping 到 HVS2 正常。

  7. 从我的笔记本电脑 ping 到 HVS1 时,丢失率为 77%。大量数据包超时。这解释了 RDP 延迟的原因。我听说您认为是 HVS1 上的 NIC 或电缆故障?但是...

  8. 从我的笔记本电脑 ping 到servidor运行正常。请注意,这是 HVS1 主机上的虚拟机,因此它通过与上面相同的 NIC 和电缆... 那么???

  9. 从 HVS2 到 HVS1 的 Ping 为 100% 丢失。反方向也是一样。

  10. servidor从 到的Pingwms-1工作正常。因此,从一个主机到另一个主机的 VM 可以 ping 通,但主机则不能。

那么,有人可以向我解释一下,如何在同一个物理连接上实现连接,在某些情况下完美实现,在其他情况下不完美实现,而在其他情况下根本无法实现?

有什么建议我下一步可以尝试吗?谢谢!

更新- 评论中要求提供一些额外的详细信息:

C:\>netsh int tcp show global Querying active state...

TCP Global Parameters  
----------------------------------------------  
Receive-Side Scaling State          : enabled  
Chimney Offload State               : disabled  
NetDMA State                        : disabled  
Direct Cache Access (DCA)           : disabled  
Receive Window Auto-Tuning Level    : normal  
Add-On Congestion Control Provider  : none  
ECN Capability     : enabled  
RFC 1323 Timestamps                 : disabled  
Initial RTO   : 3000  
Receive Segment Coalescing State    : enabled

查看我的适配器时,我发现了一些意想不到的东西 - 出于某种原因,那里的适配器似乎有一个新名称。Ethernet 4我不记得这个编号了,听起来好像 Windows 本身重新做了一些事情并给出了一个新编号。

PS C:\> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       
----                      --------------------                    ------- ------         
Ethernet 4                Realtek PCI GBE Family Controller            21 Up            
vEthernet (External)      Hyper-V Virtual Ethernet Adapter #2          23 Up           

更改为这个“新”适配器可能会导致 LSO 方面的不同行为:

PS C:\> Get-NetAdapterLso

Name                           Version         V1IPv4Enabled  IPv4Enabled  IPv6Enabled  
----                           -------         -------------  -----------  -----------  
Ethernet 4                     LSO Version 1   True           False        False  
vEthernet (External)           LSO Version 2   False          True         True  

驾驶员信息:

PS C:\> Get-NetAdapter -Physical | fl

Name                       : Ethernet 4  
InterfaceDescription       : Realtek PCI GBE Family Controller  
InterfaceIndex             : 21  
MacAddress                 : 00-14-D1-1D-57-11    
MediaType                  : 802.3  
PhysicalMediaType          : 802.3  
InterfaceOperationalStatus : Up 
AdminStatus                : Up  
LinkSpeed(Gbps)            : 1  
MediaConnectionState       : Connected  
ConnectorPresent           : True    
DriverInformation          : Driver Date 2011-10-20 Version 8.1.1020.2011 NDIS 6.30  

我尝试完全禁用两个适配器的 Lso,但问题似乎仍然存在 :-(

更新 2:我注意到我有一个备用网卡,与已有的网卡完全相同,并尝试将其交换。问题仍然存在。我怀疑 Hyper-V 网络堆栈不知何故损坏了...

答案1

回答我自己的问题...

根据收到的有用评论进行进一步诊断并尝试使用新的 NIC 后,我排除了硬件原因。

对 Hyper-V 网络进行一些研究后,我发现 Hyper-V 并不直接将主机连接到网络,而是通过虚拟化网络堆栈进行转移。因此,上述神秘行为并不那么神秘,它们与我的管理主机虚拟适配器中的问题一致。

这可以通过 HVS1 上的适配器列表看到:

PS C:\Users\Administrator> Get-VMNetworkAdapter -all

Name                  IsManagementOs VMName    SwitchName MacAddress   Status IPAddresses
----                  -------------- ------    ---------- ----------   ------ -----------
External_InternalPort True                     External   00155DC08706 {Ok}
Network Adapter       False          servidor  External   00155DC08705 {Ok}   {10.0.0.10, fe80::a40d:a9b3:6a6c,...
Network Adapter       False          vm-linux2 External   00155DC08708        {}
Network Adapter       False          Win7Eval  External   00155DC08709        {}
Network Adapter       False          wms-1     External   00155DC08707        {}

问题出在External_InternalPort由 Hyper-V 自动创建并IsManagementOS设置为 的那个适配器上true,当我勾选该复选框表示该适配器可以由主机操作系统共享时。

将其与 HVS2 中的列表进行比较:

PS C:\Windows\system32> Get-VMNetworkAdapter -all

Name                  IsManagementOs VMName         SwitchName MacAddress   Status IPAddresses
----                  -------------- ------         ---------- ----------   ------ -----------
External_InternalPort True                          External   50465DB2CA1C {Ok}
Network Adapter       False          servidor       External   00155DC08705        {}
Network Adapter       False          SuiteCRM       External   00155DC08705        {}
Network Adapter       False          Ubuntu Desktop External   00155DC08706 {Ok}   {}
Network Adapter       False          vm-linux2      External   00155DC08708        {}
Network Adapter       False          wms-1          External   00155DC08707 {Ok}   {10.0.0.21, fe80::d920:9f00:59de:...

所以我的问题就是 MAC 地址重复00155DC08706

请注意,其他一些重复项没有问题,因为其中几个是 VM 在它们之间进行复制。但 ManagementOS 适配器的重复项是有问题的(顺便说一句,我不知道它是怎么产生的......)。我现在认识到这台Ubuntu Desktop机器是在我出现问题的时候创建的,我只是从来没有将这些事件联系起来。

自动关闭这台机器后,我的服务器的连接性就会恢复正常。

我现在需要做的进一步工作:

  • 修复重复的 MAC 地址
  • 区分两台服务器上的 MAC 地址池配置,以避免将来发生事故

謝謝收到的幫助。

相关内容