Мережева конфігурація Proxmox VE зберігається у файлі /etc/network/interfaces. За замовчуванням встановлюється міст vmbr0, до якого підключаються всі VM і LXC-контейнери. Розглянемо основні сценарії налаштування.
Стандартна конфігурація моста vmbr0
# /etc/network/interfaces
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
VLAN-тегування в Proxmox
Proxmox підтримує VLAN через VLAN-aware bridge. Це дозволяє ізолювати трафік різних VM в одній фізичній мережі:
# VLAN-aware міст
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
Після цього під час створення VM/CT можна вказати VLAN Tag (наприклад, 10, 20, 100) прямо в налаштуваннях мережевого інтерфейсу.
Bonding (агрегація каналів)
Для відмовостійкості та збільшення пропускної здатності використовуйте bonding:
>auto bond0
iface bond0 inet manual
bond-slaves eno1 eno2
bond-miimon 100
bond-mode active-backup # або 802.3ad для LACP
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
Ізольована приватна мережа для VM
Створіть другий міст без фізичного інтерфейсу для ізольованої внутрішньої мережі:
>auto vmbr1
iface vmbr1 inet static
address 10.10.10.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
# Дозволити маршрутизацію
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
# NAT для виходу в інтернет
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o vmbr0 -j MASQUERADE
Застосування змін мережі
># Перевірити конфігурацію без застосування
ifreload -a -n
# Застосувати зміни
ifreload -a
# Або через вебінтерфейс
# Node → Network → Apply Configuration
Діагностика мережі
# Показати мости та їхні порти
brctl show
# Статистика інтерфейсів
ip -s link show vmbr0
# Перевірити маршрути
ip route show
# Трасування у VM (за іменем)
pvesh get /nodes/pve/qemu/100/agent/network-get-interfaces
Помилки мережевої конфігурації та їхні причини
Три помилки, які найчастіше трапляються під час налаштування моста, VLAN і bonding — усі три проявляються одразу після ifreload -a або перезавантаження ноди, тож перевіряти мережу зручніше саме в цей момент, поки зміни ще свіжі в пам'яті.
RTNETLINK answers: File exists
bridge vmbr0: received packet on eno1 with own address as source address
ifup: failed to bring up vmbr0 (SIOCADDRT: Network is unreachable)
- File exists: IP-адреса або маршрут вже призначені іншому інтерфейсу — часто залишаються від попередньої конфігурації після невдалого
ifreload. Перевіртеip addr showіip route showна дублювання. - own address as source address: до моста підключені два фізичні порти, з'єднані один з одним, або комутатор створив петлю, а
bridge-stp offвимикає захист від петель. Увімкнітьbridge-stp onабо фізично розведіть порти. - Network is unreachable: вказано неправильний або недоступний gateway при статичному налаштуванні. Перевірте, що gateway лежить у тій самій підмережі, що й адреса інтерфейсу.
Коли звичайної конфігурації моста недостатньо
Файл /etc/network/interfaces покриває базові сценарії, але не всі задачі мережі.
- Потрібна ізоляція гостей один від одного всередині одного VLAN на одному мосту — звичайний bridge/VLAN цього не дає, потрібні окремі зони та VNets через SDN або правила firewall на рівні vmbr.
- Потрібна динамічна маршрутизація між сегментами (BGP/OSPF) — статичний файл інтерфейсів не підходить, потрібен FRRouting поверх звичайної мережі Linux.
- Потрібна маршрутизація трафіку між кількома провайдерами (multi-WAN) — bonding агрегує канали одного провайдера, але не займається policy routing між різними таблицями маршрутизації.
Перевірка результату
# Міст піднятий, порти у стані forwarding
brctl show
bridge link show
# VM справді отримує трафік потрібного VLAN
tcpdump -i vmbr0 -e vlan
# Зв'язність з VM назовні через новий міст
ping -c3 -I vmbr0 8.8.8.8
Якщо порти моста активні, tcpdump показує пакети з очікуваним VLAN-тегом, а ping проходить — мережа налаштована правильно. Про ізоляцію через програмно-визначені мережі — у статті SDN у Proxmox VE.