Openvswitch: различия между версиями
Vovan (обсуждение | вклад) (→Создаём конфигурацию для поднятия моста vmbr0 поверх ens20 средствами etcnet) |
Vovan (обсуждение | вклад) (→Создаём конфигурацию для поднятия моста vmbr0 поверх ens20 средствами etcnet) |
||
Строка 130: | Строка 130: | ||
CONFIG_IPV4=yes | CONFIG_IPV4=yes | ||
ON_BOOT=yes | ON_BOOT=yes | ||
− | HOST= | + | HOST=ens20 |
OVS_REMOVE=yes | OVS_REMOVE=yes | ||
EOF | EOF |
Версия 08:57, 10 октября 2024
Введение
Данная статья написана и проверена для операционной системы Альт Сервер ветки P10.
С высокой долей вероятности описанные здесь способы будут работать и в более старших версиях дистрибутивов ОС "Альт".
Общие настройка
Включить сервис
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) должны отсутствовать
Далее в Alt Linux можно настроить Openvswitch либо посредством ovs-vsctl либо через конфигурационные файлы etcnet.
Оба способа описаны ниже. Предпочтительным является способ через etcnet, т.к. в таком случае сохраняются читабельные конфигурационные файлы в тексте.
Настройка через 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 ens20 options
cat ens20/options BOOTPROTO=static TYPE=eth DISABLED=no CONFIG_IPV4=yes ON_BOOT=yes
Должны быть только эти файлы и только такое содержимое в них.
Количество самих интерфейсов и их названия могут отличаться.
Дальнейшие примеры будут строиться на базе физического интерфейса
ens20
Создаём конфигурацию для поднятия моста vmbr0 поверх ens20 средствами etcnet
Далее будет использоваться синтаксис heredoc для более удобного конфигурирования через копирование текста мышью из браузера в эмулятор терминала
Создаём мост vmbr0 поверх физического интерфейса ens20 с выводом трафика с виланов 100, 200, 999 через сетевой интерфейс ens20 во внешнюю сеть.
cd /etc/net/ifaces/
mkdir vmbr0
cat << 'EOF' > vmbr0/options BOOTPROTO=static TYPE=ovsbr DISABLED=no 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"
Создаём конфигурацию для поднятия vlan интерфейса vlan999 с id=999 поверх моста vmbr0 средствами etcnet
cd /etc/net/ifaces/
mkdir vlan999
cat << 'EOF' > vlan999/options TYPE=ovsport CONFIG_WIRELESS=no BOOTPROTO=static CONFIG_IPV4=yes BRIDGE=vmbr0 VID=999 EOF
echo '10.10.10.2/24' > vlan999/ipv4address
systemctl restart network
Проверка
ovs-vsctl show
должна вернуть что-то типа
968569fe-451b-4b42-b191-65700538b36b Bridge vmbr0 Port vlan999 tag: 999 Interface vlan999 type: internal Port vmbr0 Interface vmbr0 type: internal Port ens20 trunks: [100, 200, 999] Interface ens20 ovs_version: "2.17.8"
Проверяем все сетевые интерфейсы
ip a ... физический интерфейс ens20. Особое внимание на state UP ... 3: ens20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master ovs-system state UP group default qlen 1000 link/ether 7a:ba:31:39:f3:47 brd ff:ff:ff:ff:ff:ff altname enp0s20 inet6 fe80::78ba:31ff:fe39:f347/64 scope link valid_lft forever preferred_lft forever ... интерфейс ovs-system, который создаётся посредством openvswitch. state не имеет значения ... 18: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 7e:d8:51:8b:62:59 brd ff:ff:ff:ff:ff:ff ... мост vmbr0. state UNKNOWN -- это нормально ... 19: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether c6:f3:66:f8:cf:4f brd ff:ff:ff:ff:ff:ff inet6 fe80::c4f3:66ff:fef8:cf4f/64 scope link valid_lft forever preferred_lft forever ... vlan интерфейс vlan999. state UNKNOWN -- это нормально. inet 10.10.10.2/24 -- это настроенный на нём статический ip-адрес ... 20: vlan999: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether fa:52:f6:ff:05:87 brd ff:ff:ff:ff:ff:ff inet 10.10.10.2/24 scope global vlan999 valid_lft forever preferred_lft forever inet6 fe80::f852:f6ff:feff:587/64 scope link valid_lft forever preferred_lft forever