Возможно ли с помощью Hyper-V 2012R2 создать виртуальный коммутатор, внутренний для Hyper-V (без необходимости или необходимости внешнего подключения), где один участник коммутатора (виртуальная машина 0 на схеме ниже) имеет магистральный интерфейс, а остальные виртуальные машины (ВМ 1 ... ВМ n на диаграмме ниже) у каждой есть порты доступа к виртуальному коммутатору, помеченные конкретным идентификатором VLAN.
_______________________________________________________
| Hyper-V host |
| |
| _____ _____ ______ ______ |
| | VM0 | | VM1 | | VM 2 | ... | VM n | |
| | | | | | | | | |
| |_____| |_____| |______| |______| |
| |:| eth0 | eth0 | eth0 | eth0 |
| |:| trunk | vlan 1 | vlan 2 | vlan 3 |
| |:| | | | |
| ================================================= |
| Virtual Switch |
|_______________________________________________________|
Например, немаркированные пакеты, покидающие eth0
Интерфейс VM2 будет помечен тегом VLAN 2 при передаче на виртуальный коммутатор. Затем они будут выходить через магистральный порт к VM0, откуда они прибывают в виртуальную машину через eth0
этой виртуальной машины и (если это была виртуальная машина Linux) быть читаемой на eth0.2
, то есть маркировка VLAN будет очевидна для VM0. Аналогично исходящий трафик eth0
VM0, помеченного тегом VLAN 2, войдет в виртуальный коммутатор с этим тегом на месте, и тег будет удален перед его отправкой в VM2, где он появится на виртуальных машинах eth0
интерфейс немаркирован.
Если да, то как достигается эта маркировка? Я не эксперт по Hyper-V, и единственная документация, которую я могу найти, говорит о том, что весь коммутатор находится в режиме магистрали или режиме доступа. Очевидно, что коммутатор должен нести теги VLAN, но мне нужно перевести разные порты в режим транка или доступа. Возможно ли это без внешнего интерфейса? Я также не хочу и не нуждаюсь в подключении к родительскому разделу Hyper-V.
ВОПРОСЫ-ОТВЕТЫ:
Я понимаю, что в приведенной выше конфигурации у меня мог бы быть один виртуальный коммутатор на каждую VLAN, но я не хочу этого делать, так как VM0 должен иметь большое количество сетевых интерфейсов, и для этого потребуется много виртуальных коммутаторов.
Эта конфигурация отлично работает на VMware и Linux и не такая уж странная, как вы думаете.
Рисование линий ужасное, извиняюсь.
Я вполне готов сделать это программно, а не через графический интерфейс, если это необходимо.
Вы можете создать магистральную ссылку на виртуальную машину.
https://technet.microsoft.com/en-us/library/hh848475.aspx
Обычно ваша команда будет такой:
Set-VMNetworkAdapterVlan -VMname $VMName -VMNetworkAdapterName $VMNetworkAdapterName -Trunk -AllowedVlanIdList "vlan number" -NativeVlanId "vlan ID"
Насколько я понимаю, вам нужно, чтобы все виртуальные машины имели магистральный сетевой адаптер.
Собственный Vlan в Hyper-V используется для маркировки всего исходящего трафика, поэтому, если у вас есть магистраль сетевого адаптера VM0 с собственным vlan 50 и все остальные разрешенные, а также доступ к сетевому адаптеру VM1 с Vlan 1. Затем VM1 -> VM0 успешно, но VM0 -> VM1 нет. (В разделе -> я имею в виду отправку пакетов и их доставку по назначению, и это не обязательно гарантирует успешный обратный поток)
Итак, ваша VM0 должна иметь некоторые общие для всех машин VLAN X как собственный vlan и все необходимые vlan от всех других виртуальных машин в списке разрешенных vlan. Любая другая виртуальная машина должна иметь свой уникальный VLAN как собственный, а VLAN X - разрешенный.
Например:
VM Name | Native Vlan | Allowed Vlan
VM1 | 1 | 1,50
VM2 | 2 | 2,50
VMn | n | n,50
VM0 | 50 | 1,2,n,50
Здесь VM0 -> Any VM = успешно, Any VM -> VM0 = Success и VMn -> VMm (если «n» и «m» не равны 0) = сбой.
Надеюсь, это поможет и извините за грамматические ошибки.