Назад | Перейти на главную страницу

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. Все хосты настроены для ответа на Ping.

  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 каким-то образом поврежден ...

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

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

Небольшое изучение сетей 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!

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

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

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

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

Спасибо за полученную помощь.