Netplanは、Ubuntuの背後にある会社であるCanonicalによって開発されたユーティリティです。これは、現在サポートされている2つの「バックエンド」システム(またはNetplanの用語では「レンダラー」)に対するネットワーク構成の抽象化を提供します。 networkd およびNetworkManager 。 Netplanを使用すると、物理ネットワークインターフェイスと仮想ネットワークインターフェイスの両方が yamlを介して構成されます。 選択したバックエンドと互換性のある構成に変換されるファイル。
Ubuntu 20.04では、Netplanは、/etc/network/interfaces
を使用してネットワークインターフェイスを構成する従来の方法を置き換えます。 ファイル;これは、物事をより簡単かつ一元化することを目的としています(インターフェイスを構成する古い方法は引き続き使用できます。Ubuntu20.04FocalFossaLinuxでネットワークを/etc/ network / interfacesに戻す方法に関する記事を確認してください)。この記事では、ユーティリティの背後にある基本原則と、例として、ユーティリティを使用してネットワークインターフェイスの静的IPv4アドレスを構成する方法を学習します。
このチュートリアルでは、学習します :
- Netplanで使用されるyaml構成ファイルの基本構造
- 静的IPをネットワークインターフェースに割り当てるための簡単なルールを作成する方法
- generateを使用して構成を適用する方法 、試してください および適用 サブコマンド
初心者向けのNetplanネットワーク構成チュートリアル
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
Ubuntu 20.04(Focal Fossa) | |
Netplan(デフォルトでインストールされます) | |
構成ファイルを変更するためのルート権限 | |
#–指定されたlinux-commandを、rootユーザーとして直接、またはsudo を使用してroot権限で実行する必要があります。 command $ –指定されたlinux-commandsを通常の非特権ユーザーとして実行する必要があります |
Netplan構成ファイル
Netplan構成ファイルを配置できる場所は3つあります。優先順位の高いものは次のとおりです。
-
/run/netplan
-
/etc/netplan
-
/lib/netplan
これらの各ディレクトリ内で、 .yamlのファイルを使用して構成が作成されます 辞書式で処理される拡張子 ディレクトリに関係なく、順序付けます。
ディレクトリの優先度は、同じ名前のファイルが存在する場合にのみ役割を果たします。その場合、優先度の高いディレクトリに含まれるファイルのみが解析されます。
ブール値の場合 またはスカラー パラメーターは複数の構成ファイルで定義されており、解析される最後のファイルで定義された値を想定します。値がシーケンスの場合 代わりに、それらは連結されます。
ユーザーは、構成を/etc/netplan
内に配置することになっています。 ディレクトリ;デフォルトでは、新しくインストールされたUbuntu20.04システムに存在する唯一のファイルは/etc/netplan/01-network-manager-all.yaml
です。 。次のセクションでは、そこに含まれる手順とその意味を説明します。
/etc/netplan/01-network-manage-all.yamlファイル
/etc/netplan/
に存在する唯一の構成ファイル 新しくインストールされたUbuntu20.04システムのディレクトリは01-network-manage-all.yaml
です。 。その内容を見てみましょう:
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
ファイル内のコメントで示唆されているように、この構成は、システム上のすべてのネットワークインターフェースをNetworkManager
によって管理されるように設定することを目的としています。 レンダラー。メインノードnetwork
内でディレクティブがインデントされていることがわかります。 。 yamlファイルを扱っているので、インデントは非常に重要です。
ファイルで見つけることができる別の2つのキーワードは、version
です。 およびrenderer
:前者は使用中の構文バージョンを指定し、後者はシステムバックエンド (ネットワーク化 vs NetworkManager 。
このチュートリアルの次のセクションでは、もう少し複雑な構成例を作成し、それを使用して静的IPv4アドレスをネットワークインターフェイスに割り当てます。
構成例–静的IPv4アドレスの設定
上で見た構成ファイルは非常に基本的なものです。もう少し複雑なことを試して、Netplanを使用して静的IPv4アドレスを構成する方法を見てみましょう。
最初に行う必要があるのは、デフォルトの構成ファイルの後に解析される新しい構成ファイルを作成することです。それを/etc/netplan/02-static-ip.yaml
と呼びましょう。 。ファイル内に、セットアップするネットワークインターフェイスに一致するルールを作成します。match
を使用してタスクを実行できます。 スタンザ。
match
の内部 セクションでは、指定されたプロパティの値に基づいて一連の物理インターフェイスを選択できます。適用する設定を行うには、すべてのプロパティがルールに一致している必要があります。
構成ファイルに次のように記述します:
# Set static ip address for enp1s0 interface network: version: 2 renderer: NetworkManager ethernets: id0: match: name: enp1s0 dhcp4: false addresses: - 192.168.122.250/24 nameservers: addresses: - 192.168.122.1 gateway4: 192.168.122.1
構成で使用した新しい手順を詳しく見てみましょう。メインのnetwork
の内部 ノード、デバイスはタイプ別にグループ化できます:
ethernets
-
wifis
bridges
この例ではイーサネットデバイスを扱っているので、ethernets
を使用しました スタンザ。 match
の内部 スタンザ、name
でインターフェースを参照しました :enp1s0
。一致ルールは、macaddress
に基づくこともできます そして、networkd
を使用する場合のみ レンダラーとして、driver
これは、デバイスに使用されるLinuxカーネルドライバー名です。
目的の構成に到達するために、一連のディレクティブを使用しました。静的アドレスを割り当てたいので、dhcp4
を無効にしました addresses
を使用しました キーワードを使用して、IPv4アドレスをインターフェイスに関連付けます。複数のアドレスを指定できます。サブネットマスクと一緒に指定する必要があります。
nameservers
のアドレスも設定します 同じ名前のスタンザで。最後に、インターフェースがgateway4
で使用するゲートウェイのIPv4アドレスを設定します。 キーワード。
構成の簡素化
上記の例で使用した構成は、少し単純化できます。静的アドレスを割り当てるインターフェースを参照するために、match
を使用しました ただし、スタンザは省略できます。設定を1つの特定のデバイスにのみ適用する必要があるため、予測可能な名前(enp1s0
)を使用して直接参照できます。 )as id :
network: version: 2 renderer: NetworkManager ethernets: enp1s0: dhcp4: false addresses: - 192.168.122.250/24 nameservers: addresses: - 192.168.122.1 gateway4: 192.168.122.1
match
の場合 スタンザが使用され、 id (id0
前の例では)は任意であり、構成ファイルの他のセクションから構成されたデバイスを参照するために使用されます。 match
の場合 スタンザは省略され、代わりに id デバイスの予測可能な名前に対応している必要があります。ブリッジやボンドなどの仮想デバイスを操作する場合、 id 既存のインターフェースを参照するために使用されるのではなく、インターフェースの作成時に使用される名前を表します。
この時点で、構成の準備ができています。保存してテストするだけです。
Netplan構成のテストと適用
前のセクションでは、ネットワークインターフェイスに静的IPv4アドレスを提供するための単純なNetplan構成を作成する方法を説明しました。次に、構成をテストして、正しく機能するかどうかを確認します。目標を達成するために、netplan
を使用できます ユーティリティとtry
サブコマンド。
try
netplan
のサブコマンド ユーティリティは、その名前が示すように、構成を試行するために使用され、ユーザーが一定時間経過しても確認しない場合は、オプションでロールバックします。デフォルトのタイムアウトは120
です 秒ですが、--timeout
を使用して変更できます オプション。
ip address
の出力からわかるように コマンド、enp1s0
の現在のIPv4アドレス インターフェースは192.168.122.200
です :
$ ip address|grep enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.200/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
構成を適用しましょう:
$ sudo netplan try
コマンドを実行すると、次のプロンプトが画面に表示されます。
Do you want to keep these settings? Press ENTER before the timeout to accept the new configuration Changes will revert in 120 seconds
インターフェイスのIPアドレスが変更された場合は、十分な時間があります。
$ ip address|grep enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.250/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
ご覧のとおり、IPv4アドレスは予想どおりに変更されました。ただし、この場合、タイムアウトの期限が切れた後、コマンドは構成を元に戻すことができませんでした。これは既知の問題であり、ユーティリティのマンページでも報告されています。このような場合、完全に初期状態に戻すには、再起動するだけで十分です。
他に2つのコマンドを使用できます:
-
netplan generate
netplan apply
netplan generate
コマンドは、yamlファイルの設定を、使用中のレンダラーに適した構成に変換しますが、適用しません。ほとんどの場合、直接呼び出されることを意図していません。たとえば、netplan apply
によって呼び出されます。 これにより、「元に戻す」タイムアウトなしで変更が追加で適用されます。
結論
このチュートリアルでは、Canonicalによって開発されたユーティリティであるNetplanにアプローチしました。これは、Ubuntu 20.04FocalFossaでデフォルトでアクティブになっています。このユーティリティの目的は、yaml構成ファイルを使用してネットワークインターフェースの構成を抽象化することです。
これらの設定は、NetworkManagerやnetworkdなどの指定されたレンダラーの設定に変換されます。このチュートリアルでは、ネットワークインターフェイスの静的IPアドレスを設定する簡単なルールを作成する方法、構成ファイルで使用できるノードのいくつかを学習し、netplan try
およびnetplan apply
コマンド。ここでは、Netplanを使用して達成できることのほんの一部を紹介しました。詳細については、NetplanのWebサイトとユーティリティのマンページを参照してください。