Ubuntu Netplan 設定
概要
Netplanは、Linuxにおいてネットワーク設定を簡単に構成するためのユーティリティ。Ubuntuでは、18.04以降採用されています。
ネットワーク設定をYAMLを用いて、簡潔に記述することが可能です。
動作概要
2. YAMLファイルが複数ある場合は、最期に読み込まれたファイルが優先される
3. YAMLファイルに基づき、バックエンドの構成ファイルを/run に生成し、特定のネットワークデーモンに制御を委ねる
注意点
OSインストール直後は、/etc/netplan/50-cloud-init.yaml
などのファイルが存在します。このようなファイルはアップデートなどで上書きされる可能性があるため、個別にファイル(99-config.yaml
など)を作成してネットワーク設定を記述した方が良いです。
設定例
以下に、使用頻度が高いと思われる設定例を紹介する。YAMLはMapping形式で記載しています(Sequence形式や、両形式が混在でも可)。
バックエンド設定
バックエンドは、renderer
で指定する。NetworManagerおよびSystemd-networkdがサポートされています。デフォルトはSystemd-networkd。
明示的に指定する場合は、NetworkManager
またはnetworkd
を指定する必要があります。
1# sample
2network:
3 version: 2
4 renderer: NetworkManager
DHCP設定
IPv4はdhcp4
、IPv6はdhcp6
で指定します。デフォルトではDHCP設定は無効です。
明示的に指定する場合は、true
またはfalse
で有効/無効を指定します。
1# sample
2network:
3 version: 2
4 ethernets:
5 eno1:
6 dhcp4: true
7 dhcp6: true
固定IPアドレス設定
固定IPアドレスは、プレフィックスと一緒にaddresses
で指定します。デフォルトゲートウェイは、IPv4はgateway4
、IPv6はgateway6
で指定します。
1# sample
2network:
3 version: 2
4 ethernets:
5 eno1:
6 addresses: [10.0.0.100/24, 2400:1:2:3::100/64]
7 gateway4: 10.0.0.1
8 gateway6: 2400:1:2:3::1
静的ルート設定
静的ルートは、routes
、to
、via
で指定します。
1# sample
2network:
3 version: 2
4 ethernets:
5 eno1:
6 addresses: [10.0.0.100/24]
7 gateway4: 10.0.0.1
8 routes:
9 - to: 10.254.0.0/24
10 via: 10.0.0.2
DNSリゾルバ設定
DNSリゾルバ設定は、nameservers
で指定します。ドメイン検索はsearch
、DNSサーバはaddresses
で指定します。
1# sample
2network:
3 version: 2
4 ethernets:
5 eno1:
6 nameservers:
7 search: [local, intra]
8 addresses: [10.0.0.200, 2400:1:2:3::200]
インターフェース名変更
環境によっては、インターフェース名が煩雑な場合があります。match
とset-name
を使うことで、インターフェース名を変更することができます。
例では、MACアドレスに基づいてインターフェース名を変更しています。
1# sample
2network:
3 version: 2
4 ethernets:
5 eno1:
6 match:
7 macaddress: 00:ab:cd:33:44:55
8 set-name: eth0
ボンディング設定
複数のインターフェースをまとめて、単一の仮想インターフェースを作成するボンディング設定も可能です(Windowsにおけるチーミング)。bonds
、interfaces
、parameters
を使って設定します。
1# sample
2network:
3 version: 2
4 bonds:
5 bond0:
6 interfaces: [eth0, eth1]
7 addresses: 10.0.0.100/24
8 parameters:
9 mode: active-backup
10 primary: eth0
dhcp-identifier
Ubuntuなどでは、DHCPのIP取得にDUIDを利用します。何らかの理由でMACアドレスを利用したい場合は、dhcp-identifier
を使って設定します。
mac
またはduid
のどちらかを指定できます。renderer
がnetworkd
の場合のみ動作します。
1# sample
2network:
3 version: 2
4 renderer: networkd
5 ethernets:
6 dhcp4: true
7 dhcp-identifier: mac
設定の適用/確認
設定を適用する場合は、以下のコマンドを実行します。
1$ sudo netplan apply
設定の確認は、以下のコマンドを実行します。
1$ ip addr show