Классический сетевой мост в Proxmox VE отлично работает, пока сетей немного и настраивает их один администратор вручную на каждом узле. Как только клиентов или проектов становится десятки, ручная синхронизация конфигурации на всех нодах превращается в источник ошибок. SDN переносит описание сети в кластерную базу конфигурации и раздаёт её на все узлы автоматически.
Зачем нужен SDN, если уже есть сетевые мосты
Software-Defined Networking в Proxmox VE добавляет уровень абстракции поверх физических интерфейсов: администратор описывает зоны и виртуальные сети один раз в веб-интерфейсе кластера, а Proxmox сам генерирует конфигурацию для каждого узла и применяет её через ifreload. Это удобно для хостинг-провайдера, который выдаёт клиентам изолированные VLAN без захода на каждый гипервизор по SSH.
Какие типы зон доступны в Proxmox VE
| Зона | Изоляция | Когда применять |
|---|---|---|
| Simple | нет, общий L3 сегмент | тестовые стенды, одна NAT-сеть |
| VLAN | тегирование 802.1Q | деление физической сети между арендаторами |
| QinQ | двойной VLAN-тег | провайдер с сотнями изолированных клиентов |
| VXLAN | инкапсуляция L2 поверх L3 | сеть без общего коммутатора между узлами |
Для большинства сценариев хостинга виртуальных машин достаточно зоны VLAN — она проще в диагностике, чем VXLAN, и не требует поддержки multicast на коммутаторах.
Как создать зону и VNet
Зона и виртуальные сети настраиваются в разделе Datacenter → SDN. Порядок действий:
- Создайте зону типа VLAN, укажите физический мост-аплинк, например
vmbr0. - Добавьте VNet с произвольным именем и номером VLAN tag, например 120.
- Примените изменения кнопкой Apply — конфигурация разойдётся на все узлы кластера.
- Привяжите VNet к сетевому интерфейсу нужной виртуальной машины вместо обычного моста.
После применения конфигурация появляется в файле /etc/pve/sdn/vnets.cfg и в интерфейсах ip link на каждом узле как отдельный VLAN-интерфейс поверх аплинка.
Настройка VLAN-транка на физическом коммутаторе
Со стороны коммутатора порт, к которому подключён узел Proxmox VE, должен быть переведён в режим trunk с разрешёнными VLAN ID, использованными в зоне SDN. Если коммутатор пропускает только access-порт, VNet с тегом просто не получит трафик — это самая частая причина «сеть не работает» после настройки SDN.
ip link show vmbr0.120
bridge vlan show
Команда bridge vlan show подтверждает, что нужный VLAN ID действительно поднят на интерфейсе моста конкретного узла.
Как проверить связность между виртуальными машинами
После подключения двух VM к одной VNet проверьте связность обычным пингом и посмотрите таблицу ARP на каждой стороне:
ping -c 4 10.20.0.2
ip neigh show
Если пинг не проходит, а интерфейсы подняты, проверьте совпадение VLAN ID в зоне SDN и на порту коммутатора, а также правила файрвола Proxmox VE на уровне узла и виртуальной машины — он может блокировать трафик между сетями по умолчанию.
SDN и кластер: что важно на нескольких узлах
Конфигурация SDN хранится в общей базе /etc/pve и одинакова для всех узлов кластера Proxmox VE, но физический аплинк-интерфейс на каждом узле нужно назвать одинаково — иначе применение зоны завершится ошибкой на узлах с другим именем моста. Перед миграцией VM между узлами убедитесь, что VNet присутствует и активна на обоих.
Чек-лист внедрения SDN
- Зона и VNet созданы, конфигурация применена без ошибок на всех узлах.
- Порт коммутатора переведён в режим trunk с нужными VLAN ID.
- Связность между VM в одной VNet подтверждена пингом и ARP-таблицей.
- Правила файрвола не блокируют трафик внутри новой сети без явной необходимости.