Настройка сетевого моста vmbr0 в Proxmox VE

Пошаговая настройка сетевого моста vmbr0 в Proxmox VE: статический IP, шлюз, физический интерфейс, проверка конфигурации и безопасное применение.

Сетевой мост vmbr0 связывает виртуальные машины и LXC-контейнеры с физической сетью. Через него гости получают доступ к локальной сети, интернету и другим узлам.

В этой инструкции рассматривается только базовая настройка vmbr0 с одним физическим интерфейсом и статическим IP-адресом самого узла Proxmox VE.

Подходит для: Proxmox VE 8 и 9
Уровень сложности: средний
Время выполнения: около 20 минут
Требуемый доступ: root-доступ к узлу и доступ к локальной консоли или IPMI

Важное предупреждение

Ошибка в сетевой конфигурации может полностью отключить удалённый доступ к Proxmox VE.

Перед изменениями необходимо иметь хотя бы один резервный способ доступа:

  • физическая консоль;
  • IPMI;
  • iDRAC;
  • iLO;
  • KVM over IP;
  • консоль гипервизора у провайдера.

Не применяйте сетевые изменения удалённо без возможности восстановить доступ.

Что будет настроено

После выполнения инструкции:

  • физический интерфейс будет подключён к vmbr0;
  • IP-адрес узла будет назначен мосту;
  • будет задан шлюз;
  • виртуальные машины смогут использовать vmbr0;
  • конфигурация будет проверена до перезапуска сети.

Определение физического интерфейса

Покажите интерфейсы:

ip -br link

Пример:

lo               UNKNOWN
eno1             UP
vmbr0            UP

Покажите адреса:

ip -br addr

Физический интерфейс может называться:

eno1
ens18
enp3s0
eth0

В примерах используется:

eno1

Замените его на фактическое имя.

Проверка текущего маршрута

ip route

Пример:

default via 192.0.2.1 dev vmbr0
192.0.2.0/24 dev vmbr0 proto kernel scope link src 192.0.2.10

Запишите:

  • IP-адрес узла;
  • маску;
  • шлюз;
  • имя физического интерфейса;
  • текущий bridge.

Проверка текущей конфигурации

Откройте:

cat /etc/network/interfaces

Типичная конфигурация Proxmox VE выглядит так:

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
    address 192.0.2.10/24
    gateway 192.0.2.1
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0

source /etc/network/interfaces.d/*

Почему IP назначается мосту

IP-адрес узла Proxmox должен быть назначен:

vmbr0

а не физическому интерфейсу:

eno1

Физический интерфейс переводится в режим:

manual

и становится портом моста.

Схема:

Физическая сеть
      │
     eno1
      │
    vmbr0
      ├── Proxmox VE
      ├── VM
      └── LXC

Создание резервной копии

Перед изменением:

cp /etc/network/interfaces   /etc/network/interfaces.backup-$(date +%F-%H%M%S)

Проверьте:

ls -l /etc/network/interfaces*

Базовая статическая конфигурация

Откройте файл:

nano /etc/network/interfaces

Пример:

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
    address 192.0.2.10/24
    gateway 192.0.2.1
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0

source /etc/network/interfaces.d/*

Замените:

eno1
192.0.2.10/24
192.0.2.1

на параметры своей сети.

Параметр bridge-ports

Строка:

bridge-ports eno1

подключает физический интерфейс к мосту.

Если указать:

bridge-ports none

будет создан изолированный внутренний bridge без физического выхода в сеть.

Параметр bridge-stp

bridge-stp off

отключает Spanning Tree Protocol.

Для простого узла с одним uplink это обычная конфигурация.

Если строится сложная схема с несколькими физическими линками и возможными петлями, STP следует проектировать отдельно.

Параметр bridge-fd

bridge-fd 0

задаёт нулевую задержку forwarding delay.

Для обычного single-uplink bridge это типичная настройка.

Проверка синтаксиса

Proxmox VE использует ifupdown2.

Проверьте конфигурацию:

ifquery --check vmbr0

Покажите рассчитанную конфигурацию:

ifquery vmbr0

Проверьте все интерфейсы:

ifquery --list

Проверка bridge через ip

ip link show vmbr0

Проверьте физический порт:

bridge link

Пример:

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> master vmbr0 state forwarding

Применение через веб-интерфейс

Откройте:

Node → System → Network

После изменения нажмите:

Apply Configuration

Proxmox применит конфигурацию через ifreload.

Перед нажатием убедитесь, что есть резервный доступ к консоли.

Применение через CLI

Предпочтительный способ:

ifreload -a

Не рекомендуется без необходимости выполнять:

systemctl restart networking

на удалённом узле, поскольку это может привести к потере соединения.

Проверка после применения

Проверьте адрес:

ip addr show vmbr0

Проверьте маршрут:

ip route

Проверьте шлюз:

ping -c 3 192.0.2.1

Проверьте внешний IP:

ping -c 3 1.1.1.1

Проверьте DNS:

getent hosts example.com

Проверка веб-интерфейса

Откройте:

https://PROXMOX_IP:8006

Проверьте:

  • доступность GUI;
  • SSH;
  • кластерную связь, если узел состоит в кластере;
  • доступность хранилищ;
  • работу VM и LXC.

Подключение VM к vmbr0

В настройках VM:

VM → Hardware → Network Device

Параметр Bridge:

vmbr0

Рекомендуемая модель:

VirtIO

После запуска VM она будет подключена к той же L2-сети, что и физический интерфейс узла.

Подключение LXC к vmbr0

В настройках контейнера:

CT → Network

Укажите:

Bridge: vmbr0

Для DHCP:

IPv4: DHCP

Для статического адреса задайте IP и gateway.

Проверка tap- и veth-интерфейсов

После запуска VM:

ip -br link |
grep tap

После запуска LXC:

ip -br link |
grep veth

Проверьте участников моста:

bridge link

Для изолированной внутренней сети:

auto vmbr1
iface vmbr1 inet manual
    bridge-ports none
    bridge-stp off
    bridge-fd 0

Такой bridge можно использовать для связи между VM без выхода в физическую сеть.

Маршрутизация и NAT для него настраиваются отдельно.

DHCP на самом узле Proxmox

Для production-узла рекомендуется статический IP.

Технически можно использовать:

iface vmbr0 inet dhcp

Но это может привести к изменению адреса после перезагрузки или истечения DHCP lease.

Для Proxmox VE безопаснее использовать фиксированный адрес.

DNS узла

Проверьте:

cat /etc/resolv.conf

В Proxmox VE DNS также можно настроить через:

Node → System → DNS

Проверьте hostname:

hostnamectl

Проверьте разрешение собственного имени:

getent hosts "$(hostname -f)"

Корректное разрешение hostname важно для работы Proxmox VE и кластера.

Проверка /etc/hosts

cat /etc/hosts

Пример:

127.0.0.1 localhost
192.0.2.10 pve01.example.com pve01

Основное имя узла должно разрешаться в его management IP, а не только в 127.0.1.1.

Изменение IP-адреса узла

Для смены IP требуется обновить как минимум:

/etc/network/interfaces
/etc/hosts

Также могут потребоваться изменения:

  • DNS;
  • firewall;
  • мониторинг;
  • backup-система;
  • cluster configuration;
  • external storage;
  • scripts;
  • SSH known_hosts.

Смена IP кластерного узла требует отдельной инструкции.

VLAN-aware bridge

Если VM должны получать VLAN Tag, bridge можно сделать VLAN-aware:

auto vmbr0
iface vmbr0 inet static
    address 192.0.2.10/24
    gateway 192.0.2.1
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094

В веб-интерфейсе включается:

VLAN aware

Не включайте VLAN без согласования с конфигурацией коммутатора.

Типичные проблемы

После применения пропал доступ

Используйте локальную консоль.

Проверьте:

cat /etc/network/interfaces
ip -br addr
ip route

Восстановите резервную копию:

cp /etc/network/interfaces.backup-DATE   /etc/network/interfaces

Примените:

ifreload -a

IP назначен физическому интерфейсу и vmbr0 одновременно

Адрес должен быть только на vmbr0.

Физический интерфейс должен иметь:

iface eno1 inet manual

Нет маршрута по умолчанию

Проверьте строку:

gateway 192.0.2.1

В одной таблице маршрутизации обычно должен быть только один default gateway.

VM не получает DHCP

Проверьте:

  • bridge в настройках VM;
  • наличие DHCP-сервера;
  • VLAN;
  • firewall;
  • состояние физического интерфейса;
  • настройки коммутатора.

Узел доступен, а VM — нет

Проверьте:

bridge link

Убедитесь, что:

  • VM подключена к vmbr0;
  • модель адаптера корректна;
  • VLAN Tag соответствует сети;
  • гостевой интерфейс поднят;
  • в госте настроен IP.

После перезагрузки bridge не поднялся

Проверьте:

systemctl status networking --no-pager
journalctl -u networking -b --no-pager

Проверьте синтаксис:

ifquery --check vmbr0

Безопасный порядок изменения

  1. Получить доступ к локальной консоли.
  2. Записать текущие IP, gateway и интерфейс.
  3. Сделать резервную копию файла.
  4. Изменить только необходимые строки.
  5. Проверить конфигурацию через ifquery.
  6. Применить через ifreload -a.
  7. Проверить IP, route, gateway и DNS.
  8. Проверить GUI, SSH, VM и LXC.
  9. Только после проверки закрыть консоль.

Быстрый набор команд

Показать интерфейсы:

ip -br addr

Показать маршрут:

ip route

Проверить bridge:

bridge link

Проверить конфигурацию:

ifquery --check vmbr0

Применить:

ifreload -a

Проверить доступ:

ping -c 3 GATEWAY_IP

Итог

После выполнения инструкции:

  • физический интерфейс подключён к vmbr0;
  • IP-адрес и gateway назначены мосту;
  • конфигурация проверена через ifquery;
  • изменения применены через ifreload;
  • проверено подключение VM и LXC;
  • рассмотрены внутренний bridge и VLAN-aware режим.

Любое изменение management-сети Proxmox VE следует выполнять только при наличии резервного доступа к консоли.

← Предыдущая статья Резервное копирование LXC-контейнера в Proxmox VE Следующая статья → Добавление NFS-хранилища в Proxmox VE