Openvswitch: несколько виртуальных мостов через один интерфейс соединения

3355
Alvaro Gonzalez

Моя конечная цель - настроить сервер RedHat 6.6 с Openvswitch, как показано на следующем рисунке:

Несколько виртуальных мостов через интерфейс связи

Интерфейсные файлы конфигурации:

ifcfg-eth0

DEVICE=eth0 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none 

ifcfg-eth1

DEVICE=eth1 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none 

ifcfg-bond0

DEVICE=bond0 BONDING_OPS="mode=4 miimon=500" DELAY=0 DEVICETYPE=ovs TYPE=OVSBond OVS_BRIDGE=virbr0  ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no HOTPLUG=no OVS_OPTIONS="bond_mode=balance-tcp lacp=active" BOND_IFACES="eth0 eth1" 

IFCG-virbr0

DEVICE=virbr0 DEVICETYPE=ovs TYPE=OVSBridge ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no DELAY=0 HOTPLUG=no 

Я не знаю, как связать несколько виртуальных мостов с одним связующим интерфейсом. При определении связующего интерфейса можно указать только виртуальный мост. Мне нужно определить виртуальный мост для каждой группы виртуальных машин.

Если это невозможно, эта стратегия может продолжать изолировать трафик от каждой группы виртуальных машин?

Спасибо!

1

1 ответ на вопрос

0
Alvaro Gonzalez

A workaround is use patch port to connect multiple virtual bridges:

ifcfg-virbr0

DEVICE=virbr0 DEVICETYPE=ovs TYPE=OVSBridge ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no DELAY=0 HOTPLUG=no 

ifcfg-virbr1

DEVICE=virbr1 DEVICETYPE=ovs TYPE=OVSBridge ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no DELAY=0 HOTPLUG=no 

ifcfg-patch1-0

DEVICE=patch1-0 ONBOOT=yes DEVICETYPE=ovs TYPE=OVSPatchPort OVS_BRIDGE=virbr1 OVS_PATCH_PEER=patch0-1 

ifcfg-patch0-1

DEVICE=patch0-1 ONBOOT=yes DEVICETYPE=ovs TYPE=OVSPatchPort OVS_BRIDGE=virbr0 OVS_PATCH_PEER=patch1-0 

enter image description here

Maximun patch port is 5

ovs-vsctl show Bridge "virbr0" Port "virbr0" Interface "virbr0" type: internal Port "patch0-1" Interface "patch0-1" type: patch options: Bridge "virbr1" Port "bond0" Interface "eth0" Interface "eth1" Port "patch1-0" Interface "patch1-0" type: patch options: Port "virbr1" Interface "virbr1" type: internal