hiroportation

ITの話だったり、音楽の話、便利なガジェットの話題などを発信しています

Ubuntu 18.04/20.04 netplanについてまとめた

はじめに

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