Настройка заключается в следующих этапах
- Включение интерфейсов. Настройка показана в данной записи. Интерфейсы надо только включить, адреса задавать не надо.
- Создать brige включающий необходимые порты.
- Создать необходимые виртуальные интерфейсы (если необходимо)
- Назначить нужные порты в нужные VLAN
Создание моста
Для создания моста нужно создать папку будущего моста в /etc/net/ifaces/. И также как с обычными интерфейсами в этой папке должен лежать options. Имя моста может быть любым, но принято называть их br(номер) или vmbr(номер). Сам файл содержит следующие строки
TYPE=ovsbr # здесь указывается именно этот тип
CONFIG_WIRELESS=no
BOOTPROTO=static
CONFIG_IPV4=yes
ON_BOOT=yes
OVS_REMOVE=no
HOST="ens18 ens19" #здесь указываете все порты которые должны быть в мосте
Чтобы применить настройки перезапустите сервис network (systemctl restart network). Если мост не появился, проверьте что сервис openvswitch запущен (systemctl enable —now openvswitch)
Порт бондинг
Специальный тип порта для объединения 2х физических сетевых интерфейса в один. Для его создания в options должно быть
TYPE=ovsbond
Бридж в который должен этот порт добавиться:
BRIDGE=br0
Также должны быть указаны не меньше 2х сетевых интерфейсов, которые должны быть добавлены в данный порт.
HOST='ens18 ens19'
Эти записи производятся в отдельном интерфейсе (можно назвать bond№) в папке /etc/net/ifaces/
Примерный конфиг должен выглядеть так
TYPE=ovsbond # здесь указывается именно этот тип
CONFIG_WIRELESS=no
BOOTPROTO=static
CONFIG_IPV4=yes
ON_BOOT=yes
BRIDGE=br0 # Созданный ранее бридж
OVS_REMOVE=no
HOST="ens18 ens19" #здесь указываете все порты которые должны быть в бонде
Для настройки режима агрегации портов (например, балансировки нагрузки) на существующем bond вам нужно использовать команду ovs-vsctl. Open vSwitch поддерживает различные методы агрегации, такие как:
balance-slb: балансировка нагрузки на основе исходного и назначенного MAC-адресов.
balance-tcp: балансировка нагрузки на основе хэширования TCP/IP-соединений.
active-backup: активный и резервный режим без балансировки нагрузки.
Предположим, что ваш bond называется bond0 и вы хотите установить режим balance-tcp. Для этого выполните следующую команду:
sudo ovs-vsctl set port bond0 bond_mode=balance-tcp
Создание виртуальных интерфейсов
Если есть необходимость создать виртуальный интерфейс (например интерфейс в отдельном VLAN, для доступа к коммутатору), то также как и с обычными интерфейсами создаете папку в /etc/net/ifaces/ с именем нового интерфейса (имя на ваше усмотрение). Также в этой папке должен лежать файл options
TYPE=ovsport
CONFIG_WIRELESS=no
BOOTPROTO=static
CONFIG_IPV4=yes
BRIDGE=br0 # указываете созданный мост
VID=455 # Указываете в каком VLAN находится порт
Адрес и прочие параметры настраиваются также как и на обычных интерфейсах
Назначение портов в VLAN
Для добавления портов в нужные VLAN используйте команду
ovs-vsctl set port "имя интерфейса" tag="номер VLAN"
Также есть возможность указать эта параметры внутри файла options моста (интерфейс и номер VLAN указываются без кавычек), но у меня эта настройка не сработала
OVS_EXTRA='set port "интерфейс" tag="номер VLAN" -- set port "интерфейс" tag="номер VLAN" '
Чтобы проверить назначение портов выполните команду
ovs-vsctl list port | less
Примечания
Не забывайте перезапускать сервис network (systemctl restart network) после изменения настроек