Маршрутизация между виртуальными машинами внутри одного гипервизора заменяет физические маршрутизаторы и коммутаторы. Это решение экономит оборудование, повышает гибкость управления сетью и позволяет быстро разворачивать изолированные сегменты для тестовых, рабочих сред или DMZ. В этом руководстве вы получите проверенные инструкции по настройке виртуального маршрутизатора в трёх основных гипервизорах 2026 года: VMware ESXi, Proxmox VE и KVM. Все примеры адаптированы под актуальные версии ПО и включают конкретные команды для немедленного применения.
Что настроим по шагам:
- разобьём сеть на изолированные сегменты VLAN и соберём VLAN trunk;
- настроим NAT для виртуальных машин и IP-форвардинг на виртуальном роутере;
- разберём конфиги под vSwitch, Linux Bridge и OVS в трёх гипервизорах;
- продиагностируем типовые сбои маршрутизации и пройдём чек-лист перед продакшеном.
Зачем нужна маршрутизация внутри гипервизора и какие задачи она решает
Виртуальный маршрутизатор - это выделенная виртуальная машина с включённым IP-форвардингом, которая управляет трафиком между сетевыми сегментами. Он решает несколько практических задач без покупки дополнительного железа. Изоляция тестового и рабочего контуров через VLAN предотвращает случайное влияние экспериментов на продакшен-сервисы. Создание DMZ для веб-серверов обеспечивает их доступ из интернета, одновременно защищая внутреннюю сеть. Организация выхода в интернет для ВМ, у которых нет прямого доступа к физическому шлюзу, упрощает сетевое администрирование — именно здесь и нужен NAT для виртуальных машин. Этот подход даёт полный контроль над политиками маршрутизации и фаервола на уровне виртуальной инфраструктуры.
Общая архитектура решения: виртуальный маршрутизатор как ядро
Архитектура строится вокруг одной ключевой ВМ, выполняющей функции роутера. Физический сетевой интерфейс гипервизора подключается к виртуальному коммутатору (vSwitch в ESXi, Linux Bridge или OVS в Proxmox/KVM). На этом коммутаторе создаются изолированные сегменты, часто помеченные тегами VLAN. Виртуальный маршрутизатор получает несколько виртуальных сетевых карт, каждая из которых привязана к своему сегменту или VLAN. На этой ВМ настраивается IP-адресация на каждом интерфейсе, включается IP-форвардинг и конфигурируются правила iptables/nftables для маршрутизации и трансляции адресов (NAT). Остальные виртуальные машины используют IP-адрес соответствующего интерфейса маршрутизатора в качестве шлюза по умолчанию.
Настройка виртуальных сетей и маршрутизации в VMware ESXi
В этом разделе: создание vSwitch → Port Groups для VLAN → развёртывание ВМ-роутера с IP-форвардингом и NAT.
В VMware ESXi сетевая изоляция и подготовка к маршрутизации выполняются через vSphere Client или ESXi Shell. Основной инструмент - стандартный или распределённый виртуальный коммутатор (vSwitch).
Создание и конфигурация vSwitch и Port Groups для VLAN
Сначала создайте новый vSwitch или используйте существующий. В vSphere Client перейдите в раздел Networking, выберите хост, нажмите Add networking. Тип подключения - Virtual Machine Port Group. Выберите созданный vSwitch. На этапе настройки сети задайте имя Port Group, например, VLAN-10-MGMT. Критический параметр - VLAN ID. Укажите значение, соответствующее вашему сегменту, например, 10. Для режима trunk, где один порт будет передавать несколько VLAN, установите VLAN ID в 4095 (All). Физический адаптер (uplink) должен быть настроен в режиме trunk на подключённом физическом коммутаторе. Повторите создание Port Group для каждого необходимого VLAN.
Развертывание и настройка виртуального маршрутизатора на ВМ
Создайте новую виртуальную машину. В качестве гостевой ОС выберите дистрибутив Linux, например, Debian 13 или Ubuntu 24.04 LTS. На шаге настройки сети добавьте несколько сетевых адаптеров (vNIC). Для каждого адаптера выберите в качестве сети соответствующий Port Group, созданный ранее. После установки ОС настройте сетевые интерфейсы в файле /etc/network/interfaces или с помощью netplan. Пример для интерфейса в VLAN 10:
auto ens192
iface ens192 inet static
address 192.168.10.1
netmask 255.255.255.0
vlan-raw-device ens192
Установите необходимые пакеты: apt install iptables-persistent nftables iproute2. Включите IP-форвардинг, добавив в /etc/sysctl.conf строку net.ipv4.ip_forward=1 и выполнив sysctl -p. Настройте правила NAT для выхода в интернет через физический интерфейс гипервизора: iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE.
Организация маршрутизации в Proxmox VE: Linux Bridge и Open vSwitch
В этом разделе: VLAN-aware Linux Bridge → Open vSwitch → VLAN-тегирование сетевых устройств ВМ.
Proxmox VE предлагает два основных метода организации сетей для маршрутизации: классический Linux Bridge и более функциональный Open vSwitch. Выбор зависит от требуемой сложности.
Классический способ: настройка VLAN на Linux Bridge
Самый простой метод - использовать VLAN-aware мост. В веб-интерфейсе Proxmox откройте Node -> System -> Network. Отредактируйте существующий мост vmbr0. В разделе VLAN aware поставьте галочку. Теперь при создании виртуальной машины в настройках сетевого устройства можно указать VLAN Tag, например, 20. Для виртуального маршрутизатора добавьте несколько сетевых устройств, каждое с уникальным VLAN Tag. Конфигурация моста в файле /etc/network/interfaces будет выглядеть так:
auto vmbr0
iface vmbr0 inet static
address 10.0.0.2/24
gateway 10.0.0.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
Продвинутый сценарий: маршрутизация с использованием Open vSwitch
Для сложных сетей с поддержкой VXLAN, QoS или программных правил лучше использовать Open vSwitch. Установите пакет: apt install openvswitch-switch. Удалите стандартный мост vmbr0 и создайте OVS Bridge через интерфейс или командой:
ovs-vsctl add-br vmbr0-ovs ovs-vsctl add-port vmbr0-ovs eno1
В веб-интерфейсе Proxmox создайте новый мост Linux Bridge с произвольным именем, но в его конфигурации укажите ovs_bridge vmbr0-ovs и ovs_type internal. Это создаст внутренний порт на OVS-бридже. Управление VLAN теперь осуществляется командами OVS, например, ovs-vsctl set port vnet0 tag=30. Этот подход обеспечивает лучшую масштабируемость для сред с большим количеством VLAN или требующих SDN.
Конфигурация сетей и маршрутизации в KVM (на базе Libvirt)
В этом разделе: встроенные сети nat и routed в libvirt → ручная сборка Linux Bridge → выделенная ВМ-роутер.
В среде KVM с управлением через libvirt можно использовать как встроенные сетевые фильтры, так и ручную настройку с Linux Bridge для полного контроля.
Использование встроенных сетевых фильтров Libvirt (NAT, Routed)
Libvirt предоставляет предопределённые типы виртуальных сетей. Для быстрого развёртывания можно создать сеть типа nat или routed. Создайте XML-файл сети, например, routed-network.xml:
<network> <name>routed-net</name> <forward mode='route'/> <bridge name='virbr1' stp='on' delay='0'/> <ip address='192.168.200.1' netmask='255.255.255.0'> </ip> </network>
Определите и активируйте сеть: virsh net-define routed-network.xml, virsh net-start routed-net, virsh net-autostart routed-net. Виртуальные машины, подключённые к этой сети, смогут общаться друг с другом, а трафик за её пределы будет маршрутизироваться хостом. Для маршрутизации между несколькими такими изолированными сетями потребуется дополнительная настройка правил iptables на хосте или использование отдельной ВМ-роутера, подключённой ко всем сетям.
Ручная настройка с Linux Bridge и выделенной ВМ-роутером
Этот метод даёт максимальную гибкость. Создайте bridge-интерфейс на хосте, используя netplan или systemd-networkd. Пример конфигурации /etc/netplan/01-bridge.yaml:
network:
version: 2
ethernets:
eno1:
dhcp4: no
bridges:
br0:
interfaces: [eno1]
addresses: [10.0.0.10/24]
routes:
- to: default
via: 10.0.0.1
nameservers:
addresses: [8.8.8.8]
parameters:
stp: false
forward-delay: 0
Параметр gateway4 в актуальных версиях netplan помечен как устаревший — маршрут по умолчанию теперь задают через секцию routes, как в примере выше.
Примените настройки: netplan apply. В XML-конфигурации каждой виртуальной машины, включая ВМ-роутер, укажите этот мост как источник сети:
<interface type='bridge'> <mac address='52:54:00:xx:xx:xx'/> <source bridge='br0'/> <model type='virtio'/> </interface>
На виртуальном маршрутизаторе настройте несколько IP-адресов на одном физическом интерфейсе с помощью алиасов или отдельных vNIC, подключённых к тому же мосту br0, но с разными MAC-адресами. Далее настройка маршрутизации и фаервола выполняется внутри этой ВМ, как описано в разделе про ESXi.
Типовые проблемы при настройке и их решение
Большинство сбоев при настройке маршрутизации между виртуальными машинами сводится к четырём сценариям. Проверяйте их в порядке, приведённом ниже. Если нужен системный разбор на стороне Linux-хоста, начните с диагностики проблем маршрутизации: ip route, traceroute и tcpdump.
| Симптом | Вероятная причина | Команда проверки |
|---|---|---|
| Трафик не проходит между сегментами | Выключен IP-форвардинг на ВМ-роутере | sysctl net.ipv4.ip_forward |
| ВМ в одном VLAN не видят друг друга | Рассинхронизация VLAN-тегов на хосте и в ВМ | tcpdump -i any -e -n vlan |
| Нет выхода в интернет через NAT | Нет правила MASQUERADE или форвардинг блокирует фаервол хоста | iptables -t nat -L -v -n |
| После настройки OVS в Proxmox пропала связь | Uplink добавлен как bridge-порт вместо OVS-порта | ovs-vsctl show |
Трафик не проходит между сегментами: выключен IP-форвардинг
Проблема: трафик не проходит между сегментами, хотя IP-адреса назначены правильно. Решение: проверьте, включён ли IP-форвардинг на виртуальном маршрутизаторе: sysctl net.ipv4.ip_forward. Должно вернуть 1. Если нет, включите его и перезагрузите сеть.
ВМ в одном VLAN не видят друг друга: рассинхронизация тегов
Проблема: ВМ в одном VLAN не видят друг друга. Решение: убедитесь, что теги VLAN совпадают на всех уровнях - на Port Group в ESXi, в настройках интерфейса ВМ и на физическом коммутаторе, к которому подключён хост. Используйте tcpdump -i vSwitch0 -e -n vlan на ESXi или tcpdump -i any -e -n vlan на Linux-хосте, чтобы проверить наличие тегов в пакетах.
Нет выхода в интернет через NAT: проверьте MASQUERADE и фаервол хоста
Проблема: нет выхода в интернет из ВМ через NAT. Решение: проверьте правила iptables/nftables на маршрутизаторе. Должно быть правило MASQUERADE для исходящего интерфейса. Убедитесь, что на хосте гипервизора фаервол (например, UFW или firewalld) не блокирует форвардинг. Команда для диагностики: iptables -t nat -L -v -n.
После настройки OVS в Proxmox пропала связь
Проблема: после настройки OVS в Proxmox пропала связь. Решение: проверьте, что физический интерфейс добавлен в OVS-бридж как порт, а не как bridge-порт в классическом понимании. Используйте ovs-vsctl show для проверки топологии.
Сравнение подходов: какой гипервизор и метод выбрать в 2026 году
Выбор зависит от требований к стабильности, бюджету, контролю и функциональности.
- VMware ESXi подходит для корпоративных продакшен-сред, где критичны стабильность, глубокая интеграция с экосистемой vSphere и наличие официальной поддержки. Настройка через vSphere Client стандартизирована и хорошо документирована. Стоимость лицензий - основной ограничивающий фактор.
- Proxmox VE - оптимальный выбор для универсальных развёртываний, от домашних лабораторий до инфраструктуры среднего бизнеса. Бесплатная open-source модель, удобный веб-интерфейс и поддержка двух технологий (Linux Bridge и OVS) дают гибкость. Для базовых задач хватит VLAN-aware моста, для сложных SDN-сценариев - Open vSwitch.
- KVM/Libvirt обеспечивает максимальный контроль над каждым аспектом конфигурации. Это решение для специалистов, которые предпочитают управление через CLI, XML-конфигурации и тонкую настройку производительности. Идеально для хостинг-провайдеров, высоконагруженных сред и случаев, когда гипервизор - часть более сложной автоматизированной инфраструктуры, управляемой через IaC-инструменты вроде Terraform или Ansible.
В 2026 году тренд сохраняется в сторону большей интеграции программно-определяемых сетей (SDN) даже в бесплатные платформы, а также использования eBPF для высокопроизводительной фильтрации и маршрутизации трафика на уровне ядра, что открывает новые возможности для виртуальных сетей. Подробнее об этом — в материале про программно-определяемую маршрутизацию: SDN, eBPF и Cilium на практике.
Краткие итоги
- Ядро схемы — виртуальный маршрутизатор с несколькими vNIC, включённым IP-форвардингом (net.ipv4.ip_forward=1) и правилом MASQUERADE в цепочке POSTROUTING.
- VLAN-сегментация: в ESXi достаточно Port Groups с нужным VLAN ID, в Proxmox VE — VLAN-aware Linux Bridge (bridge-vlan-aware yes); для VXLAN, QoS и SDN-задач берите Open vSwitch.
- Порядок диагностики: совпадение VLAN-тегов на всех уровнях → IP-форвардинг → правила nat → фаервол гипервизора (UFW, firewalld).
- KVM/Libvirt даёт максимальный контроль: сети nat и routed создаются парой команд, но маршрутизация между несколькими изолированными сетями требует либо правил на хосте, либо отдельной ВМ-роутера.
Что проверить перед продакшеном
- IP-форвардинг включён и переживёт перезагрузку. Убедитесь, что net.ipv4.ip_forward=1 прописан в /etc/sysctl.conf, а не выставлен только в runtime.
- NAT привязан к правильному интерфейсу. Правило MASQUERADE в цепочке POSTROUTING должно указывать на внешний uplink, а не на внутренний сегмент, и сохраняться после reboot (iptables-persistent или nftables).
- VLAN-теги совпадают на всех уровнях. Port Group в ESXi, tag в OVS, bridge-vids в Proxmox и VLAN trunk на физическом коммутаторе должны ссылаться на один и тот же ID.
- Фаервол хоста пропускает FORWARD. UFW или firewalld по умолчанию могут блокировать форвардинг — проверьте цепочку FORWARD и разрешите нужные потоки явно.
- Доступ к management-интерфейсу сохранён. Перед правками OVS или bridge убедитесь, что у вас есть альтернативный доступ к MGMT-интерфейсу и SSH не отвалится при перезапуске сети.
Смежные материалы по теме: настройка и диагностика сетей в Linux: интерфейсы, IP-адреса и управление трафиком, маршрутизация на L2: коммутация, VLAN и MAC-адресация, сетевая диагностика и устранение неполадок, Docker и nftables: firewall без потери SSH-доступа и с DNAT, СХД для виртуализации под VMware и Proxmox.