Еще немного заметок по KVM/LibVirt

Как я собственно и обещал продолжаем разбираться с Libvirt/KVM, но уже на более глубоком уровне.

Создаем сетевой мост при помощи NetPlan

Для интеграции виртуальных машин в локальную сеть организации будем использовать сетевой мост который в современных дистрибутивах Ubuntu создается при помощи NetPlan.

По умолчанию всему нашими настройками на десктопе управляет Network Manager.

# cat /etc/netplan/01-network-manager-all.yaml 
# This file was written by calamares.
# Let NetworkManager manage all devices on this system.
# For more information, see netplan(5).
network:
  version: 2
  renderer: NetworkManager

Перепишем таким образом, чтобы мы управляли параметрами сети вручную. И переключаемся с Network Manager на systemd-networkd.

# systemctl enable systemd-networkd

Конфигурация с мостом.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp7s0:
      dhcp4: no
  bridges:
    vbridge-1:
      dhcp4: yes
      interfaces:
        - enp7s0

Проверяем корректность настроек.

# netplan try --config-file ./01-network-manager-all.yaml

После применения настроек у нас появляется сетевой мост.

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master vbridge-1 state UP group default qlen 1000
    link/ether a8:a1:59:06:37:e4 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::b0ea:88ec:dfac:cf82/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: vbridge-1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 1e:aa:4e:c7:43:dd brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.117/24 metric 100 brd 192.168.3.255 scope global dynamic vbridge-1
       valid_lft 572sec preferred_lft 572sec
    inet6 fe80::1caa:4eff:fec7:43dd/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever

Отключаем Network Manager так как он нам больше не нужен.

# systemctl disable NetworkManager.service
# systemctl disable NetworkManager-wait-online.service
# systemctl stop NetworkManager.service
# systemctl stop NetworkManager-wait-online.service

Получаем список зарегистрированных сетей LibVirt при помощи утилиты virsh.

# virsh net-list --all

Смотрим XML-описание нашей сети default.

$ virsh net-dumpxml default
<network>
  <name>default</name>
  <uuid>f5e8be56-0747-48de-8c85-3d098c68347b</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:9a:f3:61'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

Как мы видим это и есть наша NAT-сеть. Создаем XML-описание сети типа мост bridge.xml.

<network>
    <name>main-bridge</name>
    <forward mode="bridge" />
    <bridge name="vbridge-1" />
</network>

Применяем описание сети, ставим на автостарт и запускаем.

$ virsh net-define ./bridge.xml
$ virsh net-start main-bridge
$ virsh net-autostart main-bridge

Основы работы с утилитой Virsh

Список всех виртуальных машин (включая отключенные).

# virsh list --all
 Id   Name                     State
-----------------------------------------
 -    srv-remoteapp-01         shut off
 -    srv-remoteapp-01-clone   shut off

Подробная информация о виртуальной машине.

# virsh dominfo srv-remoteapp-01-clone
Id:             -
Name:           srv-remoteapp-01-clone
UUID:           981248c6-7d00-4add-84a3-41cbd501b4f3
OS Type:        hvm
State:          shut off
CPU(s):         2
Max memory:     4194304 KiB
Used memory:    4194304 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: apparmor
Security DOI:   0

Старт-стоп-перезагрузка виртуальной машины.

# virsh start srv-remoteapp-01-clone
# virsh shutdown srv-remoteapp-01-clone
# virsh reboot srv-remoteapp-01-clone

Принудительная остановка (по питанию).

$ virsh destroy srv-remoteapp-01-clone

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

$ virt-viewer srv-remoteapp-01-clone
virt-viewer утилита для подключения к консоли гостевых VM

Установка флага автозапуска виртуальной машины при загрузке.

$ virsh autostart vadersrv-remoteapp-01-clone

Похожие записи

Интеграция Nextcloud с Keycloak через OpenID Connect: пошаговое руководство по настройке SSO

Nextcloud — отличное решение для хранения файлов, но управление пользователями вручную становится головной болью при масштабировании. Keycloak позволяет централизовать аутентификацию, обеспечивая безопасность, поддержку MFA (двухфакторной аутентификации) и удобный вход через…

Установка и оптимизация WordPress на Ubuntu 24.04 (LEMP + Redis) на VPS с ограниченным объёмом RAM

Пакеты в Ubuntu по умолчанию настроены на работу с серверами, имеющими довольно много оперативной памяти. Нам нужно жёстко ограничить потребление памяти для работы на Mikro VPS. Запускать будем мой блог…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Интеграция Nextcloud с Keycloak через OpenID Connect: пошаговое руководство по настройке SSO

Интеграция Nextcloud с Keycloak через OpenID Connect: пошаговое руководство по настройке SSO

Установка и оптимизация WordPress на Ubuntu 24.04 (LEMP + Redis) на VPS с ограниченным объёмом RAM

Установка и оптимизация WordPress на Ubuntu 24.04 (LEMP + Redis) на VPS с ограниченным объёмом RAM

Интеграция Gitea и Keycloak: пошаговое руководство

Интеграция Gitea и Keycloak: пошаговое руководство

Настройка VS Code AI Chat для работы со сторонним OpenAI провайдером.

Настройка VS Code AI Chat для работы со сторонним OpenAI провайдером.

ProxyChains специфическая работа с прокси-серверами в UNIX/Linux-системах

ProxyChains специфическая работа с прокси-серверами в UNIX/Linux-системах

Полное руководство по установке и настройке мониторинга с Grafana и Prometheus: от установки до первого дашборда

Полное руководство по установке и настройке мониторинга с Grafana и Prometheus: от установки до первого дашборда