У меня есть гостевая виртуальная машина на машине с 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, которую вы хотите использовать, в разрешенную, а затем переключили все сетевые адаптеры внутри виртуальной машины для маркировки их трафика.