ネットワーク設定「netplan」で仮想マシン用ブリッジ作成【Ubuntu 20.04】

Linuxはネットワークの設定が結構面倒です。KVMを使用するとなおさら・・・。ネット上にはあれこれと情報はありますが、Ubuntuは16.04以降、ネットワーク設定はnetplanで行うように変わっています。

(旧来の方法でもできるかもしれませんがメンテナンス性が悪いかも)

netplan – yaml

/etc/netplan下にあるyamlファイルを編集して、sudo netplan applyで設定します。

https://qiita.com/yas-nyan/items/9033fb1d1037dcf9dba5

検索していると、00-installer-config.yamlだったり、50-cloud-init.yamlだったり、99_config.yamlだったりというファイルを編集せよ!と出てきます。00からアルファベット順に参照していき、どんどん設定が上書きされていくようです。なので、自動設定で作られた50-cloud-init.yamlのようなファイルがあって、自分が作成した設定が上書きされることがあるようですが、基本的にどれを使ってもよさそうです。

KVMのブリッジ設定

仮想マシンの管理に、便利なのでGUIツールのvirt-managerを使っていこうと思っていたのですが、設定を見てもネットワークブリッジを作るところがありません。

この部分はGUIから簡単設定ではなく設定ファイルをいろいろいじって設定するしかないようです。

https://levelup.gitconnected.com/how-to-setup-bridge-networking-with-kvm-on-ubuntu-20-04-9c560b3e3991

デフォルトネットワークを削除する必要があるかはよくわかりません。やっていない解説ページもあるので、不要かも。

virsh net-destroy default
virsh net-undefine default

下記のページでは、netplanではなく/etc/network/interfacesで設定していますが、ubuntu 20.04ではできませんでした。

https://linuxconfig.org/how-to-use-bridged-networking-with-libvirt-and-kvm

netplanのyamlファイルに追記

bridges:
  br0:
    interfaces: [ enp0s7 ]
    addresses: [192.168.0.104/24]
    gateway4: 192.168.0.1
    mtu: 1500
    nameservers:
      addresses: [8.8.8.8,8.8.4.4]
    parameters:
      stp: true
      forward-delay: 4
    dhcp4: no
    dhcp6: no

addressesの代わりにdhcp4: yes、dhcp6: yesでも大丈夫です。(環境による)

重要なのは、ethernetsやwifisに並列するエントリとしてbridgesを作ること、interfacesで使用する物理ネットワークを指定することですね。

仮想NICを作成

仮想NICを作成し、仮想マシンから参照可能にします。virt-managerからも設定可能ですが、オプションでXML編集を許可しないといけません。なぜか、GUIのメニューではブリッジが選択できないので、手動での編集が必要です。

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

こんなXMLを作って読み込ませると、host-bridgeなる仮想NICがbr0インターフェースを利用するという設定で出来上がります。netplanでbr0は物理イーサネットデバイスに接続しているので、仮想マシンをブリッジ接続できるようになります。

仮想マシンのNIC設定を変更

最初、個々の設定を見つけられずに仮想マシンを作り直すことになってしまったのでこれだけで設定可能かはわかりませんが・・・。

仮想マシンを開いて、デスクトップ(もしくはコンソール)を表示するボタンの次にある(!)(環境によってはバルブマーク)を開くと仮想マシンの環境設定が開くのでそこでネットワークカードの設定を変更します。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする