Короткий ответ

External vSwitch на HV01 — это мост между физическим NIC (или SET-командой) и виртуальными адаптерами. Если «не работает CorpNet», сначала выясните: мёртв ли только трафик VM или вы уже отрезали management OS. Второй случай лечится с консоли BMC/iLO, не «ещё раз New-VMSwitch» по RDP, который только что умер.

Не удаляйте единственный External switch в рабочее время без плана: снятие vSwitch с галкой management OS может сбросить IP, VLAN и NIC teaming хоста.

Симптомы и как отличить

Типичная картина:

  • Get-VMSwitch не показывает CorpNet или SwitchType не External;
  • все VM на этом коммутаторе без ping, хост в LAN жив;
  • после мастера «Virtual Switch Manager» пропал RDP на HV01;
  • в Get-NetAdapter куча vEthernet, физический NIC в состоянии Hyper-V.

Отличия:

Что видноКуда
Хост и vSwitch живы, одна VM глухаяVM потеряла сеть
VM не стартует из-за missing switchVM не запускается
Live Migration падает на сетиLive Migration
GUI Hyper-V сам не открываетсясеть хоста / health

Возможные причины

  1. Физический uplink down, неверный VLAN на коммутаторе доступа, SFP вынут.
  2. vSwitch пересоздали без AllowManagementOS — хост остался без IP на этом NIC.
  3. Смешали LBFO (старый NIC Teaming) и SET на одном uplink. Для Hyper-V на 2019+ предпочтителен SET, не классический LBFO под External switch.
  4. Удалили team/SET «как обычную карту».
  5. Драйвер NIC после Windows Update, VMQ/RSS в сломанном состоянии.
  6. SDN/Windows Admin Center создал другой Logical switch, GUI показывает не то.
  7. Binding: протокол Hyper-V Extensible Virtual Switch висит не на том адаптере.

Диагностика

С консоли или живого management NIC, который не член проблемного External (идеально — выделенный BMC и отдельный mgmt).

Get-VMSwitch | Format-Table Name, SwitchType, NetAdapterInterfaceDescription, AllowManagementOS, BandwidthReservationMode, EmbeddedTeamingEnabled
Get-VMSwitchTeam -ErrorAction SilentlyContinue | Format-List
Get-NetAdapter | Format-Table Name, InterfaceDescription, Status, MacAddress, LinkSpeed, VlanID
Get-NetAdapterBinding -ComponentID 'vms_pp' | Where-Object Enabled |
  Format-Table Name, DisplayName, Enabled

Сверьте, какой физический адаптер реально под CorpNet:

Get-VMSwitch -Name 'CorpNet' | Select-Object -ExpandProperty NetAdapterInterfaceDescription
Get-NetIPAddress -AddressFamily IPv4 | Format-Table InterfaceAlias, IPAddress, PrefixLength
Get-NetRoute -AddressFamily IPv4 -DestinationPrefix '0.0.0.0/0'

Если default gateway исчез с хоста сразу после правки vSwitch — вы уже в сценарии «management NIC». Дальше только BMC или второй интерфейс.

Проверка линка L2:

Get-NetAdapter | Where-Object Status -ne 'Up'
Test-NetConnection -ComputerName 10.0.10.10 -InformationLevel Detailed

10.0.10.10 — ваш шлюз/сосед в той же VLAN, не публичный DNS.

Журнал:

Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-Hyper-V-VMMS-Admin'; StartTime = (Get-Date).AddHours(-12) } |
  Select-Object -First 25 TimeCreated, Id, Message

Решение

Чините кабель, трансивер, порт коммутатора, LACP если это SET из нескольких NIC. Hyper-V тут ни при чём. После Up у VM сеть часто появляется без пересоздания CorpNet.

Сценарий B. Нужно вернуть management OS на существующий External

Если коммутатор есть, но хост без IP на vEthernet:

Set-VMSwitch -Name 'CorpNet' -AllowManagementOS $true
Get-NetAdapter -Name 'vEthernet (CorpNet)' -ErrorAction SilentlyContinue

Назначьте IPv4 как было (или DHCP, если так задумано). VLAN management на хосте и native VLAN порта должны совпасть. Не путайте VLAN хоста с Access VLAN гостей.

Сценарий C. Коммутатор удалили, VM ссылаются на CorpNet

  1. Зафиксируйте текущие NIC и IP хоста (Get-NetIPConfiguration).
  2. Создайте External заново на том же uplink, с понятным именем CorpNet.

Пример SET из двух NIC (имена подставьте свои, не копируйте вслепую):

New-VMSwitch -Name 'CorpNet' -NetAdapterName 'NIC1','NIC2' -EnableEmbeddedTeaming $true -AllowManagementOS $true

Один NIC без SET:

New-VMSwitch -Name 'CorpNet' -NetAdapterName 'Ethernet' -AllowManagementOS $true
  1. Подключите vNIC VM:
Connect-VMNetworkAdapter -VMName 'VM-APP01' -SwitchName 'CorpNet'

Сценарий D. LBFO и Hyper-V конфликтуют

Не вешайте классический New-NetLbfoTeam и External vSwitch на одни и те же порты «как в 2012». Для 2019/2022/2025 Hyper-V используйте SET (EnableEmbeddedTeaming). Разбор team: только с консоли, с документированным rollback IP.

Сценарий E. Хост уже отрезан

BMC → консоль Windows. Верните IP на vEthernet или временно на физический NIC, если switch снят. Не перезагружайте «для очистки» до записи текущих Get-VMSwitch/Get-NetAdapter: после reboot без сети вы не увидите, что мастер успел сделать.

Как проверить, что проблема устранена

Get-VMSwitch -Name 'CorpNet' | Format-List Name, SwitchType, AllowManagementOS, EmbeddedTeamingEnabled, Id
Get-NetIPAddress -InterfaceAlias 'vEthernet (CorpNet)' -AddressFamily IPv4
Get-VMNetworkAdapter -VMName 'VM-APP01' | Format-Table SwitchName, Connected, Status, IPAddresses
Test-NetConnection -ComputerName 10.0.10.10 -Port 445

С хоста ping/TCP до шлюза есть. С VM-APP01 ping до шлюза той VLAN, которая ей назначена. RDP на HV01 жив с рабочей станции администратора. Live Migration тестовой VM в обе стороны не обязательна в эту минуту, но если сеть кластера сидит на том же SET — проверьте и её отдельно.

Если не помогло

  • vSwitch Up, гость 169.254: это уже потеря сети VM (VLAN tag, DHCP, фильтр MAC).
  • SET показывает degraded: один член команды без линка — смотрите коммутатор, не Hyper-V GUI.
  • После обновления драйвера Intel/Broadcom: откат драйвера NIC, не удаление vSwitch первым шагом.
  • SR-IOV/RDMA на том же порту: сверьте, что фича совместима с ролью vSwitch; при сомнении выведите SR-IOV из прод-NIC по документации вендора.
  • Enhanced Session «нет» при живой сети — RDP в госте, не CorpNet.

Профилактика

  • Выделенный management NIC или VLAN, не совмещать «единственный 1GbE» с VM и CSV.
  • Документ: имя CorpNet, члены SET, AllowManagementOS, native VLAN порта.
  • Изменения vSwitch — в окне с BMC, не «между совещаниями по RDP».
  • Мониторинг линка членов SET и Get-VMSwitch.
  • Не переименовывать vSwitch в GUI без скрипта Connect-VMNetworkAdapter по всем VM.

FAQ

Можно ли держать management на том же External, что и VM?

Да, это штатный AllowManagementOS. Риск: ошибка в мастере валит и хост, и гостей. Для прод лучше отдельный NIC/VLAN управления.

SET или LBFO?

Для внешних коммутаторов Hyper-V на Server 2016+ Microsoft продвигает Switch Embedded Teaming. Классический LBFO под Hyper-V — устаревающая схема; не мешайте оба на одном uplink.

Почему после New-VMSwitch пропал статический IP?

Физический NIC становится членом vSwitch, IP переезжает на vEthernet (CorpNet). Если мастер не перенёс адрес — назначьте его на vEthernet, не на «голый» pNIC.

Нужно ли перезагружать HV01 после создания коммутатора?

Обычно нет. Перезагрузка — если драйвер/binding в incoherent состоянии, и только когда есть консоль.

Удаление vSwitch удалит данные VM?

Нет, VHDX не трогает. Удалит L2-связность и может сбросить IP хоста. VM с обязательным адаптером на этом switch могут не стартовать, пока не подключите другой.

Два External на одном физическом NIC?

Штатно один External на адаптер (или на SET). Второй External требует второй uplink. Не плодите коммутаторы «для порядка» на одной карте.