pve-trunks-plugin/README.md

3.1 KiB
Raw Permalink Blame History

PVE Trunks Plugin

Добавляет поле Trunks в редактор сетевого интерфейса QEMU VM в веб-интерфейсе Proxmox VE.

Proxmox уже умеет парсить и сохранять параметр trunks, но в UI нет поля для него — приходится редактировать конфиг VM вручную. Этот плагин это исправляет.

Установка

# Скопировать на хост Proxmox
scp -r pve-trunks-plugin/ root@<PVE_HOST>:/tmp/

# Установить
ssh root@<PVE_HOST> "bash /tmp/pve-trunks-plugin/install.sh"

После установки перезагрузить веб-интерфейс: Ctrl+Shift+R.

Удаление

ssh root@<PVE_HOST> "bash /tmp/pve-trunks-plugin/uninstall.sh"

Использование

  1. VM → Hardware → Network Device → Edit
  2. Поставить галку Advanced
  3. Заполнить поле Trunks

Формат

Значение Описание
100;200;300 Пропустить VLAN 100, 200, 300 тегированными
100-200 Диапазон VLAN от 100 до 200
100;200-300;400 Комбинация отдельных VLAN и диапазонов

Примеры

VLAN Tag Trunks Результат
100 200;300 Native VLAN 100 (untagged), VLAN 200 и 300 тегированные
(пусто) 100;200;300 Без native VLAN, все три VLAN тегированные
(пусто) (пусто) Access-порт, без тегирования

Пропустить все VLAN (полный транк)

Вариант 1 — указать диапазон:

2-4094

Пропустит все используемые VLAN (1 обычно native/default).

Вариант 2 — оставить оба поля пустыми:

Если VLAN Tag и Trunks пустые, а бридж vlan-aware, VM получает весь трафик без изменений. Тегирование делает гостевая ОС:

# Внутри VM
ip link add link eth0 name eth0.100 type vlan id 100
ip link add link eth0 name eth0.200 type vlan id 200

Важно: На хосте Proxmox у бриджа должен быть bridge-vlan-aware yes в /etc/network/interfaces для работы VLAN/trunk.

Совместимость

Проверено на Proxmox VE 9.1. Должно работать на PVE 8.x+ (любая версия с поддержкой trunks в парсере).

Как работает

Плагин использует ExtJS override на PVE.qemu.NetworkInputPanel и добавляет поле Trunks в секцию Advanced. Оригинальные файлы Proxmox не модифицируются — загружается только новый JS-файл через index template.

Файлы

  • pve-trunks-plugin.js — ExtJS override плагин
  • install.sh — установщик
  • uninstall.sh — удаление