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

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

У меня есть гостевая виртуальная машина на машине Windows Server 2012 R2, на которой запущен Hyper-V. В настоящее время гость использует собственную vlan (vlan ID 1). Я могу взаимодействовать с гостем с хоста и из сети. Однако гость — это контроллер беспроводной локальной сети Zebra/Motorola VX9000, которому также необходимо обрабатывать трафик на vlan ID 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 1 до переключения в режим trunk. Разве это не должно быть так и сейчас? Как мне заставить этого гостя общаться во всех нужных мне vlan?

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

решение1

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

решение2

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

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

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

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

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

Связанный контент