GNU/Linux >> Linux の 問題 >  >> Ubuntu

初心者向けのNetplanネットワーク構成チュートリアル

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ネットワーク構成チュートリアル

使用されるソフトウェア要件と規則

システム ソフトウェア その他 規約
ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
Ubuntu 20.04(Focal Fossa)
Netplan(デフォルトでインストールされます)
構成ファイルを変更するためのルート権限
#–指定されたlinux-commandを、rootユーザーとして直接、またはsudoを使用してroot権限で実行する必要があります。 command
$ –指定されたlinux-commandsを通常の非特権ユーザーとして実行する必要があります

Netplan構成ファイル

Netplan構成ファイルを配置できる場所は3つあります。優先順位の高いものは次のとおりです。

  1. /run/netplan
  2. /etc/netplan
  3. /lib/netplan

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サイトとユーティリティのマンページを参照してください。


Ubuntu
  1. PythonSciPyチュートリアル-初心者向けガイド

  2. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  3. 初心者向けのLinux日付コマンドチュートリアル(8例)

  1. Jenkinsチュートリアル:初心者向けの基本

  2. ポッドマンチュートリアル-初心者のための基本

  3. 初心者向けのLinux通信コマンドチュートリアル(5例)

  1. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  2. 初心者向けのLinuxduコマンドチュートリアル(10例)

  3. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)