Netplanプロジェクト
「Netplan」プロジェクトは、「Ubuntu」のネットワーク設定方法を見直し、設定の一元化及び整理を行うプロジェクトです。現在のネットワーク設定
現在「Ubuntu Desktop」と「Ubuntu Server」では、インストール時にインストーラーが「ifupdown /etc/network/interfaces」を生成しています。一方「MaaS/curtin/cloud-init」では、YAMLベースのフォーマットを使用しており、「/e/n/i」へ変換します。
これらの方法は「NetworkManager」の事前設定を簡潔に行える方法ではなく、また、「networkd」をサポートしていません。
設定の一元化
「Netplan」プロジェクトではこの状況を踏まえ、ネットワークの設定を記述するファイルを「/etc/netplan/*.yaml」に集約し、すべての「Ubuntu(Snappy/Server/Client/ MaaS/cloud-init)」に適用します。すべての「Ubuntu」のインストーラーはそれらのファイルを生成するだけに留め、「/etc/network/interfaces」ファイルの生成を行いません。
こうすることで、動的なネットワークの選択や、異なるバックエンド間の切り替えに適応性を持たせることができます。
バックエンドの切り替え
例えば「ifupdown」から「networkd」への切り替えがバックエンドの切り替えに該当します。また環境によっては、「NetworkManager」の利用が望ましいこともあります。
バックエンドに合わせた設定ファイルの変換
「Netplan」はPCやデバイスの起動時に、YAML設定ファイルから、使用するバックエンドが必要とする設定ファイルへと設定ファイルの変換を行います。変換された設定ファイルは、「/run」フォルダー内に配置されます。
変換された設定ファイルは一時的なファイルであり、「/etc」フォルダー内にある設定ファイルとは区別されます。
Ubuntu 16.10で有効になる
「Netplan」プロジェクトの成果は、「Ubuntu 16.10」に取り込まれます。また成果は、「nplan」パッケージで提供されます。
現在開発中の「Ubuntu 16.10」では、「nplan」パッケージが利用可能になっています。
すでに「Ubuntu」の公式リポジトリーでは、「Netplan」プロジェクトと同名の「netplan」パッケージが存在しています。
しかし「netplan」パッケージは「Netplan」プロジェクトとは無関係です。
現在開発中の「Ubuntu 16.10」でも、もうすぐ「nplan」パッケージがデフォルトでインストールされるようになります。
現在利用できる「nplan」パッケージのバージョンは、「0.4」です。
サポートしているネットワークインターフェース
この仕組みが現在サポートしているネットワークインターフェースは、以下のインターフェースです。- イーサネット(有線LAN)
- Wi-Fi(インフラストラクチャー/アドホック/AP)
- ブリッジ
- その他共通的に使用されるインターフェース
nplanのドキュメント
「nplan」の使い方に関するドキュメントを「HTML」と「manpage」で提供しています。「HTML」のドキュメントは、当分の間「netplan」で読むこともできます。
まだ完成していない
「nplan」には、まだ多くの機能が欠けています。例えば以下の機能はまだ未実装です。
- bonds
- routes
- nameservers
- veth
また「/e/n/i」からアップグレードする方法も実装されていません。
「networkd」を自動的に起動する機能もないため、機能が実装されるまでユーザーは手動で「networkd」を起動する必要があります。(systemctl enable systemd-networkd)
対応が必要な機能や作業中の機能は、以下で管理されています。
不具合に関しては、以下で管理されています。
/etc/network/interfacesは忘れよう
元々「Ubuntu Desktop」では、「/etc/network/interfaces」の内容は「NetworkManager」に影響を与えるため、直接このファイルを編集すると、ネットワークに繋がらなくなるなど意図しない結果になり得ます。現在の「Ubuntu Desktop」では、ネットワークの設定はまず「NetworkManager」で行うのが筋になります。
知識があるユーザーでしたらどうとでもできると思いますが、よく分からない場合、「/etc/network/interfaces」の編集はおすすめしません。
そして「Ubuntu 16.10」で「nplan」の仕組みが導入されれば、「/etc/network/interfaces」から更に離れることになるでしょう。