Назад | Перейти на главную страницу

Гость Hyper-V теряет доступ к сети, когда порт виртуального коммутатора находится в режиме магистрали

У меня есть гостевая виртуальная машина на машине с Windows Server 2012 R2 с Hyper-V. В настоящее время гость использует собственный vlan (vlan ID 1). Я могу общаться с гостем с хоста и из сети. Однако гостем является контроллер беспроводной сети Zebra / Motorola VX9000, который также должен будет обрабатывать трафик с идентификаторами vlan 10 и 15. Порт коммутатора, используемый хостом, не помечен на vlan 1, и я обновил порт, чтобы он также был помечен на vlan. 10 и 15. Я также запускаю следующую команду через powershell:

Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanIdList "10,15" -NativeVlanId 1

К сожалению, после выполнения этой команды я теряю способность общаться с гостем. Если я открою консоль Hyper-V для гостя, у него не будет доступа к сети. Попытка пинговать гостя с хоста или из других мест в сети приводит к Destination host unreachable сообщение.

Я могу "исправить" это, вернув адаптер в немаркированный режим:

Set-VMNetworkAdapterVlan -VMName MyGuest -Untagged

Теперь я снова могу общаться с гостем, но это ничего не решает. Мне все еще нужен этот гость, чтобы иметь возможность обрабатывать трафик на vlan 10 и 15.

Не понимаю, почему так происходит. Пакеты без тегов имели vlan ID 1 до переключения в транковый режим. Разве так не должно быть и сейчас? Как я могу заставить этого гостя общаться на всех вланах, которые мне нужны?

Лучшее, что я получаю от сообщения об ошибке, которое я вижу при пинге, похоже на то, что я бы увидел, если бы не было маршрута. Нужно ли мне вводить отдельную команду для создания маршрута для этих сетей после установки порта в качестве транка (возможно, на хосте)?

Я нашел решение!

Сообщение alejanp на эта ссылка заставил меня попробовать поиграть с vlan 0, и, похоже, работает следующая команда:

Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanList "1,10,15" -NativeVlanId 0

Короче говоря, я установил собственный vlan на 0 и включил свой настоящий родной vlan в разрешенный список.

Конечно, это может работать только до тех пор, пока непомеченный vlan, необходимый для гостя, совпадает с немаркированным vlan от порта хоста / коммутатора. К счастью, сегодня это так.

У меня есть только пара виртуальных машин, настроенных таким образом, и они также не разговаривают по собственной VLAN. Чтобы решить эту проблему, мы установили для собственной VLAN что-то неиспользуемое в сети, поместили VLAN, которую вы хотите использовать, в разрешенную, а затем переключили все сетевые адаптеры внутри виртуальной машины для маркировки их трафика.