Установка и настройка vyOS на KVM
Введение
vyOS — это свободная и открытая платформа маршрутизатора и брандмауэра на базе Debian Linux. Она работает в виртуализации и облаках (KVM, VMware, Proxmox, Hyper-V, Xen и др.) и предоставляет маршрутизацию, брандмауэр, VPN и сетевые сервисы программно.
Кому полезно это руководство: сисадминам, инженерам по сетям, специалистам по виртуализации и тем, кто хочет создать виртуальный маршрутизатор в KVM-среде.
Ключевые термины:
- vyOS — свободная сетевого программная платформа (маршрутизатор/фаервол).
- KVM — гипервизор на Linux для аппаратной виртуализации.
- NAT masquerade — способ исходящего преобразования адресов для доступа внутренней сети в интернет.
Что вы получите после выполнения руководства
- Рабочая VM с vyOS на KVM.
- Интерфейсы WAN и LAN, работающий исходящий NAT.
- Локальный DNS-форвардер для клиентов.
- Клиент Ubuntu с статическим IP, прошедший проверку доступа в интернет.
Important: перед началом убедитесь, что у вас есть ISO vyOS, права на создание виртуальных машин на хосте KVM и резервные точки восстановления для важных рабочих сред.
Требования
- Linux-система с включённой виртуализацией KVM.
- ISO-образ vyOS.
- Клиентская Linux-машина (в примере — Ubuntu 20.04).
- Учетная запись с правами администратора на хосте KVM.
Факты и числа (Fact box)
- Минимум RAM для простого роутера: 512–1024 МБ.
- Рекомендованное дисковое пространство: от 2 ГБ для базовой установки.
- Типичная схема: 1 WAN-интерфейс + 1 LAN-интерфейс для лабораторных целей.
Создание виртуальной машины vyOS (virt-manager)
Следуйте шагам в интерфейсе virt-manager или эквивалентным командам CLI (virt-install). В этом руководстве используется GUI virt-manager.
- Откройте virt-manager и создайте новую виртуальную машину.
- Выберите установку из ISO-образа и нажмите “Forward” (Далее).

- Укажите ISO vyOS и в качестве ОС выберите Debian 11 (совместимость), далее — “Forward”.

- Укажите объём оперативной памяти и количество vCPU (например 1–2 vCPU, 1–2 ГБ ОЗУ для простых сценариев) и нажмите “Forward”.

- Укажите размер диска для установки (рекомендуется минимум 2 ГБ) и нажмите “Forward”.

- Задайте имя виртуальной машины, например “vyos”, выберите сетевой источник по умолчанию (default NAT) и завершите создание.

Вы создали VM для vyOS.
Установка vyOS
- Запустите созданную виртуальную машину. В меню загрузки выберите Live (amd64-vyos) и нажмите Enter.

- После загрузки выполните вход под пользователем vyos с пустым паролем (enter).

- Запустите установку образа на диск:
install imageПри установке следуйте подсказкам:
- Подтвердите клавишей Enter.
- Для разметки диска используйте Auto (Enter).
- Подтвердите установку на выбранный диск.

- При конфигурации установщика подтвердите уничтожение разделов (Yes), оставьте корневой раздел по умолчанию, имя образа по умолчанию, и установите пароль для пользователя vyos. Используйте надёжный пароль.

- Установите загрузчик GRUB (установщик автоматически найдёт диск, например /dev/vda) и подтвердите Enter.

- После завершения перезагрузите VM командой reboot.

- Войдите уже на установленной системе под пользователем vyos и вашим паролем.

Добавление дополнительного сетевого интерфейса в KVM
В примере мы добавляем внутреннюю изолированную сеть “internal” с диапазоном 192.168.50.0/24 и включённым DHCP для части диапазона.
- В настройках сети virt-manager создайте новую сеть:
- Name: internal
- Mode: Isolated
- IPv4 Network: 192.168.50.0/24
- DHCPv4 Start - End: 192.168.50.128 - 192.168.50.254

- Выключите VM vyOS, откройте свойства VM -> Add Hardware -> Network и добавьте интерфейс, выбрав Network source = internal: Isolated network.

- Запустите VM для дальнейшей настройки внутри vyOS.
Первичная настройка vyOS
Войдите в систему под пользователем vyos и перейдите в режим конфигурации:
configureПросмотрите доступные интерфейсы:
ip aОжидаемый пример: eth0 (WAN), eth1 (LAN).

Выбор ролей интерфейсов: WAN и LAN
Определите, какой интерфейс будет внешним (EXTERNAL/WAN), а какой — внутренним (INTERNAL/LAN). В примере:
- eth0 — EXTERNAL/WAN
- eth1 — INTERNAL/LAN
Mermaid-диаграмма для принятия решения (какой интерфейс назначить):
flowchart TD
A[Интерфейсы в системе] --> B{Есть внешний шлюз KVM host?}
B -- Да --> C[Выбрать интерфейс, подключённый к NAT/внешней сети как WAN]
B -- Нет --> D[Использовать NAT-сеть хоста как WAN или проброс портов]
C --> E[Оставшийся интерфейс: LAN]
D --> EНастройка eth0 как WAN
Пример статической настройки для eth0 и установки статического маршрута по умолчанию к хосту KVM (192.168.100.1):
set interfaces ethernet eth0 address 192.168.100.15/24
set protocols static route 0.0.0.0/0 next-hop 192.168.100.1
commit
save
После команды commit конфигурация применяется, save сохраняет её в конфигурационный файл для загрузки при старте.
Настройка eth1 как LAN
Настройка интерфейса eth1 для внутренней сети и добавление описания:
set interfaces ethernet eth1 address 192.168.50.10/24
set interfaces ethernet eth1 description LAN
commit
save
Настройка исходящего NAT (masquerade)
Чтобы машины в сети 192.168.50.0/24 имели доступ в интернет через eth0:
set nat source rule 100 source address 192.168.50.0/24
set nat source rule 100 outbound-interface eth0
set nat source rule 100 translation address masquerade
commit
save
Настройка DNS-форвардера
Настроим локальный DNS-форвардер на IP 192.168.50.10, который слушает запросы только от внутренней сети и пересылает их на публичные резолверы (Cloudflare и Google):
set service dns forwarding listen-address 192.168.50.10
set service dns forwarding allow-from 192.168.50.0/24
set service dns forwarding cache-size 0
commit
save
Добавьте форвардеры:
set service dns forwarding name-server 1.1.1.1
set service dns forwarding name-server 8.8.8.8
commit
save
Установите системный DNS внутри vyOS на локальный форвардер:
set system name-server 192.168.50.10
commit
save
Проверка сетевой конфигурации
Проверка связи наружу из vyOS:
run ping youtube.com count 3Если настройка правильная, вы увидите ответ от удаленного хоста.

Список интерфейсов и их состояния:
show interfaces
Просмотр правил NAT:
show nat source rules
Проверка службы DNS:
configure
show service dnsОжидаемый вывод: служба dns forwarding слушает 192.168.50.10 и использует 1.1.1.1 и 8.8.8.8 как форвардеры.

Настройка клиентской системы Ubuntu 20.04
На клиенте задайте статический IP и шлюз в сторону vyOS (192.168.50.10). В Ubuntu используются netplan-конфиги в /etc/netplan.
- Откройте файл конфигурации, например:
sudo nano /etc/netplan/01-netcfg.yaml- Вставьте конфигурацию статического IP (пример):
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: no
addresses: [192.168.50.100/24]
gateway4: 192.168.50.10
nameservers:
addresses: [192.168.50.10,1.1.1.1]
- Сохраните файл и примените изменения:
sudo netplan apply- Проверьте адрес и таблицу маршрутизации:
ip a
route -n
- Проверьте связь с vyOS:
ping 192.168.50.10 -c3
- Проверьте доступ в интернет:
ping 1.1.1.1 -c3
ping google.com -c3
Если всё настроено верно, клиент сможет успешно пинговать внешние адреса.
Тесты, критерии приёмки и тест-кейсы
Критерии приёмки:
- VM vyOS загружается и принимает логин vyos.
- eth0 имеет IP 192.168.100.15/24 и маршрут по умолчанию с next-hop 192.168.100.1.
- eth1 имеет IP 192.168.50.10/24.
- NAT правило 100 присутствует и для исходящего трафика выполняется masquerade на eth0.
- Служба DNS-форвардинга слушает на 192.168.50.10 и использует указанные форвардеры.
- Клиент с IP 192.168.50.100 имеет шлюз 192.168.50.10 и может выходить в интернет.
Примеры тест-кейсов:
- TC1: Проверить ping к 192.168.50.10 с клиента — ожидается ответ.
- TC2: Проверить ping к 1.1.1.1 и google.com с клиента — ожидается ответ.
- TC3: Выполнить tcpdump на eth0 и убедиться, что исходящие пакеты имеют source NAT.
Отладка и частые ошибки
Проблема: нет доступа в интернет с клиента. Проверки:
- ip a на vyOS — интерфейсы в нужных подсетях.
- show nat source rules — правило NAT присутствует.
- run ping 8.8.8.8 с vyOS — проверка доступа WAN от самого роутера.
- На хосте KVM проверьте, что сеть NAT или bridge правильно настроены и что указанный next-hop (192.168.100.1) отвечает.
- Используйте tcpdump на eth0 и eth1, чтобы отследить пакеты: sudo tcpdump -i eth0 icmp или port 53 для DNS.
Проблема: DNS не резолвится у клиента. Проверки:
- show service dns — убедиться, что слушающий адрес и allow-from корректны.
- Запустить dig/host через vyOS и клиента.
- Проверить, что форвардеры доступны (ping 1.1.1.1 с vyOS).
Резервное копирование и восстановление конфигурации
Сохранение конфигурации текущего vyOS:
configure
save /config/config.boot.backup
exitЧтобы восстановить конфигурацию, замените /config/config.boot и перезагрузите систему. Всегда сохраняйте копию перед изменениями.
Безопасность и рекомендации по хардэннингу
- Измените пароль пользователя vyos сразу после установки и используйте ключи SSH для доступа, если включаете SSH.
- Ограничьте доступ к консоли и API по ACL.
- Регулярно обновляйте гипервизор и планы резервного копирования.
- Для публичной среды используйте дополнительные правила firewall (stateful) и limit-rate для SSH.
- Разделяйте управление и пользовательский трафик на отдельные интерфейсы (out-of-band management).
Альтернативные подходы
- CLI-only установка с помощью virt-install и cloud-init (при автоматизации).
- Использование Proxmox/VMware вместо KVM при наличии соответствующей инфраструктуры.
- Настройка DHCP на vyOS вместо DHCP хоста KVM, если требуется централизованное управление адресами.
Роль-ориентированные чеклисты
Администратор виртуальной инфраструктуры (KVM host):
- Проверить доступность ISO.
- Создать сеть “internal” и проверить DHCP-пулы.
- Настроить правильные привилегии для virt-manager.
Сетевой инженер (vyOS):
- Установить IP адреса WAN/LAN.
- Настроить NAT и маршруты.
- Настроить DNS-форвардирование и проверить резолвинг.
Оператор (клиент):
- Настроить статический IP и DNS.
- Выполнить тестовые пинги и трассировки.
Чек-лист на финальную сдачу
- vyOS установлена и загружается.
- WAN и LAN интерфейсы настроены.
- NAT работает для исходящего трафика.
- DNS-форвардер работает и резолвит домены.
- Клиент с правильной конфигурацией выходит в интернет.
- Резервная копия конфигурации создана.
Команды-справочник (cheat sheet)
Просмотр конфигурации:
show configurationПрименение изменений:
configure
commit
save
exit Просмотр интерфейсов и NAT:
show interfaces
show nat source rulesДиагностика сети:
run ping
run traceroute Короткая галерея крайних случаев
- Если WAN доступен по DHCP — используйте
set interfaces ethernet eth0 address dhcp. - Если нужно пробросить порт из внешней сети — используйте
set nat destination rule. - Для IPSec/VPN используйте встроенные пакеты и шаблоны конфигурации vyOS.
Сопроводительная заметка по миграции
При переносе конфигурации между версиями vyOS: сравните синтаксис команд, используйте export конфигурации и тестируйте в тестовой среде. При миграции VM между хостами убедитесь, что имена интерфейсов не поменялись (этого можно избежать, привязав MAC-адреса).
Словарь — 1 строка
vyOS — open-source маршрутизатор на базе Debian; NAT masquerade — исходящая трансляция адресов; KVM — гипервизор Linux.
Заключение
Поздравляем — вы успешно установили и настроили vyOS в KVM: создали VM, настроили WAN/LAN, NAT и локальный DNS-форвардер, а также проверили подключение клиентской машины Ubuntu. Дальше можно расширять конфигурацию: добавить VPN, более детальные правила firewall, мониторинг и резервирование.
Краткий итог:
- vyOS устанавливается и управляется через CLI “configure/commit/save”.
- Для лабораторного роутинга достаточно 2 интерфейсов: eth0 (WAN) и eth1 (LAN).
- NAT masquerade и DNS-форвардер обеспечивают быстрый выход в интернет для внутренних ВМ.
Дополнительно: сохраните резервную копию конфигурации и документируйте изменения для воспроизводимости.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента