はじめに
Ubuntu 18.04(正確には17.04)以降からネットワーク設定は /etc/network/interfaces は非推奨になり、/etc/network/{netplan名}.yaml が推奨になりました。
備忘録としてまとめました。
network例
事前にやっておきたいこと・知っておきたいこと
yamlを扱うためオートインデントの文字数は4文字に設定。2文字でもOKです。
デフォルトだと8文字なので辛い。。
cat << EOF > ~/.vimrc set tabstop=4 set shiftwidth=4 EOF
以下ファイルはデフォルトで入っているものなので、削除するかリネームしておきましょう。
/etc/netplan/50-cloud-init.yaml
yamlファイルの設定有効化は以下で実施。
sudo netplan apply
※上記で有効化しても前のルーティング設定が消えないことがあるため、ノード再起動するか、プロセス再起動する。
一般的な例
/etc/netplan/network.yaml (macaddressは適宜変更)
network: version: 2 ethernets: enp0s2: addresses: [192.168.10.8/24,192.168.10.9/24,192.168.10.10/24] gateway4: 192.168.10.1 dhcp4: false dhcp6: false routes: - to: 10.0.0.0/24 via: 192.168.10.8 match: macaddress: 52:54:00:1b:29:d0 enp0s3: addresses: [192.168.20.8/24] dhcp4: false routes: - to: 20.0.0.0/24 via: 192.168.20.8 match: macaddress: 52:54:00:04:7e:a0
addressesは複数指定可能
gateway4 を指定するとデフォルトGWになるようです
matchを指定するとmacaddressとinterfaceが紐づけられます
bondingの例
/etc/netplan/network.yaml
network: version: 2 ethernets: switchports: match: name: enp0s[23] bonds: bond0: dhcp4: no dhcp6: no interfaces: [switchports] parameters: mode: balance-rr mii-monitor-interval: 1 addresses: [192.168.10.8/24] gateway4: 192.168.10.1
switchports の match:は正規表現も可能なため、あらかじめ以下のように設定しておけば、bondingするportが増えてもbondingに設定は不必要になる。
match: name: enp0s[*]
実行結果
2: enp0s2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000 link/ether fe:a6:9e:17:f8:fc brd ff:ff:ff:ff:ff:ff 3: enp0s3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000 link/ether fe:a6:9e:17:f8:fc brd ff:ff:ff:ff:ff:ff 4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether fe:a6:9e:17:f8:fc brd ff:ff:ff:ff:ff:ff inet 192.168.10.8/24 brd 192.168.10.255 scope global bond0 valid_lft forever preferred_lft forever inet6 fe80::fca6:9eff:fe17:f8fc/64 scope link valid_lft forever preferred_lft forever