【Ubuntu】Netplanでブリッジを作成する
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と同じでよい) -
routes
のto
→ デフォルトゲートウェイのIPアドレスを指定(ip route
の via) -
nameserver
→ 好きなDNSを設定(GoogleとCloudflareにした)
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