Open vSwitch
Обзор
Ссылки по теме:
- Используем OpenVPN vSwitch для разделения виртуалок между VLAN
- Open vSwitch (OVS) commands for troubleshooting
Network Manager - это сетевой менеджер, который управляет сетевой конфигурацией. Он имеет интеграцию с Open vSwitch (nm-opervswitch), но на Ubuntu 20.04 она не работает по умолчанию. Вероятно есть способ ее настроить, но я его не нашел. Я пробовал конфигурировать Open vSwitch его собственными средствами, но Network Manager не видит интерфейс моста созданного в Open vSwitch и соответственно при перемещении физического интерфейса в мост Open vSwitch ваша машина вообще теряет связь с локальной сетью. У меня нет второго интерфейса, поэтому мне пришлось перейти на сетевой менеджер systemd-networkd.
Netplan - это сетевой конфигуратор, который может генерировать конфигурации для сетевых менеджеров systemd-networkd и Network Manager, а также может переключать систему на нужный сетевой менеджер. Когда Netplan переключен на systemd-networkd, то через него можно конфигурировать Open vSwitch. Можно также создать мост в Open vSwitch и определить его в netplan как обычный интерфейс. Сетевой менеджер systemd-networkd читает свою конфигурацию из каталога /etc/systemd/networkd
, но netplan туда ничего не пишет. Вероятно он передает конфигурацию systemd-networkd иным способом.
Ubuntu 20.04
# установка apt install openvswitch-switch # проверка статуса основного сервиса systemctl status ovs-vswitchd # вывод текущей конфигурации, рекомендуется выполнять после каждого действия, чтобы понимать что происходит ovs-vsctl show # создание моста ovs0 ovs-vsctl add-br ovs0 # добавление физического порта в мост ovs0 # по умолчанию этот порт становится транковым и пропускает все VLAN, но это можно изменить ovs-vsctl add-port ovs0 enp4s0 # добавление внутреннего порта в мост ovs0 # -- используется для разделения команд ovs-vsctl add-port ovs0 p01 -- set interface p01 type=internal # переключение на systemd-networkd # переименовываем файл для рендеринга в Network Manager, так чтобы netplan его не нашел cd /etc/netplan mv 01-network-manager-all.yaml 01-network-manager-all.yaml.bak # создаем файл конфигурации для рендеринга в systemd-networkd nano /etc/netplan/00-networkd-all.yaml -------------------------------- # Netplan network: version: 2 renderer: networkd ethernets: enp4s0: {} ovs0: dhcp4: yes -------------------------------- # генерация и применение конфигурации netplan netplan generate netplan apply # далее необходимо перегрузиться, чтобы система полностью перешла на нужный сетевой менеджер
Хост получает IP из локальной сети по DHCP на интерфейсе моста ovs0. Физический интерфейс должен быть определен с пустой конфигурацией.
Подключение виртуальных машин
Виртуальные машины необходимо подключать к интерфейсу внутреннего порта p01, тогда они будут видеть и локальную сеть и хост на котором они запущены. Все виртуальные машины можно привязывать к одному внутреннему порту. Создавать внутренние порты под каждую ВМ не обязательно.