Здравия всем! В этой заметке расскажу как в Proxmox 7 настроить сетевые интерфейсы для работы виртуальных машин и контейнеров. Как настроить VLAN и пробросить его внутрь виртуальных машин и контейнеров. Создадим внутреннюю сеть без доступа во внешний мир.
Сетевой мост для виртуальных машин
Сетевой мост это режим виртуальные машины получают ip адрес из одной подсети с гипервизором и имеют в нее прямой доступ.
Если мы ставили Proxmox из дистрибутива, то бридж vmbr0 уже будет настроен. Если вы ставили вначале Debian 11, а потом сверху Proxmox, то эта инструкция для вас.
Откроем настройки сети для нашего Proxmox
Откроем наш текущий интерфейс, у меня это enp4s0f0.

И удалим текущие настройки сети

Смело нажимаем кнопку OK Proxmox не применяет сразу настройки. Создадим наш новый бридж

Перенесем настройки сети, самое главное, нужно в поле Порты сетевого моста указать имя нашего сетевого интерфейса, в моем случае это enp4s0f0

Проверяем внесенные изменения, и нажимаем кнопку Apply Configuration
На этом настройка сетевого бриджа закончена
Внутренняя сеть для виртуальных машин
Иногда нужно несколько виртуальных машин объединить в локальную сеть, при этом, эта сеть не должна иметь доступ во внешний мир. Создадим новый бридж

Применим настройки и все наш бридж готов. При этом его можно назначать виртуальным машинам, и он не имеет доступ во внешний мир
Настройка NAT для виртуальных машин
В данном режиме сети виртуальные машины получают ip адреса в своей виртуальной подсети, во внешнюю сеть выходят через гипервизор и настроенный на нем NAT. Этот часто применяется при аренде железного сервера, где количество ip адресов ограничено.
Создадим новый бридж

Применим настройки

Теперь откроем окно терминала
Добавляем в файл с новыми сетевыми настройками несколько строк:
mcedit /etc/network/interfaces.new
auto vmbr100
iface vmbr100 inet static
address 192.168.100.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
В первой строчке мы разрешили форвард пакетов между сетевыми интерфейсами. Без этого гипервизор не сможет работать в роли шлюза. Вторая и третья строка это правила iptables для настройки NAT.
Осталось перезагрузить сервер proxmox. Теперь назначаем этот бридж виртуальным машинам, прописываем на них ip адрес из сети 192.168.100.0/24, в качестве шлюза указываем ip адрес 192.168.100.1, днс провайдера и на виртуальных машинах будет доступ в интернет.
Настройка VLAN для виртуальных машин
Иногда на один физический порт приходит тегированный трафик. Для доступа виртуальных машин к этим сетям используем Linux VLAN.
В открывшемся окне в имя добавим наш VLAN, к примеру 10. Самое главное поле, это VLAN raw device, в котором мы указываем наш сетевой адаптер

Щелкаем создать и создается интерфейс vlan10

Теперь создадим сетевой bridge, в настройках Порты сетевого моста указываем только что созданный vlan10. Имя моста я для удобства ставлю как у VLAN.

Теперь надо применить внесенные изменения.

После этого этот бридж можно назначать виртуальным машинам.

Заключение
В данной заметке я описал все основные режимы работы сети, которые я использую. Есть еще различные режимы, к примеру, где гипервизор выступает в роли роутера, но мне проще поднять маленькую виртуалку, чем городить это на гипервизоре. Также я не рассмотрел такую вещь как bond, те объединение сетевых интерфейсов, для балансировки нагрузки. Это очень большая настройка, потому что сразу надо настраивать bond и на коммутаторе.
Как видим из заметки, чтобы виртуалки имели доступ к сети нужно создать сетевой мост — bridge. И в зависимости от настроек бриджа мы получаем различный результат. Чем хорошо proxmox, он все изменения не применяет сразу, а только после нажатия кнопки. Это дает возможность настраивать сеть, не имея прямого доступа к серверу.