Openvswitch

Материал из wiki.nntc.nnov.ru
Версия от 14:56, 9 октября 2024; Vovan (обсуждение | вклад) (Создаём конфигурацию для поднятия моста vmbr0 поверх ens20 средствами etcnet)
Перейти к навигации Перейти к поиску

Общие настройка

Включить сервис

systemctl enable --now openwsvitch

Настройки физических интерфейсов через etcnet на примере ens19

cat /etc/net/ifaces/ens19/options 
BOOTPROTO=static
TYPE=eth
NM_CONTROLLED=no
DISABLED=no
CONFIG_WIRELESS=no
SYSTEMD_BOOTPROTO=static
CONFIG_IPV4=yes
SYSTEMD_CONTROLLED=no
ON_BOOT=yes

Остальные файлы в каталоге интерфейса (/etc/net/ifaces/ens19) должны отсутствовать

Настройка через ovs-vsctl

Проверить конфигурацию

ovs-vsctl show

Очистить конфигурацию

ovs-vsctl emer-reset

Добавить мост

ovs-vsctl add-br vmbr0

Прикрепляем к мосту vmbr0 физический сетевой интерфейс ens20

ovs-vsctl add-port vmbr0 ens20 trunks=100,200,999

Если необходимо создать мост vmbr0 поверх физических интерфейсов ens19, ens20, ens21 и при этом транковые порты должны быть только на ens19, а физические порты ens20 и ens21 должны работать на виланах, соответственно, 100 и 200

ovs-vsctl add-port vmbr0 ens19 trunks=100,200,999
ovs-vsctl add-port vmbr0 ens20 tag=100
ovs-vsctl add-port vmbr0 ens21 tag=200

Если нужно удалить физический сетевой интерфейсens20 из моста vmbr0

ovs-vsctl del-port vmbr0 ens20

Чтобы создать интерфейс vlan999 (не физический) и привязать его к мосту vmbr0 и трафику с тегом 999 (для управления хостом)

ovs-vsctl add-port vmbr0 vlan999 tag=999 -- set Interface vlan999 type=internal

Далее интерфейс vlan999 настраивается аналогично физическому интерфейсу

cat /etc/net/ifaces/vlan999/options 
BOOTPROTO=static
TYPE=eth
NM_CONTROLLED=no
DISABLED=no
CONFIG_WIRELESS=no
SYSTEMD_BOOTPROTO=static
CONFIG_IPV4=yes
SYSTEMD_CONTROLLED=no
ON_BOOT=yes
cat /etc/net/ifaces/vlan999/ipv4address 
10.10.10.2/24

Настройка через etcnet

Подготовка физических интерфейсов

cd /etc/net/ifaces/
ls ens19
options
cat ens19/options
OOTPROTO=static
TYPE=eth
NM_CONTROLLED=no
DISABLED=no
CONFIG_WIRELESS=no
SYSTEMD_BOOTPROTO=static
CONFIG_IPV4=yes
SYSTEMD_CONTROLLED=no
ON_BOOT=yes

ls ens20
options
cat ens20/options
OOTPROTO=static
TYPE=eth
NM_CONTROLLED=no
DISABLED=no
CONFIG_WIRELESS=no
SYSTEMD_BOOTPROTO=static
CONFIG_IPV4=yes
SYSTEMD_CONTROLLED=no
ON_BOOT=yes

Должны быть только эти файлы и только такое содержимое в них.

Количество самих интерфейсов и их названия могут отличаться.

Дальнейшие примеры будут строиться на базе физических интерфейсов

ens19 и ens20


Создаём конфигурацию для поднятия моста vmbr0 поверх ens20 средствами etcnet

Далее будет использоваться синтаксис heredoc для более удобного конфигурирования через копирование текста мышью из браузера в эмулятор терминала

Создаём мост vmbr0 поверх физического интерфейса ens20 с выводом трафика с виланов 100, 200, 999 через сетевой интерфейс ens20 во внешнюю сеть.

cd /etc/net/ifaces/
mkdir vmbr0
cat << 'EOF' > vmbr0/options
TYPE=ovsbr
CONFIG_WIRELESS=no
BOOTPROTO=static
CONFIG_IPV4=yes
ON_BOOT=yes
HOST="ens20"
OVS_REMOVE=yes
EOF
cat << 'EOF' > vmbr0/ifup-post
ovs-vsctl set port ens20 trunks=100,200,999
EOF
chmod +x vmbr0/ifup-post
systemctl restart network

Проверка

ovs-vsctl show

должна вернуть что-то типа

968569fe-451b-4b42-b191-65700538b36b
    Bridge vmbr0
        Port ens20
            trunks: [100, 200, 999]
            Interface ens20
        Port vmbr0
            Interface vmbr0
                type: internal
    ovs_version: "2.17.8"