Если вам в Proxmox надо подать в виртуальные машины несколько vlan-ов, то удобней будет использовать Open vSwitch.
Скорее всего сразу после установки у вас порт на коммутаторе будет настроен как access и трафик на сервер с proxmox приходит нетегированный. Чтобы трафик в сервер ходил тегированный и в виртуальных машинах и контейнерах был тегированный, надо установить Open vSwitch, настроить его и переключить порт в режим trunk (пропуска в сервер proxmox тегированного трафика).
Содержание
Подготовка[править]
Если у вас на этом сервере работают какие-либо виртуальные машины - мигрируйте их перед началом настройки.
Для начала сделайте бэкап сетевых настроек:
# cp /etc/network/interfaces /etc/network/interfaces.bak
Настройка openvswitch[править]
Установите Open vSwitch на каждой ноде кластера:
# apt-get install openvswitch-switch
Запустите:
# systemctl enable --now openvswitch-switch
После чего в GUI ноды удалите старый мост, создать новый в следующем виде:
Здесь "внутреннему" порту дали имя proxmox.
Нажав Apply configuration будет произведен перезапуск сервера (не сети).
Пока сервер перезагружается, можно переключить порт коммутатора с access в trunk.
После перезапуска всё должно работать.
Смысл происходящего[править]
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 должен быть развернут на всех узлах кластера.