Вопрос или проблема
Я регулярно выполняю следующую команду через PowerShell (в режиме администратора) для открытия портов на ВМ, и сегодня, создавая новую ВМ из шаблона (как я всегда делал), получил приведённую ниже ошибку.
Настройка: Windows Server с запущенной Hyper-V, без домена.
Теперь я понимаю, что эта ошибка пытается мне сказать, но это что-то, что началось внезапно. Я запускал это для нескольких ВМ (более 20 на том же физическом хосте), и она только начала показывать мне эту ошибку.
Команда:
Add-NetNatStaticMapping -NatName "HyperVNATNetwork" -Protocol TCP -ExternalIPAddress 0.0.0.0/24 -ExternalPort 3422 -InternalIPAddress 172.16.41.63 -InternalPort 3422
Ошибка:
Add-NetNatStaticMapping : Вы не подключены, потому что в сети существует дублирующееся имя. Если вы присоединяетесь к домену, перейдите в Систему в Панели управления, чтобы изменить имя компьютера и попробовать снова. Если вы присоединяетесь к рабочей группе, выберите другое имя рабочей группы.
At line:1 char:1
+ Add-NetNatStaticMapping -NatName "HyperVNATNetwork" -Protocol TCP -Ex ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (MSFT_NetNatStaticMapping:root/StandardCi...atStaticMapping) [Add-NetNatSt
aticMapping], CimException
+ FullyQualifiedErrorId : Windows System Error 52,Add-NetNatStaticMapping
net view
показывает мне Произошла системная ошибка 6118. Список серверов для этой рабочей группы в данный момент недоступен
Я действительно не могу перезагрузить хост, поэтому хотел бы продолжить устранение неполадок, но не знаю, с чего начать.
Ответ или решение
В данной ситуации у вас возникла проблема при выполнении команды Add-NetNatStaticMapping, которая позволяет применить статическое отображение NAT и тем самым осуществить пересылку трафика через определенные порты к виртуальной машине (VM) на Hyper-V. Ошибка, с которой вы столкнулись, относится к проблеме "дублирующегося имени", что в первую очередь предполагает определенные сетевые проблемы или конфликты конфигурации.
Теория
Ошибка о дублированном имени может возникнуть в нескольких случаях, которые стоит учитывать:
-
Конфликт имен или IP-адресов: Возможно, существует другой объект на вашей сети или в настройках, использующий то же имя или адрес, что и новый NAT, который вы пытаетесь создать.
-
Сетевые проблемы с NAT: Ваша конфигурация NAT или настройки сети могли подвергнуться изменениям, нарушив стабильность существующей инфраструктуры.
-
Конфликт с существующими правилами NAT: Возможно, вы уже создавали правило NAT с похожими параметрами, что привело к конфликту.
Пример
Предположим, у вас есть две виртуальные машины на одной и той же сети, и вы пытаетесь настроить для них пересылку трафика через один и тот же внешний порт. Это могло создать конфликт, так как система не может корректно обрабатывать входящий трафик с одним портом для двух различных IP-адресов.
Применение
Для решения данной проблемы предлагаю следовать ряду шагов, которые помогут локализовать и устранить проблему:
-
Проверка существующих настройках NAT:
- Проверьте существующие правила NAT, используя команду
Get-NetNatStaticMapping
. Убедитесь, что нет дублирования в названиях или портах. - Проверьте сам
NetNat
объект, используя командуGet-NetNat
. Убедитесь, что имя "HyperVNATNetwork" используется корректно.
- Проверьте существующие правила NAT, используя команду
-
Проверка сетевых параметров:
- Убедитесь, что IP-адрес 172.16.41.63 является уникальным и не используется другими устройствами на вашей сети. Вы можете использовать команду
arp -a
для просмотра текущих IP-адресов и их связей с MAC-адресами. - Проверьте сетевые настройки на виртуальной машине. Убедитесь, что не существует дублирующихся записей в ваших настройках сети.
- Убедитесь, что IP-адрес 172.16.41.63 является уникальным и не используется другими устройствами на вашей сети. Вы можете использовать команду
-
Диагностика и устранение ошибок:
- Проверьте журналы событий Windows для обнаружения дополнительных подсказок об ошибках, связанных с сетью. Это можно сделать через Event Viewer.
- Убедитесь в отсутствии проблем с сетевыми адаптерами на хосте. Используйте
Get-NetAdapter
для получения статуса всех сетевых адаптеров.
-
Изменение конфигурации:
- Если вы не нашли проблем с вышеупомянутым, попробуйте использовать другой внешний порт, например 3423, для исключения возможности конфликтов.
- Также, если это возможно, проведите краткосрочный тест на перезапуске службы сети или самой виртуальной машины, что может помочь сбросить внутренние кэш и настройки.
-
Дополнительные проверки:
- Убедитесь, что ваш сервер Hyper-V обновлен и все патчи безопасности и обновления установлены корректно.
- Рассмотрите возможность использования других утилит или сторонних инструментов для диагностики сетевых проблем, таких как Wireshark, для глубокой проверки сетевого трафика.
В завершение хотелось бы отметить, что подобные сетевые конфликты могут быть вызваны различными факторами и требуют внимательной проверки всех аспектов сетевой инфраструктуры. Исследовав каждую из вышеупомянутых областей, вы сможете локализовать и устранить проблему, а также предотвратить её повторное возникновение в будущем.