Организация маршрутизации между виртуальными машинами внутри одного гипервизора заменяет физические маршрутизаторы и коммутаторы. Это решение экономит оборудование, повышает гибкость управления сетью и позволяет быстро разворачивать изолированные сегменты для тестовых, рабочих сред или DMZ. В этом руководстве вы получите проверенные инструкции по настройке виртуального маршрутизатора в трёх основных гипервизорах 2026 года: VMware ESXi, Proxmox VE и KVM. Все примеры адаптированы под актуальные версии ПО и включают конкретные команды для немедленного применения.
Зачем нужна маршрутизация внутри гипервизора и какие задачи она решает
Виртуальный маршрутизатор - это выделенная виртуальная машина с включенным IP-форвардингом, которая управляет трафиком между сетевыми сегментами. Он решает несколько практических задач без покупки дополнительного железа. Изоляция тестового и рабочего контуров через VLAN предотвращает случайное влияние экспериментов на продакшен-сервисы. Создание DMZ для веб-серверов обеспечивает их доступ из интернета, одновременно защищая внутреннюю сеть. Организация выхода в интернет для ВМ, у которых нет прямого доступа к физическому шлюзу, упрощает сетевое администрирование. Этот подход даёт полный контроль над политиками маршрутизации и фаервола на уровне виртуальной инфраструктуры.
Общая архитектура решения: виртуальный маршрутизатор как ядро
Архитектура строится вокруг одной ключевой ВМ, выполняющей функции роутера. Физический сетевой интерфейс гипервизора подключается к виртуальному коммутатору (vSwitch в ESXi, Linux Bridge или OVS в Proxmox/KVM). На этом коммутаторе создаются изолированные сегменты, часто помеченные тегами VLAN. Виртуальный маршрутизатор получает несколько виртуальных сетевых карт, каждая из которых привязана к своему сегменту или VLAN. На этой ВМ настраивается IP-адресация на каждом интерфейсе, включается IP-форвардинг и конфигурируются правила iptables/nftables для маршрутизации и трансляции адресов (NAT). Остальные виртуальные машины используют IP-адрес соответствующего интерфейса маршрутизатора в качестве шлюза по умолчанию.
Настройка виртуальных сетей и маршрутизации в VMware ESXi
В 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 12 или Ubuntu 22.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
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)
В среде 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]
gateway4: 10.0.0.1
nameservers:
addresses: [8.8.8.8]
parameters:
stp: false
forward-delay: 0
Примените настройки: 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.
Типовые проблемы при настройке и их решение
Проблема: трафик не проходит между сегментами, хотя IP-адреса назначены правильно. Решение: проверьте, включён ли IP-форвардинг на виртуальном маршрутизаторе: sysctl net.ipv4.ip_forward. Должно вернуть 1. Если нет, включите его и перезагрузите сеть.
Проблема: ВМ в одном VLAN не видят друг друга. Решение: убедитесь, что теги VLAN совпадают на всех уровнях - на Port Group в ESXi, в настройках интерфейса ВМ и на физическом коммутаторе, к которому подключён хост. Используйте tcpdump -i vSwitch0 -e -n vlan на ESXi или tcpdump -i any -e -n vlan на Linux-хосте, чтобы проверить наличие тегов в пакетах.
Проблема: нет выхода в интернет из ВМ через NAT. Решение: проверьте правила iptables/nftables на маршрутизаторе. Должно быть правило MASQUERADE для исходящего интерфейса. Убедитесь, что на хосте гипервизора фаервол (например, UFW или firewalld) не блокирует форвардинг. Команда для диагностики: iptables -t nat -L -v -n.
Проблема: после настройки 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 для высокопроизводительной фильтрации и маршрутизации трафика на уровне ядра, что открывает новые возможности для виртуальных сетей.