経験豊富なシステム管理者であり、ネットワーク管理に重点を置いている場合は、おそらくネットワークマネージャーについてすでに聞いたことがあるでしょう。 。
2004年にリリースされ、RedHatによって開発されたネットワークマネージャー は、システムのネットワーク管理を容易にするために設計された、主にインターフェイスであるさまざまなツールのセットです。
ネットワークアダプタをオンにする場合は、おそらくネットワークマネージャを使用します それを達成するために。
同様に、割り当てられたIPアドレスを変更するために既存のネットワークカードを編集する場合は、ネットワークマネージャーを再度使用します。
このチュートリアルでは、ネットワークを簡単に管理するためにNetworkManagerスイートのさまざまなツールを使用する方法について説明します。
スイートに組み込まれているツール( nmcli、nmtui、nm-applet )を一覧表示した後 )、ネットワーク管理者の実際の使用例のリストを確認します。
NetworkManagerアーキテクチャ
Network Managerの機能に飛び込む前に、まずそのアーキテクチャと、カーネル関連モジュールとの通信方法について説明しましょう。
ネットワークマネージャーAPI
理解する最初の概念は、NetworkManagerがホストでネットワークインターフェースを構成するためのAPIとして機能するということです。
ただし、ネットワークマネージャは単独では機能しません。これは、ネットワークソケットと呼ばれるエンドポイントでネットワークメッセージを受信するプロセスの一部です。
ネットワークソケットは、ネットワークを介したデータの共有を開始するために、イーサネットケーブルに接続されたイーサネットNICによって物理的に表されます。
イーサネットケーブルが接続されると、最初にudevモジュールによって認識されます。 これにより、新しいケーブルが接続されたことを通知するためにネットワークマネージャーに信号が送信されます。
このようにして、ネットワークマネージャは接続を維持できますが、ネットワークの可用性を他のアプリケーションに公開することもできます。
Firefoxを使用していて、Firefoxがネットワーク接続のステータスを知る必要がある場合、Firefoxはこの情報を取得するためにDBusを介してネットワークマネージャーに問い合わせることができます。
Network Managerは、実際には、利用可能なネットワークカード、有線または無線ネットワークに関する詳細を提供するネットワークAPIです。
また、専用の構成ファイルを使用してネットワークカードとインターフェイスを簡単に構成する方法も提供します。
NetworkManagerとifupdown
これまで、Linuxオペレーティングシステムは、主に/ etc/networkにある構成ファイルを使用してさまざまな方法でネットワークインターフェイスを管理するために使用されていました。
このディレクトリでは、ネットワークインターフェイスを構成するためにファイルを使用できます:インターフェイスファイル。

ただし、最近のディストリビューションでは、ifupおよびifdownユーティリティで使用される「interfaces」ファイルは使用されていません。
デフォルトでは、ネットワークマネージャーがネットワークインターフェースを管理します ただし、ネットワークの管理方法は、NetworkManager構成ファイルで変更できます。
正確には、NetworkManager.confファイルの「ifupdown」セクションの「managed」パラメータは、NetworkManagerがシステムで使用されているかどうかを示します。

注 :「false」は、Network Managerが接続とデバイスを管理することを意味し、「true」は、ifupとifdownを使用して古い方法で管理することを好むことを意味します。
systemd-networkdについて
新しいシステムでは、systemdはほとんどすべてを処理するように設定されており、ネットワークも例外ではありません。
場合によっては、システムがsystemd-networkデーモンに依存している可能性があります。 インターフェイスを管理するため。
ネットワークに関連する構成の競合を回避するために、一度に1つのネットワークサービスのみを有効にする必要があることに注意してください。ifupdown、systemd-networkd、NetworkManagerのいずれでもかまいません。
「interfaces」ファイルを使用してネットワークを管理することに慣れている場合は、それを継続することをお勧めします。それ以外の場合は、NetworkManagerに切り替えることをお勧めします。
ネットワークマネージャーツール
Network Managerについて理解を深めたところで、このスイートで提供されているツールの列挙を始めましょう。
ネットワークマネージャー 次のツールを提供します:
- nmcli :Network Managerを使用して接続を構成、追加、編集、および削除するために使用される専用のコマンドラインツール。
- nmtui :nmcliと互換性のある機能のサブセットのみを提供するグラフィカルユーザーインターフェイス。 nmtuiを使用すると、接続を編集したり、接続をアクティブにしたり、コンピューターのホスト名を変更したりできます。
- nm-アプレット :GNOMEデスクトップ環境で使用可能なこのアプレットは、ネットワークに接続またはネットワークから切断するために使用できるインターフェイスオーバーレイとして使用されます。

一部のディストリビューションには、上記のツール(nmtui-connect、nmtui-edit、またはnmtui-hostname)のNetworkManager「ショートカット」が含まれている場合があることに注意してください。
ほとんどの場合、これらのユーティリティは実際にはメインのnmtuiユーティリティへの単純なソフトリンクです。

次のセクションでは、ネットワークを適切に構成するために、上記のさまざまなツールをどのように使用できるかを見ていきます。
nmcliを使用したネットワーク構成
前のセクションで説明したように、 nmcliは、ネットワーク接続を監視するために使用できるコマンドラインユーティリティです 、接続を追加、編集、削除したり、システム上のデバイスに関する詳細情報を取得したりすることもできます。
次の構文を使用してnmcliと対話できます
$ nmcli <options> <section> <action>
nmcliには8つのセクションのセットがあります:
- ヘルプ :nmcliの使用法に関する一般的なヘルプを得るために使用されます;
- 一般 :NetworkManager自体のステータスとグローバル設定を取得するために使用されます。
- ネットワーキング :ネットワークマネージャをシャットダウンするため、またはネットワークマネージャを再び起動するために、メソッドを公開します。
- ラジオ :WIFIやWANなどのワイヤレス伝送プロトコルを管理するために使用されます。
- 接続 :その名前が示すように、このセクションは、インターフェイスを上下させたり、既存の接続を追加および削除したりするために使用されます。
- デバイス :主に、特定のデバイスに関連付けられたパラメータ(たとえば、インターフェイス名)を変更したり、既存の接続を使用してデバイスを接続したりするために使用されます。
- エージェントとモニター :これらのセクションは、それぞれシークレットを処理し、ネットワークの変更を監視するために使用されます。
説明されている各セクションには、nmcliのドキュメントを読んで見つけることができる一連の事前定義されたアクションがあります(表示、追加、削除、変更、ロードなど)
たとえば、現在アクティブなすべての接続を一覧表示する場合は、「接続」セクションと「表示」アクションを指定して「nmcli」を実行します。
$ nmcli connection show

この場合、私のホストは「eth0」という名前のネットワークアダプターに有線イーサネット接続を持っています。
次のセクションでは、システムを適切に構成するためにネットワークカードと接続を操作する方法を説明します。
接続管理
Network Managerを使用する場合、接続は「ネットワーク構成」と見なすことができます 「。
結果として、「接続」には、レイヤー2(データリンクレイヤー)およびレイヤー3(IPアドレス指定に関連する可能性が高い)に関連するすべての情報が含まれます。
接続がデバイス、つまりホスト上のネットワークアダプターによって使用される場合、接続は「アクティブ」または「アップ」に設定されます。
一方、接続は「アイドル」である可能性があり、現在はすべてのネットワークインターフェイスで使用されています。この場合、接続は「非アクティブ」または「ダウン」に設定されています
ここでの最初の重要なポイントは、Linuxホストでネットワークを構成するときは常に、基本的に接続を構成し、後でデバイスにバインドすることです。
ネットワーク接続の一覧表示
ホストで利用可能なネットワーク接続を一覧表示するには、「接続」セクションの「表示」アクションを実行できます。
$ nmcli connection show

オプションで、結果をアクティブな接続(つまり、ネットワークアダプターによって使用される)に制限するために「–active」フラグを指定できます
nmcli connection show --active
ネットワーク接続の追加
場合によっては、複数の接続を構成しておくと便利な場合があります。
2つの異なる場所で作業しているとします。1つはIPアドレス(動的IPアドレス指定)を割り当てるためにDHCPを使用し、もう1つはコンピューターに静的IPを割り当てます。
これを実現するために、場所に応じて切り替えることができる追加のネットワーク接続を作成できます。
Network Managerを使用して新しいネットワーク接続を追加するには、次のことができます:
- 構成ファイルをシステム接続に追加します ディレクトリ / etc/NetworkManagerにあります;
- 「nmcli接続」を追加します 」コマンドと「追加」オプション;
- nm-connection-editorを使用します 既存の接続を追加、変更、および削除するためのGUIを提供するユーティリティ。
nmcliコマンドラインを使用して、次のコマンドを実行することで新しい接続を作成できます
$ sudo nmcli connection add type ethernet ifname eth2

nmcliを使用すると、新しく作成した接続に新しいUUID接続が割り当てられ、たとえばインターネットへの接続に使用できるようになります。
接続パラメータの変更
nmcliユーティリティの優れた機能の1つは、既存の接続のパラメータを変更することです。 。
IPアドレスを変更し、DHCPから手動IPアドレスに切り替える場合は、nmcliユーティリティを使用してこれらのパラメータを変更することもできます。
既存の接続パラメータを変更するために 、次の構文を使用します
$ nmcli connection modify <connection_id> <parameter> <value>
例として、IPアドレスを静的にし、値を「192.168.1.19」に設定するとします。
これを実現するには、次のコマンドを実行します
$ nmcli connection modify <uuid> ipv4.method manual
$ nmcli connection modify <uuid> ipv4.address 192.168.1.19/24
注 :IPアドレスを変更するときは、サブネットマスク(ここでは/ 24)を設定することを忘れないでください。そうしないと、ほとんどの場合間違っているデフォルトのマスクが割り当てられる可能性があります。
変更を有効にするには、「接続」セクションの「上」および「下」アクションを使用して接続を再開する必要があります。
$ nmcli connection down <uuid>
$ nmcli connection up <uuid>
インターフェイスが再起動されたので、IPの変更が有効になります。
$ hostname -I
192.168.1.19
デバイス管理
「デバイス 」はnmcliユーティリティのセクションの1つであり、ホスト上のネットワークアダプタを管理するために使用できます。
ネットワークアダプタの一覧表示
ホスト上のネットワークアダプタのリストを表示するには、「デバイス」セクションで「表示」アクションを実行できます。
$ nmcli device show

このコマンドは、ネットワークアダプタを広範囲に記述し、次のように一覧表示します:
- デバイス名 :デバイスがコンピューターに接続されたときにudevによって割り当てられます(この場合はeth0)。
- デバイスのMACアドレス 、ここではハードウェアアドレスと呼ばれます;
- デバイスの状態 :ネットワークに接続されているかどうか。
- IPv4アドレス CIDR表記を使用する(192.168.1.16/24)
- サブネットゲートウェイのIPv4 (192.168.1.1);
- メインDNSのIPv4 (192.168.1.1)
注 :ここでは、ゲートウェイがメインDNSとして機能していますが、社内に専用のネームサーバーがある場合があります。
これらの特性は、ホストで使用可能なネットワークカードを一覧表示し、それらが接続されているかどうかを判断する場合に非常に役立ちます。
デバイス構成の変更
場合によっては、デバイス構成を直接変更すると便利なことがあります。
ただし、覚えておく必要のある重要なポイントがあります。デバイスをライブで変更できますが、変更を保持したい場合は、代わりに接続構成を変更する必要があります。
つまり、デバイス構成の変更は一時的なものです。
デバイス構成を変更するには、「modify」オプションを指定して「nmclidevice」コマンドを実行し、変更するパラメーターを指定する必要があります。
$ nmcli device modify <interface_name> <parameter> <value>
$ nmcli dev mod <interface_name> <parameter> <value>
たとえば、「eth0」ネットワークインターフェイスのIPアドレスを変更するとします。また、IPアトリビューションを動的ではなく静的にする必要があります。
これを実現するには、次のコマンドを実行します
$ nmcli device modify eth0 ipv4.method manual
Connection successfully reapplied to 'eth0'
$ nmcli dev mod eth0 ipv4.address 192.168.1.19/24
Connection successfully reapplied to 'eth0'
パラメータの再適用
変更は一時的なものであることを示すためだけに 、パラメータをインターフェースに「再適用」すると、すべての変更が失われます。
代わりに、接続構成ファイル(/ etc / NetworkManager / system-connections内)で定義されたパラメーターが再適用されます。
$ nmcli dev reapply eth0
Connection successfully reapplied to 'eth0'
IPアドレスを再検査すると、前のセクションで静的に割り当てたものとは別のIPアドレスが得られます。
$ hostname -I
192.168.1.18/24
NetworkManagerグラフィカルツール
このセクションでは、Network Managerスイートに含まれているグラフィカルツール(nmtuiおよびnm-applet)を見ていきます。
Nmtuiユーティリティ
nmtuiは、その名前が示すように、使いやすいユーザーインターフェイスでネットワーク操作を容易にするために構築されたテキストユーザーインターフェイスです。
nmtuiから始めるには、ターミナルシェルで「nmtui」を実行するだけです。
$ nmtui

このグラフィカルメニューには、3つのオプションがあります:
- 接続を編集する :ネットワークインターフェイスを選択し、それらに割り当てられたパラメータ(DNS、IPアドレス、ゲートウェイアドレスなど)を変更できる場所。
- 接続をアクティブ化する :だけでなく、既存の接続を非アクティブ化します。注意として、接続は特定のデバイスに割り当てられている場合にのみアクティブまたは有効になります。
- システムホスト名を設定 :「hostnamectl」や「hostname」のように、ネットワーク経由でPC名を設定できます。
nmtuiツールでのナビゲートは非常に簡単です。キーボードキーを使用してナビゲートし、「Enter」キーを使用して選択を確認し、「Esc」キーを使用してキャンセルして前の画面に戻ることができます。
Nm-GNOME上のアプレット
Network Managerに関連する最後のアプリケーションはnm-applet:GNOMEユーザーインターフェースで使用可能なGUIアプレットです。
nm-appletツールは、デスクトップメニューの右上隅にあるオーバーレイユーザーインターフェイスです。

nmアプレットを使用すると、次のことができます。既存の接続を確認し、それらを自由に追加、編集、および削除できます。
有線接続の設定に関する詳細情報を表示して編集し、IPアドレスを変更したり、IPアトリビューション方法を変更したりできます(たとえば、DHCPから手動に)

結論
このチュートリアルでは、 Network Managerについて学習しました :ネットワーク接続を作成、変更、管理するために使用される最新のディストリビューションのツール。
Network Managerに関連するツール(つまり、 nmcli、nmtui、nm-applet )を発見しました。 )そして、既存の接続を変更するためにこれらのツールを使用する方法を学びました。
ネットワーキングまたはLinuxシステム管理に興味がある場合は、Webサイトに専用のセクションがありますので、ぜひチェックしてください!