仮想環境 KVM 構築

Ubuntu 24.04 LTS に KVM(Kernel-based Virtual Machine)を入れて VM を立てられるようにします。

環境

$ cat /etc/issue
Ubuntu 24.04.1 LTS \n \l

準備

$ sudo apt update -y && sudo apt upgrade -y

導入

下記ページを参考に KVM を入れていきます。
KVM 使うの CentOS 6 以来だ...

Ubuntu 24.04 LTS で KVM の実行環境を構築してみた | DevelopersIO

KVM のインストール

$ sudo apt install qemu-kvm libvirt-daemon-system libvirt-daemon virtinst bridge-utils libosinfo-bin -y
$ kvm-ok
コマンド 'kvm-ok' が見つかりません。次の方法でインストールできます:
sudo apt install cpu-checker

$ sudo apt install cpu-checker -y

$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

ネットワーク設定

デフォルトブリッジの削除

デフォルトブリッジは無かったので削除しなかった。

$ nmcli device
DEVICE  TYPE      STATE            CONNECTION   
eno1    ethernet  接続済み         netplan-eno1 
lo      loopback  接続済み (外部)  lo           

新しいブリッジの作成

Netplan を使って /etc/netplan 配下に新しいブリッジを作成していきます。

Netplan documentation

UbuntuでのNetplan活用ガイド|ネットワーク設定の基礎から応用まで - オープンソースの力を活用する方法~Ubuntuの世界へようこそ~
Netplanは、Ubuntu 17.10以降のバージョンで採用されたネットワーク設定の管理ツールです。
以前はifconfigや/etc/network/interfacesを使用していましたが、Netplanはこれらに代わる新しい形式を提供しています。

【Ubuntu日和】【第29回】Ubuntuのネットワーク設定入門 - PC Watch
Ubuntuでは「 netplan 」という設定ジェネレータを採用し、YAMLファイルに設定を書けば適切なsystemd-networkdの設定を生成したり、設定の反映やロールバックが行なえるような仕組みを用意している。

なお、デフォルトで 2ファイル作成されていた(更新年月日が過去なので、もともとあるらしい)。

$ ls -lh /etc/netplan/
-rw-r--r-- 1 root root 104 Aug 27 23:19 01-network-manager-all.yaml
-rw------- 1 root root 389 Dec  7 13:34 50-cloud-init.yaml

ファイルのネーミングルールはそのままに、それっぽいファイルを作成。

$ sudo vi /etc/netplan/01-kvm-config.yaml

YAML configuration - Netplan documentation

項目名1 項目名2 内容
addresses   IPアドレス / サブネット
routes   データパケットの通過する経路
  to default の場合、デフォルトルートを指す
  via ルート( If default, Default route)
nameservers    
  search 検索ドメインの補完文字列を指定
  addresses DNSサーバ
$ cat /etc/netplan/01-kvm-config.yaml
network:
  version: 2
  ethernets:
    eno1:
      dhcp4: false
      dhcp6: true
  bridges:
    br0:
      interfaces: [eno1]
      addresses: [192.168.x.x/24]
      routes:
        - to: default
          via: 192.168.x.x
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]
      parameters:
        stp: false
      dhcp4: false
      dhcp6: true

構文チェックしようとしたら br0: ブリッジとボンドのカスタム パラメータを元に戻すことはサポートされていません 的なメッセージが表示されたが、問題無いらしい。
bridges に対応してない模様... 怖。エラーではないので次に進む。

$ sudo chmod 0600 /etc/netplan/01-kvm-config.yaml

$ sudo netplan try --timeout 120

** (process:20322): WARNING **: 00:23:41.498: Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.
br0: reverting custom parameters for bridges and bonds is not supported

Please carefully review the configuration and use 'netplan apply' directly.

適用させたら既存ファイルで警告表示...

$ sudo netplan apply

** (generate:20667): WARNING **: 00:30:13.288: Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.

** (process:20665): WARNING **: 00:30:13.707: Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.

** (process:20665): WARNING **: 00:30:13.799: Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.

新しいブリッジ br0 の作成を確認。

$ nmcli device
DEVICE  TYPE      STATE            CONNECTION   
br0     bridge    接続済み         netplan-br0  
eno1    ethernet  接続済み         netplan-eno1 
lo      loopback  接続済み (外部)  lo           

br0 が物理インターフェースと接続されているか確認。

$ brctl show
コマンド 'brctl' が見つかりません。次の方法でインストールできます:
sudo apt install bridge-utils

$ sudo sudo apt install bridge-utils

$ brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.12081542d768   no      eno1