Ubuntu KVM に ネットワークブリッジを構成する

KVMでネットワークブリッジを構成しようとして試行錯誤したのでメモ。

仮想化周りの、ネットワーク設定はいろいろややこしいな。

8年前に書いた、VirtualBoxのブリッジ設定のブログが今でもそこそこアクセスあるし。

1.KVM

1.1 KVMとは

  • KVM (Kernel-based Virtual Machine)は、Linuxに組み込まれたオープンソースの仮想化テクノロジー
  • 具体的には、KVM を使用すると、Linux をハイパーバイザーすることができる
  • これによりホストマシンは、ゲストや仮想マシンと呼ばれる複数の独立した仮想化環境を稼働させることができる。
  • KVM は Linux の一部です。Linux 2.6.20 以降、KVM が搭載されている

2.KVMの構成

2.1 Ubuntuのバージョン

Ubuntuバージョン

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"

2.2 ハードウェアの仮想化チェック

$ egrep -c '(vmx|svm)' /proc/cpuinfo

  • 0 : ハードウェア仮想化未サポート
  • 1:以上サポートされているが、有効化の確認が必要

$ lscpu
    :
仮想化:                              VT-x

2.3 必要パッケージのインストール

$ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

2.4 ユーザーをグループに追加

$ sudo adduser `id -un` libvirt
$ sudo adduser `id -un` libvirt

2.5 インストール成功確認

$ virsh list --all
 Id   Name   State
--------------------

2.6 SOCKファイルのパーミッション確認

以下のパーミッションになってなければ、chmod

$ sudo ls -la /var/run/libvirt/libvirt-sock
srwxrwx--- 1 root libvirt 0  8月 20 22:40 /var/run/libvirt/libvirt-sock

2.7 仮想マシンのインストールで問題を感じたらオーナーを以下に

$ sudo chown root:libvirt /dev/kvm

2.8 GUIツールのインストールと起動

$ sudo chown root:libvirt /dev/kvm
$ virt-manager

3. ブリッジを構成して外部ホストから接続できるようにする

いろいろググってみるのだが、以下の対応の記事が多い。

  • brctl を使って設定
  • /etc/netplan 以下のファイルを編集

上記で試していたのだが、どうやら、Network Manager を使わずに設定することになるようで、Ubuntu GUIの設定ダイアログから設定が確認できない、

また、リモートで画面を操作するのに、スマホやタブレット含めて様々なデバイスにリモートデスクトップできる、AnyDesk を使っているのだが、これが使えなくなる(裏でNetwork Manager使っている?)ため、上記方法は断念。networkd と Network Manager との関係 はともかくも、AnyDesskを使いたいので、Network Manager のコマンドライン(nmcli) を利用して構成を行う。

3.1 nmcliを使用してネットワークを確認する

UbuntuではNICの名称が、eth0ではなくて適当に変わるらしいので、確認する。

今回の環境では、enp0s25。

$ nmcli con show
NAME          UUID                                  TYPE      DEVICE  
有線接続 1    3ee7bb10-bdc4-3692-9048-1e2f35d06c90  ethernet  enp0s25 
ctc-g-d17c80  5105f279-97ae-4a5b-9313-0729a4a8ee35  wifi      wlp10s0 
virbr0        8879c8b2-fea9-4a33-b696-04b6a9dc7874  bridge    virbr0  
ctc-a-d17c80  719c99c6-6345-46b7-bd84-aac667d2dfbb  wifi      --      

3.2 ブリッジの追加

ブリッジbr0を追加する

$ sudo nmcli con add type bridge ifname br0
接続 'bridge-br0' (1ef72134-e85d-4df5-9ed3-4db1a6bbff39) が正常に追加されました。

3.3 ブリッジとイーサネットの接続

作成したブリッジ br0とNICを接続

$ sudo nmcli con add type bridge-slave ifname enp0s25 master br0
接続 'bridge-slave-enp0s25' (29740da7-7a63-4d26-8ddc-2007e300d606) が正常に追加されました。

3.4 ブリッジ有効化

$ sudo nmcli con up bridge-slave-enp0s25
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/9)

4.確認

動作を確認。

4.1 Ubuntu GUI Desktopのネットワーク設定

GUIのネットワーク設定で、ブリッジが認識されている。OK!

ubuntu_net_bridge

4.2 KVM GUIのネットワーク設定

KVM virt-manager 側にも選択肢が出現。OK!

kvm_net_bridge

4.3 KVM上にインストールした、Win10を起動して外部接続

Ubuntu のKVMにインストールした Win10に、外部ホスト(Mac)から接続できた。OK!

kvm_connect_other_host

4.4 AnyDesk を利用してKVMをホストするUbuntuに接続

anydesk も利用可能。OK!!

anydesk_ubuntu

めでたしめでたし。

参考

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です