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 adduserid -un
libvirt $ sudo adduserid -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!
4.2 KVM GUIのネットワーク設定
KVM virt-manager 側にも選択肢が出現。OK!
4.3 KVM上にインストールした、Win10を起動して外部接続
Ubuntu のKVMにインストールした Win10に、外部ホスト(Mac)から接続できた。OK!
4.4 AnyDesk を利用してKVMをホストするUbuntuに接続
anydesk も利用可能。OK!!
めでたしめでたし。
参考
- https://www.redhat.com/ja/topics/virtualization/what-is-KVM
- https://www.kagoya.jp/howto/rentalserver/linuxkvm/
- https://help.ubuntu.com/community/KVM/Installation
- https://www.cyberciti.biz/faq/how-to-add-network-bridge-with-nmcli-networkmanager-on-linux/