Ubuntu18から(正確には17からしいが、)IPアドレスに関する構成の設定方法が変わったらしい。 先日せっかくUbuntu18をインストールしたので、これに合わせて、一度IPアドレスの固定方法をおさらいする。
環境 Ubuntu18.04 Bionic Beaver
目次
これまでのIPアドレス設定方法
Ubuntu16.04では、Desktopバージョンでは、NetworkManagerを用いた設定方法を推奨していた。またServerバージョンでは、/etc/network/interfaces
にconfigを書くことでIPアドレスの設定を変更することができた。
Ubuntu18からは設定方法が変わったとの噂を聞きつつも、従来通りひとまず/etc/network/interfaces
を眺めてみると、下記の記述があった。
# ifupdown has been replaced by netplan(5) on this system. See # /etc/netplan for current configuration # To re-enable ifupdown on this system, you can run: # sudo apt install ifupdown
直訳すると、
これまでインターフェースの開始停止に用いていたifup/ifdownは使えなくなったよ 代わりにnetplanがそれをやっているよ netplanは`/etc/netplan`にあるよ どうしてもifup/ifdownを使いたかったら、aptでインストールしてね
とのこと。
なのでひとまず/etc/netplan
を見てみる。
Netplan
実際のファイルを見る前にNetplanの説明をする。 公式サイトの説明によると、下記の説明が存在した。
The network configuration abstraction renderer
Netplan is a utility for easily configuring networking on a linux system. You simply create a YAML description of the required network interfaces and what each should be configured to do. From this description Netplan will generate all the necessary configuration for your chosen renderer tool.
直訳する。
ネットワーク構成の抽象化レンダラー
Netplanは、linuxシステム上で動作する、簡単にネットワークを設定するためのツールである。 Netplanは、必要なネットワークインタフェースと、設定する必要のあるものに対し、YAML記述を作成するだけで、 あなたの選択したレンダラーツールのために必要とされる設定をすべて生成する。
まぁつまり、YAMLを書くだけで、ネットワーク設定をサクッと行えてしまうらしい。
詳細は下記のサイトを参照のこと。
/etc/netplan
さて、ようやくnetplanを見てみる。
このディレクトリ以下には、50-cloud-init.yaml
というファイルが存在した。
先の説明通り、この設定はYAMLで記述されている。
50-cloud-init.yaml
の中を見てみた。
# This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: ens3: addresses: [] dhcp4: true optional: true version: 2
なるほどここにこれまで/etc/network/interfaces
に書いていた内容を記述すればいいのだな、と気づく。
今回、設定したい内容は下記の通りである。
address: 192.168.0.10 netmask: 255.255.255.0 gateway: 192.168.0.1 dns-nameserver: 192.168.0.1 search domain: hoge.example.jp
これをNetplanの形式に従って作成したYAMLファイルは次の通りとなる。
network: ethernets: ens3: dhcp4: no addresses: - 192.168.0.10/24 gateway4: 192.168.0.1 nameservers: addresses: - 192.168.0.1 search:[hoge.example.jp] optional: true version: 2
これを/etc/netplan/hoge.yaml
として保存し、システムに適用する。
ちなみにYAMLファイルはtabを読み込んでくれないので、ちゃんと設定したのに動かにおかしいなーと思ったら、タブが入っていないかをチェックするといい。
$ sudo netplan apply /etc/netplan/hoge.yaml
すぐに反映された。
補足
NetPlan自体は、Ubuntu17.04から用いられていたそうな。 (17は触ったことなかったので許してください)
まとめ
Ubuntu18.04でネットワークの設定をする場合は、netplanを用いて設定を行う。 netplanの設定ファイルは、yaml形式で記述されている。
次は時間のあるときに、Netplanを用いて何ができるかを日本語でまとめた記事を投稿したいなぁ