home

Настройка Open vSwitch в Proxmox

Если вам в Proxmox надо подать в виртуальные машины несколько vlan-ов, то удобней будет использовать Open vSwitch.

Подготовка[править]

Если у вас на этом сервере работают какие-либо виртуальные машины - мигрируйте их перед началом настройки.

Для начала сделайте бэкап сетевых настроек:

# cp /etc/network/interfaces /etc/network/interfaces.bak

Настройка openvswitch[править]

Установите Open vSwitch на каждой ноде кластера:

# apt-get install openvswitch-switch

Запустите:

# systemctl enable --now openvswitch-switch

После чего в GUI ноды удалите старый мост, создать новый в следующем виде:

proxmox-openvswitch.png

Здесь "внутреннему" порту дали имя proxmox.

Нажав Apply configuration будет произведен перезапуск сервера (не сети).

После перезапуска всё должно работать.

Смысл происходящего[править]

Open vSwitch - виртуальный коммутатор. У нас есть физический интерфейс enp3s0f0 - он будет портом этого коммутатора и через него будет приходить в коммутатор тегированный трафик (множество vlan-ов).

Дальше создаётся мост, в этот мост включены все остальные порты.

Но если мы так и оставим, у нашего сервера не будет IP-адреса и в Proxmox для управления не достучаться. Чтобы достучаться, создаем "внутренний" порт с IP-адресом сервера, включаем его в мост и указываем vlan (access vlan в терминах cisco) на этот порт, если трафик в сети управления Proxmox тегированный.

Пример конфигурации Open vSwitch в Proxmox[править]

На всякий случай привожу содержимое файла /etc/network/interfaces, в котором адрес сервера proxmox 172.16.1.2/24 и эта сеть тегирована vlan 123:

auto lo
iface lo inet loopback

iface enp3s0f1 inet manual

iface enp4s0f0 inet manual

iface enp4s0f1 inet manual

auto enp3s0f0
iface enp3s0f0 inet manual
        ovs_type OVSPort
        ovs_bridge vmbr0

auto proxmox
iface proxmox inet static
        address 172.16.1.2/24
        gateway 172.16.1.1
        ovs_type OVSIntPort
        ovs_bridge vmbr0
        ovs_options tag=123

auto vmbr0
iface vmbr0 inet manual
        ovs_type OVSBridge
        ovs_ports enp3s0f0 proxmox

Назначаем ВМ и контейнерам их vlan[править]

Чтобы сеть в ВМ и контейнерах ходила в своих vlan, надо теперь просто зайти в настройки сети ВМ/контейнера и назначить нужный access vlan. Больше нигде этот vlan в Open vSwitch вводить не надо. Исходящий трафик из порта ВМ/контейнера будет Open vSwitch тегироваться соответствующим vlan, а с входящего тег сниматься (т.е. внутри ВМ ничего с тегами настраивать не надо).

Open vSwitch в кластере Proxmox[править]

Чтобы работала миграция, Open vSwitch должен быть развернут на всех узлах кластера.