Hyper-V хосты несовместимы с сетевым подключением
У меня проблемы с двумя моими серверами, которые перестали общаться (странным образом).
Оба сервера - Microsoft Hyper-V Server 2012 (без графического интерфейса).
Имя: HVS1
IP-адрес: 10.0.0.11
Размещает виртуальную машину с именем servidor
Имя: HVS2
IP-адрес: 10.0.0.12
Размещает виртуальную машину под названием WMS-1.
Каждый реплицировал виртуальные машины с другого, это работало нормально примерно месяц назад.
Мои тесты по этому вопросу здесь ВСЕ имеют следующие характеристики:
оба брандмауэра отключены (с
netsh advfirewall set allprofiles state off
) так что я знаю, что это не проблемы с брандмауэром.Я всегда пингуюсь по IP-адресу (хотя у меня есть
hosts
записи для своих имен на каждом сервере, так что это не проблема DNS)Я всегда пингую в обоих направлениях, так что либо оба работают, либо ни работают. У меня нет ни одного случая, чтобы пинг работал только в одном направлении.
Все хосты настроены на ответ на пинг.
Все это IP v4
Вещи, которые я пробовал:
Я не могу пинг между 10.0.0.11 и 10.0.0.12. Это основная вещь, которую я пытаюсь решить, так как я ожидаю, что если я смогу установить эту связь, остальные мои проблемы исчезнут.
Я могу пинговать от их ВМ до хоста и обратно. Так,
servidor
можно пинговать HVS1.Я попробовал другой аппаратный переключатель, и это не имеет никакого значения.
Сервисы более высокого уровня также не работают: диспетчер Hyper-V не может соединиться между двумя хостами, выдает ошибку RPC (служба RPC запущена).
RDP в HVS1 работает, если он не исходит от HVS2, но он очень медленный, с очень частыми задержками в 10 секунд. Я не замечаю ничего более медленного на сервере.
Пинг с моего ноутбука на HVS2 работает нормально.
Пинг с моего ноутбука на HVS1 дает 77% потерь. Много пакетов тайм-аут. Это объясняет лаги RDP. Неисправный сетевой адаптер или кабель на HVS1, я слышал, вы думаете? Но...
Пинг с моего ноутбука на
servidor
работает отлично. Обратите внимание, что это виртуальная машина на хосте HVS1, поэтому она проходит через тот же сетевой адаптер и кабель, что и выше... Так???Пинг от HVS2 до HVS1 - это 100% потерь. То же самое в обратном направлении.
Пинг от
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-адресов на обоих серверах, чтобы избежать будущих аварий
Спасибо за помощь.