У меня проблемы с двумя моими серверами, которые перестали общаться (странным образом).
Оба сервера - это 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)
Я всегда пингую в обоих направлениях, поэтому работают либо оба, либо ни один. У меня нет ни одного случая, чтобы пинги работали только в одну сторону.
Все хосты настроены для ответа на Ping.
Все 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 каким-то образом поврежден ...
Отвечая на свой вопрос ...
После некоторой дополнительной диагностики, основанной на полученных полезных комментариях, и попытки использовать новую сетевую карту, я исключил аппаратные причины.
Небольшое изучение сетей 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
машина была создана примерно в то время, когда у меня начались проблемы, я просто никогда не связывал события.
Выключение этой машины автоматически привело к тому, что мои серверы снова начали нормально работать.
Дальнейшая работа, которую мне нужно сделать сейчас:
Спасибо за полученную помощь.