Подробный гайд: Настройка сети для виртуальной машины в 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)
- Откройте
virt-manager→ выберите ВМ →Open→Show virtual hardware details. Add Hardware→Network.- В
Network sourceвыберитеdefault(NAT) илиbr0-network(Bridge). Device model:virtio(рекомендуется).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)