Еще немного заметок по 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

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

Настройка взаимодействия RED ADM и Windows Active Directory

Сегодня проведем несколько экспериментов по настройке взаимодействия RED ADM и Windows Active Directory. Есть несколько способов настройки доверия для упрощения миграции с решений Microsoft на Российское ПО и сегодня их…

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Так как на севере делать абсолютно нечего, то я продолжаю заниматься саморазвитием 🙂 На этой неделе вспоминаю и углубляю свои знания в Docker. Лучший способ запомнить тему, это вести конспект…

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

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

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

Настройка взаимодействия RED ADM и Windows Active Directory

Настройка взаимодействия RED ADM и Windows Active Directory

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Установка основного контроллера домена на базе REDADM

Установка основного контроллера домена на базе REDADM

zVirt работа с шаблонами виртуальных машин

zVirt работа с шаблонами виртуальных машин

Подробная инструкция по работе с томами (volumes) в Docker

Подробная инструкция по работе с томами (volumes) в Docker

Сетевые возможности Docker

Сетевые возможности Docker