UbuntuでMultipass(KVM)のブリッジネットワーク環境を構築する手順

 

WIndowsでMultipass(VirtualBox)のブリッジネットワークを構成したのだが、古めのPCで立ち上げっぱなしにしておくと起動音がちょっと気になる。

静かな別PCに同様の環境を構築したい。

PCにはUbuntuをインストールしているので、Ubuntu + KVMに Multipassを導入しブリッジネットワークを設定、外部から接続できるところまで持っていく。

1.仮想マシンマネージャーの導入

KVMおよび仮想マシンマネージャーの導入は、以前行ったメモ Ubuntu KVM に ネットワークブリッジを構成する | Glob (typea.infoを確認し実施。

仮想マシンマネージャおよびKVM導入後は、以下の手順に従い、デフォルトのドライバを、QEMUから変更する

Using libvirt in Multipass | Multipass documentation

$ multipass get local.driver
qemu
$ sudo apt install libvirt-daemon-system
$ sudo snap connect multipass:libvirt
$ multipass stop --all
$ sudo multipass set local.driver=libvirt
$ sudo multipass get local.driver
libvirt

Virt manager

仮想マシンマネージャーに、multissで作成した仮想マシンが表示された。

Multipass virt manager

2.ホスト側でネットワークブリッジの作成

2.1 ホストOSで、ネットワークを確認

piroto@puli:~$ nmcli con show
NAME        UUID                                  TYPE      DEVICE 
有線接続 1  c2913b62-1b5f-391e-9e02-4bd3e84741e6  ethernet  enp3s0 
virbr0      2f6e833d-797b-4c2d-b70d-8f266af9065b  bridge    virbr0 

2.2 ブリッジbr0を作成

piroto@puli:~$ sudo nmcli conn add type bridge ifname br0
接続 'bridge-br0' (647b382e-c101-45a8-a635-e047bbc8ba94) が正常に追加されました。

2.3 ブリッジとアダプターを接続

piroto@puli:~$ sudo nmcli con add type bridge-slave ifname enp3s0 master br0
接続 'bridge-slave-enp3s0' (75daa782-ffc6-4089-ac20-877747340856) が正常に追加されました。

2.4 ブリッジの有効化

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

ホストOSのネットワーク設定に、ブリッジ接続が表示された!

Host nw settings

3.ゲストOSの設定

3.1 仮想マシンマネージャからブリッジネットワークの追加

Ubuntu KVM に ネットワークブリッジを構成する | Glob (typea.info)の時と同様に、ネットワークをブリッジ接続に置き換えてしまうと、ホストOSから、multipass shell で接続ができなくなってしまうので、デフォルトのネットワーク設定はそのままに、仮想マシンマネージャーから、

ハードウェアの追加 - ネットワーク 

から、上記で作成したブリッジネットワーク br0 を追加する。

Virt manager bridge nw

3.2 ゲストOSにブリッジの設定

ホストOSのターミナルから、multipass shell ゲストOS でログイン、ブリッジアダプターを特定する。

今回は、ens7

ubuntu@puli-sub1:/etc/netplan$ ip link | grep DOWN
3: ens7: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000

rootで、以下のコマンド(ens7の部分は適切なネットワークID)を実行し、

ubuntu@puli-sub1:~# cat > /etc/netplan/60-bridge.yaml" <<EOF
network:
  ethernets:
    ens7:                    # this is the interface name from above
      dhcp4: true
      dhcp4-overrides:       # this is needed so the default gateway
        route-metric: 200    # remains with the first interface
  version: 2
EOF

ブリッジネットワークを有効化する。

ubuntu@puli-sub1:~$ sudo netplan apply
ubuntu@puli-sub1:~$ sudo ip address show dev ens7 up 

確認すると、元々のアダプター ens3に、ブリッジ ens7 が設定され、それぞれ、ipアドレスがふよされている。

ubuntu@puli-sub1:/etc/netplan$ ip addr
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 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:cb:ab:49 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.141/24 brd 192.168.122.255 scope global dynamic ens3
       valid_lft 3512sec preferred_lft 3512sec
    inet6 fe80::5054:ff:fecb:ab49/64 scope link 
       valid_lft forever preferred_lft forever
3: ens7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:f0:ab:a6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.49/24 brd 192.168.0.255 scope global dynamic ens7
       valid_lft 86313sec preferred_lft 86313sec
    inet6 2402:6b00:3666:5800:5054:ff:fef0:aba6/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 289sec preferred_lft 289sec
    inet6 fe80::5054:ff:fef0:aba6/64 scope link 
       valid_lft forever preferred_lft forever

4.外部から接続するための設定

4.1 mDNSのインストール

mDNSが便利なので、インストールして有効化。ホスト名。localでDNSなしに名前解決できるようになる。

ubuntu@puli-sub1:~$ sudo apt       install -y avahi-daemon
ubuntu@puli-sub1:~$ sudo systemctl start      avahi-daemon
ubuntu@puli-sub1:~$ sudo systemctl enable     avahi-daemon

4.2 外部接続ユーザーの登録

ユーザー登録、-m でhomeディレクトリ作成、sudoグループに所属させ、sudo可能とする。

ubuntu@puli-sub1:~$ sudo useradd -m piroto
ubuntu@puli-sub1:~$ sudo passwd piroto
ubuntu@puli-sub1:~$ sudo usermod -G sudo piroto

4.3 SSHの再インストール

multipassで作成する仮想マシンにはsshdが入っているようなのだが、そのままだと、Permission Deniedが解決できないので、以下を再インストール。

ubuntu@puli-sub1:~$ sudo apt-get install ssh
ubuntu@puli-sub1:~$ sudo apt-get install openssh-server

かつ、設定ファイルで、rootログインおよび、パスワード認証を有効化する。

/etc/ssh/sshd_config

PermitRootLogin yes
PasswordAuthentication yes

5.完了!!

別マシンから、ゲストOSのホスト名で、ssh接続OK!

Success

Follow me!

コメントを残す

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