DEV Community

Kiyoshi Yamamoto
Kiyoshi Yamamoto

Posted on

UbuntuのKVMでブリッジ接続の仮想PCを構築

まず普通にUbuntuをなるべく最小で構築します。Ubuntuの中に仮想PCを作れるので容量は全部で大丈夫です。仮想環境 KVMをインストールします

sudo apt install qemu-kvm libvirt-daemon-system bridge-utils virt-manager

Enter fullscreen mode Exit fullscreen mode

インストールしたら一度再起動しないと認識しないみたいです。

次に、デフォルトでNATのブリッジができてしまうので壊します。

virsh net-destroy default
virsh net-undefine default
Enter fullscreen mode Exit fullscreen mode

Ubuntuはnetplanでブリッジを作成しないといけないみたいです。/etc/netplanに何やらファイルができているので新しく作り、NICを付けます。ちなみに私はエディタはviよりnano派です。

sudo nano /etc/netplan/99_myplan.yaml
Enter fullscreen mode Exit fullscreen mode

中身はこんな感じです。

network:
  version: 2
  ethernets:
    enp4s0:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [enp4s0]
      addresses: [192.168.0.129/24]
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses: [192.168.0.1, 8.8.8.8]
      parameters:
        stp: false
      dhcp4: false
      dhcp6: false

Enter fullscreen mode Exit fullscreen mode

enp4s0というのは私のNIC名なのでそれぞれ事前に自分のを調べておいてください。

その後、ファイルの権限が危険だとエラーになるので、他者が書き込めないよう変えておきます。そしたらnetplanにapplyしてエラーがでなければOK。私の場合、何か別の設定ファイルもできていてエラーになりました。正直、何かわからないので削除しました。

sudo chmod 600 /etc/netplan/99_myplan.yaml

sudo netplan apply
Enter fullscreen mode Exit fullscreen mode

br0を作った瞬間に今のnicが使えなくなったせいか、ホストマシンのネットが切れてしまいました。でも再起動したら直ったので無事にブリッジになったようです。あいまいですみません💦

バーチャルマシンを作る前にブリッジをKVMに認識させます。まずその場でいいのでxmlファイルを作ります。

nano host-bridge.xml
Enter fullscreen mode Exit fullscreen mode

中身はこんな感じ

<network>
  <name>host-bridge</name>
  <forward mode="bridge"/>
  <bridge name="br0"/>
</network>

Enter fullscreen mode Exit fullscreen mode

KVMに登録します

virsh net-define host-bridge.xml
virsh net-start host-bridge
virsh net-autostart host-bridge
Enter fullscreen mode Exit fullscreen mode

確認します

virsh net-list --all
Enter fullscreen mode Exit fullscreen mode

どうも、ファイアーウォールかなにかでブロックされるみたいなので、iptablesにてFORWARDのデフォルトポリシーをDEBYからACCEPTにします。

iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
Enter fullscreen mode Exit fullscreen mode

確認します

Top comments (0)