Я использую машину Debian 9 в качестве маршрутизатора с двумя интерфейсами:
eth0 for WAN
eth1 for LAN
Eth1 имеет субинтерфейсы для нескольких VLAN (eth1.10; eth1.20; eth1.30) и имеет магистральное соединение с управляемым коммутатором. К портам доступа коммутатора подключены различные устройства, имеющие доступ в Интернет. Довольно стандартная установка, все работает, как ожидалось.
Теперь я пытаюсь создать несколько виртуальных машин прямо внутри маршрутизатора Debian, используя libvirt / KVM / Qemu, и подключить их с помощью моста OVS к существующим VLAN. Что-то вроде воссоздания той же физической конфигурации, что я описал выше, но виртуализированной.
Я попытался создать ovsbr0, добавить порт eth1 в мост, а затем добавить помеченные порты для определенных VLAN, к которым я хотел, чтобы виртуальные машины подключались, вот так:
# ovs-vsctl add-br ovsbr0
# ovs-vsctl add-port ovsbr0 eth1
# ovs-vsctl add-port ovsbr0 vnet1 tag=10
# ovs-vsctl add-port ovsbr0 vnet2 tag=20
# ovs-vsctl add-port ovsbr0 vnet3 tag=30
Когда я запускаю реальные виртуальные машины, мост выглядит следующим образом:
# ovs-vsctl show
Bridge ovsbr0
Port ovsbr0
Interface ovsbr0
type: internal
Port "eth1"
Interface "eth1"
Port "vnet1"
tag: 10
Interface "vnet1"
Port "vnet2"
tag: 20
Interface "vnet2"
Port "vnet3"
tag: 30
Interface "vnet3"
К моему удивлению, интерфейсы vnet виртуальных машин не имеют соединения. Из tcpdump на eth1 я вижу, что кадры ARP с виртуальных машин правильно помечены и достигают интерфейса eth1, но по какой-то причине не пересылаются на подинтерфейсы. Я никогда раньше не использовал OVS, поэтому я явно упускаю что-то важное, но не могу понять, что это такое.
Может ли кто-нибудь указать мне правильное направление?
Мост OVS будет пересылать трафик только на порты, которые являются частью реально настроенного моста. Хотя eth1 правильно добавлен к мосту в качестве магистральных интерфейсов, подынтерфейсы (eth1.10; eht1.20; eth1.30) не являются частью моста и никогда не увидят трафик. Решение простое - просто добавьте упомянутые субинтерфейсы VLAN к мосту.