Ubuntu Netplan 設定

概要


Netplanは、Linuxにおいてネットワーク設定を簡単に構成するためのユーティリティ。Ubuntuでは、18.04以降採用されています。
ネットワーク設定をYAMLを用いて、簡潔に記述することが可能です。




動作概要

1. /etc/netplan ディレクトリにある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

静的ルート設定

静的ルートは、routestoviaで指定します。

 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]

インターフェース名変更

環境によっては、インターフェース名が煩雑な場合があります。matchset-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におけるチーミング)。bondsinterfacesparametersを使って設定します。

 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のどちらかを指定できます。renderernetworkdの場合のみ動作します。

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

参考


翻訳: