Доброго времени суток
На тестовом стенде с libvirt решил попробовать openvswitch. Реальных интерфейсов не добавлял, свитч чисто внутренний
Интерфейс на стороне хоста без проблем поднимается через iproute2 и через /etc/network/initerfaces
Но у меня не получается сделать это через NetworkManager. unmanaged и всё тут. Все созданные connection не привязываются к device
Где я торможу?
подробности:
Как создавал виртуальный свитч:
root@io:~# ovs-vsctl add-br ovs-br0
root@io:~# ovs-vsctl set port ovs-br0 trunks=22,23,24
## после запуска 2 ВМ:
root@io:~# ovs-vsctl show
0ebe929a-0acc-41ad-8d3b-72638f781ed0
Bridge ovs-br0
Port vnet2
tag: 23
Interface vnet2
Port ovs-br0
trunks: [22, 23, 24]
Interface ovs-br0
type: internal
Port vnet1
tag: 23
Interface vnet1
ovs_version: "3.1.0"
ВМ друг друга пингуют, все ок. Теперь надо добавить доступ из ОС. Т.е. тупо поднять vlan на транковом интерфейсе ovs-br0
- через iproute2 без проблем:
## до всех действий интерфейс ovs-br0 на стороне хоста в состоянии down
## это его дефолтное значение, вообще не проблема, ВМ все равно друг друга пингуют
ip link set dev ovs-br0 up
ip link add link ovs-br0 name ovs-br0.23 type vlan id 23
ip link set dev ovs-br0.23 up
ip a a 192.168.23.1/24 dev ovs-br0.23
## все, интерфейс поднят, пинг с хоста к ВМ проходит
- через устаревший debian’овский /etc/network/interfaces тоже без проблем
## до всех действий интерфейс ovs-br0 на стороне хоста в состоянии down
## это ок, см. предыдущий пункт
root@io:~# grep -A1 ovs-br0 /etc/network/interfaces
iface ovs-br0.23 inet static
address 192.168.23.1/24
root@io:~# ifup ovs-br0.23
## все, интерфейсы (оба, и транковый ovs-br0, и vlan ovs-br0.23) подняты, пинг с хоста к ВМ проходит
- а вот через NetworkManager не выходит каменный цветок. По какой-то причине он считает device ovs-br0 unmanaged. несмотря на то, что в конфиге я вроде бы разрешил управлять всем
root@io:~# nmcli dev | grep ovs
ovs-br0 openvswitch unmanaged --
root@io:~# cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=true
[main]
no-auto-default=*
[keyfile]
unmanaged-devices=
## напомню, по дефолту ovs-br0 в состоянии down
## если поднять ovs-br0 вручную через ip l set dev ovs-br0 up, то NetwokManager согласен создать на нём vlan
nmcli con add type vlan con-name ovs-br0.23 dev ovs-br0 id 23 ipv4.method manual ipv4.addresses 192.168.23.1/24 ipv6.method disabled
## после этого хост пингует ВМ
## НО. без ручного поднятия интерфейса NetworkManager не привязывает созданный vlan никуда
## а хотелось бы, чтобы эта конструкция переживала ребут :)
У NetworkManager есть некий плагин openvswitch (https://developer-old.gnome.org/NetworkManager/stable/nm-openvswitch.html) Насколько я понял, он нужен для того, чтобы управлять openvswitch через NetworkManager. Как раз это мне категорически НЕ нужно. От NetworkManager на тестовом стенде требуется только поднять (просто поднять) транковый интерфейс, навесить на него vlan и уже на интерфейсе vlan’а назначить ip