AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 919596
Accepted
pgr
pgr
Asked: 2018-07-06 05:00:32 +0800 CST2018-07-06 05:00:32 +0800 CST 2018-07-06 05:00:32 +0800 CST

Hyper-V 托管不一致的网络连接

  • 772

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

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

名称:HVS1
Ip 地址:10.0.0.11
托管名为 servidor 的 VM

名称:HVS2
Ip 地址:10.0.0.12托管
名为 WMS-1 的 VM

每个都在从另一个复制虚拟机,直到大约一个月前,这一直运行良好。

我在这里对这个问题的测试都具有以下特征:

  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. 进入 HVS1 的 RDP 可以工作,只要它不是来自 HVS2,但它非常慢,经常出现 10 秒的延迟。我没有注意到服务器中其他任何缓慢的地方。

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

  7. 从我的笔记本电脑 Ping 到 HVS1 会造成 77% 的损失。大量数据包超时。这解释了 RDP 滞后。HVS1 上的 NIC 或电缆出现故障,我听说您认为?但...

  8. 从我的笔记本电脑 pingservidor可以完美运行。请注意,这是 HVS1 主机上的 VM,因此它通过与上述相同的 NIC 和电缆...所以???

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

  10. ping from servidortowms-1工作正常。因此,从一台主机到另一台主机的虚拟机可以 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:我注意到我有一个备用 NIC,与已有的完全相同,并尝试交换它。问题仍然存在。我怀疑 Hyper-V 网络堆栈以某种方式损坏......

networking
  • 1 1 个回答
  • 3954 Views

1 个回答

  • Voted
  1. Best Answer
    pgr
    2018-07-17T03:46:38+08:002018-07-17T03:46:38+08:00

    回答我自己的问题...

    在根据收到的有用意见进行进一步诊断并尝试使用新的 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 地址池配置,以避免将来发生事故

    感谢您收到的帮助。

    • 4

相关问题

  • 谁能指出我的 802.11n 范围扩展器?

  • 我怎样才能得到一个网站的IP地址?

  • 在一个 LAN 中使用两台 DHCP 服务器

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve