🌉

【Ubuntu】Netplanでブリッジを作成する

2024/03/31に公開

netplanとは

YAMLファイルで systemd-networkd や NetworkManager の設定を抽象的に行えるツール

systemd-networkdでブリッジを設定した際に、再起動後に設定が変わってしまい調べてみたところ netplan が生成する設定ファイルが優先されていることが原因だった

(systemd-networkdでは優先度がファイル名の辞書順で決まる)

今回は systemd-networkd を直接設定するのではなく netplan を通して設定する

設定

設定ファイルは、/etc/netplan/にある

設定ファイルの優先度はファイル名の辞書順で決まる

ubuntuの場合、00-installer-config.yamlというファイルがインストール時に作成されているため、それより優先度が高くなるようなファイル名で設定ファイルを作成する

YAMLはインデントに厳しいので注意

<環境に合わせて変更する点>

  • eno1 → 今使用しているネットワークインターフェイスに置き換え(ip route の src)
  • addresses → ブリッジに振りたいIPアドレスを指定(現在のIPと同じでよい)
  • routesto → デフォルトゲートウェイのIPアドレスを指定(ip route の via)
  • nameserver → 好きなDNSを設定(GoogleとCloudflareにした)
/etc/netplan/99-myconfig.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: false
  bridges:
    br0:
      interfaces:
        - eno1
      dhcp4: false
      addresses:
        - 192.168.3.110/24
      routes:
        - to: default
          via: 192.168.3.1
      nameservers:
        addresses: [8.8.8.8,1.1.1.1]
  version: 2

設定ファイルのパーミッション

netplanの設定ファイルはrootユーザーにのみ読み取り・書き込み権限が与えられていなければならない

ls -l でパーミッションを確認し、-rw-------となっていれば良い

グループや他のユーザーに権限が与えられている場合は剥奪する

sudo chmod 600 /etc/netplan/*.yaml
モード 権限
4 読み取り
2 書き込み
1 実行

chmodコマンドの第1引数は、所有者 所有グループ その他のユーザー の順番で与えたい権限の数字を足し合わせたものを指定する

この場合は、所有者(root)に読み取り・書き込み権限を与えたいので 4+2=6、所有グループとその他のユーザーには権限を持たせないので 0 を指定する → 600

反映

netplan tryは便利なことに、120秒間お試しで設定を反映させることができる

もし設定を間違えていても、120秒以内にEnterキーが押されなければ元の設定に戻るので、SSH接続で作業していても安心

sudo netplan try

# Enterを押す
# 反映されなければSSH接続が切れているということなので120秒待つ

Discussion