Hyper-V хосты несовместимы с сетевым подключением

У меня проблемы с двумя моими серверами, которые перестали общаться (странным образом).

Оба сервера - Microsoft Hyper-V Server 2012 (без графического интерфейса).

Имя: HVS1
IP-адрес: 10.0.0.11
Размещает виртуальную машину с именем servidor

Имя: HVS2
IP-адрес: 10.0.0.12
Размещает виртуальную машину под названием WMS-1.

Каждый реплицировал виртуальные машины с другого, это работало нормально примерно месяц назад.

Мои тесты по этому вопросу здесь ВСЕ имеют следующие характеристики:

  1. оба брандмауэра отключеныnetsh advfirewall set allprofiles state off) так что я знаю, что это не проблемы с брандмауэром.

  2. Я всегда пингуюсь по IP-адресу (хотя у меня есть hosts записи для своих имен на каждом сервере, так что это не проблема DNS)

  3. Я всегда пингую в обоих направлениях, так что либо оба работают, либо ни работают. У меня нет ни одного случая, чтобы пинг работал только в одном направлении.

  4. Все хосты настроены на ответ на пинг.

  5. Все это IP v4

Вещи, которые я пробовал:

  1. Я не могу пинг между 10.0.0.11 и 10.0.0.12. Это основная вещь, которую я пытаюсь решить, так как я ожидаю, что если я смогу установить эту связь, остальные мои проблемы исчезнут.

  2. Я могу пинговать от их ВМ до хоста и обратно. Так, servidor можно пинговать HVS1.

  3. Я попробовал другой аппаратный переключатель, и это не имеет никакого значения.

  4. Сервисы более высокого уровня также не работают: диспетчер Hyper-V не может соединиться между двумя хостами, выдает ошибку RPC (служба RPC запущена).

  5. RDP в HVS1 работает, если он не исходит от HVS2, но он очень медленный, с очень частыми задержками в 10 секунд. Я не замечаю ничего более медленного на сервере.

  6. Пинг с моего ноутбука на HVS2 работает нормально.

  7. Пинг с моего ноутбука на HVS1 дает 77% потерь. Много пакетов тайм-аут. Это объясняет лаги RDP. Неисправный сетевой адаптер или кабель на HVS1, я слышал, вы думаете? Но...

  8. Пинг с моего ноутбука на servidor работает отлично. Обратите внимание, что это виртуальная машина на хосте HVS1, поэтому она проходит через тот же сетевой адаптер и кабель, что и выше... Так???

  9. Пинг от HVS2 до HVS1 - это 100% потерь. То же самое в обратном направлении.

  10. Пинг от servidor в wms-1 работает отлично. Таким образом, виртуальные машины с одного хоста на другой могут пропинговать, но хосты не могут.

Итак, может кто-нибудь объяснить мне, как соединение может работать через одно и то же физическое соединение, в одних случаях совершенно, в других несовершенно, а в других вообще нет?

И какие-либо предложения для того, что я могу попробовать дальше? Спасибо!

ОБНОВЛЕНИЕ - Некоторые дополнительные детали запрашиваются в комментариях:

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 ответ

Решение

Отвечая на мой собственный вопрос...

После некоторой дальнейшей диагностики, основанной на полученных полезных комментариях и попытке использовать новую сетевую карту, я исключил аппаратные причины.

Небольшое изучение сетей Hyper-V привлекло мое внимание к тому факту, что Hyper-V не подключает хост к сети напрямую, а перенаправляет его через сетевой стек виртуализации. Таким образом, описанное выше таинственное поведение не настолько таинственно, оно согласуется с проблемой в моем виртуальном адаптере Management Host.

Это можно увидеть в списке адаптеров на 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!

Обратите внимание, что некоторые другие дубликаты не являются проблематичными, поскольку некоторые из них являются репликацией виртуальных машин между собой. Но дубликат с адаптером ManagementOS проблематичен (кстати, я понятия не имею, как это случилось...). Теперь я понимаю, что Ubuntu Desktop Машина была создана примерно в то время, когда у меня начались проблемы, я просто никогда не связывал события.

Выключение этой машины автоматически заставило мои серверы снова нормально работать.

Дальнейшая работа мне нужно сделать сейчас:

  • исправить дубликат MAC-адреса
  • дифференцировать конфигурацию пулов MAC-адресов на обоих серверах, чтобы избежать будущих аварий

Спасибо за помощь.

Другие вопросы по тегам