# SDN в Proxmox VE: зоны, VNet и VLAN на практике

> Как настроить SDN в Proxmox VE: типы зон, создание VNet, привязка VLAN и проверка сети между виртуальными машинами.

Классический сетевой мост в 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**. Порядок действий:

1. Создайте зону типа VLAN, укажите физический мост-аплинк, например `vmbr0`.
2. Добавьте VNet с произвольным именем и номером VLAN tag, например 120.
3. Примените изменения кнопкой Apply — конфигурация разойдётся на все узлы кластера.
4. Привяжите 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](https://www.zevshost.net/ru/kb/proxmox-firewall/) на уровне узла и виртуальной машины — он может блокировать трафик между сетями по умолчанию.

## SDN и кластер: что важно на нескольких узлах

Конфигурация SDN хранится в общей базе `/etc/pve` и одинакова для всех узлов [кластера Proxmox VE](https://www.zevshost.net/ru/kb/proxmox-cluster-nastroika/), но физический аплинк-интерфейс на каждом узле нужно назвать одинаково — иначе применение зоны завершится ошибкой на узлах с другим именем моста. Перед миграцией VM между узлами убедитесь, что VNet присутствует и активна на обоих.

## Чек-лист внедрения SDN

- Зона и VNet созданы, конфигурация применена без ошибок на всех узлах.
- Порт коммутатора переведён в режим trunk с нужными VLAN ID.
- Связность между VM в одной VNet подтверждена пингом и ARP-таблицей.
- Правила файрвола не блокируют трафик внутри новой сети без явной необходимости.

---

Источник: https://www.zevshost.net/ru/kb/proxmox-sdn-seti/
