Короткий ответ
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 switch | VM не запускается |
| Live Migration падает на сети | Live Migration |
| GUI Hyper-V сам не открывается | сеть хоста / health |
Возможные причины
- Физический uplink down, неверный VLAN на коммутаторе доступа, SFP вынут.
- vSwitch пересоздали без AllowManagementOS — хост остался без IP на этом NIC.
- Смешали LBFO (старый NIC Teaming) и SET на одном uplink. Для Hyper-V на 2019+ предпочтителен SET, не классический LBFO под External switch.
- Удалили team/SET «как обычную карту».
- Драйвер NIC после Windows Update, VMQ/RSS в сломанном состоянии.
- SDN/Windows Admin Center создал другой Logical switch, GUI показывает не то.
- 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 Detailed10.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Решение
Сценарий A. Uplink down, vSwitch объект жив
Чините кабель, трансивер, порт коммутатора, 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
- Зафиксируйте текущие NIC и IP хоста (
Get-NetIPConfiguration). - Создайте 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- Подключите 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. Не плодите коммутаторы «для порядка» на одной карте.