Подробный гайд: Настройка сети для виртуальной машины в KVM на Astra Linux 1.8

Подробная инструкция: настройка сети для ВМ в KVM на Astra Linux 1.8. Режимы NAT и Bridge, libvirt, virt-manager, диагностика

2026.04.28                  


Подробный гайд: Настройка сети для виртуальной машины в KVM на Astra Linux 1.8Подробный гайд: Настройка сети для виртуальной машины в KVM на Astra Linux 1.8 Данный гайд описывает настройку сети для ВМ через libvirt + KVM в Astra Linux 1.8. Рассматриваются два основных режима: NAT (изолированная сеть с выходом в интернет) и Bridge (прямое подключение к физической сети хоста). Инструкция ориентирована на терминал, но также включает рекомендации для графического утилиты virt-manager.

Важно:

Изменение сетевых настроек хоста может привести к потере SSH-доступа. Всегда работайте через физическую консоль или имейте резервный канал управления. Перед редактированием конфигов делайте резервные копии.


1. Проверка и установка необходимых пакетов

Astra Linux 1.8 базируется на Debian 10/11, поэтому используются стандартные утилиты виртуализации.

sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
sudo systemctl enable --now libvirtd
sudo systemctl enable --now virtlogd

Проверьте, что модуль KVM загружен и у вас есть доступ к /dev/kvm:

kvm-ok
# или
ls -l /dev/kvm

Добавьте пользователя в группу libvirt (чтобы не использовать sudo для каждой команды):

sudo usermod -aG libvirt $(whoami)
newgrp libvirt

2. Выбор типа сети

Режим Описание Когда использовать
NAT (default) ВМ получает IP из диапазона 192.168.122.0/24. Доступ наружу есть, входящие соединения закрыты (требуется проброс портов). Тестирование, изолированные среды, нет доступа к физической сети.
Bridge (br0) ВМ подключается к физическому сегменту сети как отдельный хост. Получает IP от DHCP роутера или задаётся статически. Серверы, требующие прямого доступа из локальной сети, кластеры, проброс портов не нужен.

3. Настройка NAT (режим по умолчанию)

Libvirt уже создаёт сеть default.

Проверьте:

virsh net-list --all

Если default в статусе inactive, запустите:

virsh net-start default
virsh net-autostart default

В этом режиме ничего настраивать на хосте не нужно. При создании ВМ просто укажите сеть default.


4. Настройка Bridge (прямое подключение к физической сети)

4.1. Определите физический интерфейс

ip -br a
# Пример вывода:
# eth0             UP             192.168.1.50/24 ...

Запомните имя интерфейса (например, eth0 или enp3s0).

4.2. Создайте мост через libvirt (рекомендуемый способ)

Libvirt умеет управлять мостами без ручного правки конфигов ОС.

1. Создайте XML-описание сети:
<network>
  <name>br0-network</name>
  <forward mode='bridge'/>
  <bridge name='br0'/>
</network>

Сохраните в /tmp/br0-net.xml.

2. Зарегистрируйте и запустите сеть:
virsh net-define /tmp/br0-net.xml
virsh net-start br0-network
virsh net-autostart br0-network
3. Подключите физический интерфейс к мосту:
sudo ip link set eth0 master br0
sudo ip link set eth0 up
sudo ip link set br0 up

Примечание для Astra Linux 1.8 SE:

  • Если включён мандатный контроль доступа (Parsec/MAC), убедитесь, что у libvirtd и qemu есть права на управление сетевыми интерфейсами. Обычно это решается установкой пакета astra-kvm-support или настройкой контекстов через fly-admin-kvm.

4.3. Альтернатива: ручной мост через NetworkManager (если используется)

sudo nmcli connection add type bridge ifname br0 con-name br0
sudo nmcli connection add type bridge-slave ifname eth0 master br0
sudo nmcli connection up br0

4.4. Проверка моста

ip -br a
brctl show
# br0 должен содержать eth0 и иметь UP-статус

5. Подключение сети к виртуальной машине

Через CLI (virsh)

1. Отредактируйте конфиг ВМ:
virsh edit <имя_вм>
2. Найдите секцию <interface> и замените её:
Для NAT:
<interface type='network'>
  <mac address='52:54:00:xx:xx:xx'/>
  <source network='default'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Для Bridge:
<interface type='network'>
  <mac address='52:54:00:xx:xx:xx'/>
  <source network='br0-network'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
3. Сохраните и перезапустите ВМ:
virsh destroy <имя_вм>  # если запущена
virsh start <имя_вм>

Через virt-manager (GUI)

  1. Откройте virt-manager → выберите ВМ → OpenShow virtual hardware details.
  2. Add HardwareNetwork.
  3. В Network source выберите default (NAT) или br0-network (Bridge).
  4. Device model: virtio (рекомендуется).
  5. Apply → перезапустите ВМ.

6. Настройка сети внутри гостевой ОС (Astra Linux / Debian-based)

Если используется DHCP (NAT или Bridge с DHCP-сервером в сети)

Обычно настраивается автоматически.

Проверьте:
ip a
ping -c 3 8.8.8.8

Если нужен статический IP

Отредактируйте /etc/network/interfaces или используйте netplan/NetworkManager внутри ВМ.

Пример для ifupdown:
auto eth0
iface eth0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4
Примените:
sudo systemctl restart networking
# или
sudo ifdown eth0 && sudo ifup eth0

7. Диагностика и типичные проблемы

Симптом Возможная причина Решение
ВМ не получает IP DHCP не работает / мост не поднят virsh net-dhcp-leases default, проверьте brctl show
Нет интернета в NAT iptables/nftables блокирует форвардинг sudo iptables -L -v -n, проверьте net.ipv4.ip_forward=1
Bridge не работает Физический интерфейс не добавлен в мост ip link set eth0 master br0, проверьте VLAN/802.1Q
Ошибка failed to create bridge Конфликт имён / нет прав sudo ip link delete br0, проверьте journalctl -u libvirtd
Медленная сеть Используется e1000 вместо virtio В XML ВМ замените <model type='e1000'/> на <model type='virtio'/>
Полезные команды диагностики:
virsh net-list --all
virsh net-info default
brctl show
ip route show
journalctl -u libvirtd -f
ping -I br0 8.8.8.8  # проверка моста с хоста

Особенности Astra Linux 1.8

1. Репозитории:
  • Пакеты KVM берутся из официальных репозиториев Astra (/etc/apt/sources.list.d/astra.list). Не подключайте сторонние Debian-репы без необходимости.
2. Безопасность (Parsec/MAC):
  • В редакции Special Edition (SE) включён мандатный контроль доступа. Для работы KVM могут потребоваться:
   sudo astra-kvm-init
   sudo systemctl restart libvirtd

Если ВМ не стартует с ошибкой доступа к сети, проверьте контексты: pdpl-info -l | grep qemu.

3. Графические утилиты:
  • В Astra предустановлен fly-admin-kvm и fly-admin-net. Они упрощают настройку, но под капотом используют те же libvirt/virsh.
4. Файрвол:
  • По умолчанию может быть активен ufw или nftables.
Убедитесь, что разрешён трафик через virbr0/br0:
   sudo ufw allow in on virbr0
   sudo ufw allow in on br0

Итоговый чек-лист

  • [ ] libvirtd запущен и добавлен в автозагрузку
  • [ ] Сеть default (NAT) активна или создан br0-network (Bridge)
  • [ ] Физический интерфейс добавлен в мост (для Bridge)
  • [ ] В ВМ используется модель virtio
  • [ ] Внутри ВМ настроен IP/DHCP
  • [ ] Файрвол не блокирует трафик
  • [ ] В Astra SE применены инициализации KVM (astra-kvm-init)