Red Hat Training

A Red Hat training course is available for RHEL 8

25.4. nmcli を使用したオフラインモードでのキーファイル接続プロファイルの作成

Red Hat は、nmclinetwork RHEL システムロール、または nmstate API などの NetworkManager ユーティリティーを使用して NetworkManager 接続を管理し、設定ファイルを作成および更新することを推奨しています。ただし、nmcli --offline connection add コマンドを使用して、オフラインモードでキーファイル形式のさまざまな接続プロファイルを作成することもできます。

オフラインモードでは、nmcliNetworkManager サービスなしで動作し、標準出力を介してキーファイル接続プロファイルを生成することが保証されます。この機能は、次の場合に役立ちます。

  • どこかに事前に展開する必要がある接続プロファイルを作成する場合。たとえば、コンテナーイメージ内、または RPM パッケージとして作成する場合。
  • NetworkManager サービスが利用できない環境で接続プロファイルを作成する場合。たとえば、chroot ユーティリティーを使用する場合。または、Kickstart %post スクリプトを使用してインストールする RHEL システムのネットワーク設定を作成または変更する場合。

次の接続プロファイルタイプを作成できます。

  • 静的イーサネット接続
  • 動的イーサネット接続
  • ネットワークボンド
  • ネットワークブリッジ
  • VLAN またはサポートされているあらゆる種類の接続
警告

設定ファイルを手動で作成または更新すると、予期しないネットワーク設定や、機能しないネットワーク設定が発生する可能性があります。

前提条件

  • NetworkManager サービスが停止しています。

手順

  1. キーファイル形式で新しい接続プロファイルを作成します。たとえば、DHCP を使用しないイーサネットデバイスの接続プロファイルの場合は、同様の nmcli コマンドを実行します。

    # nmcli --offline connection add type ethernet con-name Example-Connection ipv4.addresses 192.0.2.1/24 ipv4.dns 192.0.2.200 ipv4.method manual > /etc/NetworkManager/system-connections/output.nmconnection
    注記

    con-name キーで指定した接続名は、生成されたプロファイルの id 変数に保存されます。後で nmcli コマンドを使用してこの接続を管理する場合は、次のように接続を指定します。

    • id 変数を省略しない場合は、Example-Connection などの接続名を使用します。
    • id 変数を省略する場合は、output のように .nmconnection 接尾辞のないファイル名を使用します。
  2. 設定ファイルにパーミッションを設定して、root ユーザーのみが読み取りおよび更新できるようにします。

    # chmod 600 /etc/NetworkManager/system-connections/output.nmconnection
    # chown root:root /etc/NetworkManager/system-connections/output.nmconnection
  3. NetworkManager サービスを再読み込みします。

    # systemctl start NetworkManager.service
  4. (必要に応じて) プロファイルの autoconnect 変数を false に設定した場合は、コネクションをアクティブにします。

    # nmcli connection up Example-Connection

検証

  1. NetworkManager サービスが実行されていることを確認します。

    # systemctl status NetworkManager.service
    ● NetworkManager.service - Network Manager
       Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2022-08-03 13:08:32 CEST; 1min 40s ago
         Docs: man:NetworkManager(8)
     Main PID: 7138 (NetworkManager)
        Tasks: 3 (limit: 22901)
       Memory: 4.4M
       CGroup: /system.slice/NetworkManager.service
               └─7138 /usr/sbin/NetworkManager --no-daemon
    
    Aug 03 13:08:33 example.com NetworkManager[7138]: <info>  [1659524913.3600] device (vlan20): state change: secondaries -> activated (reason 'none', sys-iface-state: 'assume')
    Aug 03 13:08:33 example.com NetworkManager[7138]: <info>  [1659524913.3607] device (vlan20): Activation: successful, device activated.
    ...
  2. NetworkManager が設定ファイルからプロファイルを読み込めることを確認します。

    # nmcli -f TYPE,FILENAME,NAME connection
    TYPE      FILENAME                                                    NAME
    ethernet /etc/NetworkManager/system-connections/output.nmconnection Example-Connection
    ethernet  /etc/sysconfig/network-scripts/ifcfg-enp1s0                 enp1s0
    ...

    新しく作成された接続が出力に表示されない場合は、使用したキーファイルのパーミッションと構文が正しいことを確認してください。

  3. 接続プロファイルを表示します。

    # nmcli connection show Example-Connection
    connection.id:                          Example-Connection
    connection.uuid:                        232290ce-5225-422a-9228-cb83b22056b4
    connection.stable-id:                   --
    connection.type:                        802-3-ethernet
    connection.interface-name:              --
    connection.autoconnect:                 yes
    ...