Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.6. ネットワークスクリプトによる NetworkManager の使用

本セクションは、スクリプトの実行方法と、ネットワークスクリプトでカスタムコマンドを使用する方法を説明します。
ネットワークスクリプト という用語は、スクリプト /etc/init.d/network と、呼び出すその他のインストール済みスクリプトを指します。NetworkManager はデフォルトのネットワークサービスを提供しますが、スクリプトと NetworkManager は並行して実行され、連携できます。Red Hat は、それを最初にテストすることを推奨します。

ネットワークスクリプトの実行

systemctl コマンド
systemctl start|stop|restart|status network
のみ ネットワークスクリプトを実行すると、systemctl ユーティリティーは既存の環境変数をクリアし、正しい実行を確保します。
Red Hat Enterprise Linux 7 では NetworkManager が最初に起動し、/etc/init.d/networkNetworkManager でチェックされ、NetworkManager の接続が改ざんされないようにします。NetworkManager は、sysconfig 設定ファイルを使用するプライマリーアプリケーションであり、/etc/init.d/network はセカンダリーとなることを目的としています。
/etc/init.d/network スクリプトは以下を実行します。
  1. 手動 - systemctl コマンドの 1 つを使用して、ネットワークstart|stop|restart を使用します。
    または
  2. ネットワークサービスが有効になっている場合は、システムの起動時にシャットダウンします( systemctl enable network コマンドの結果)。
これは手動のプロセスで、起動後に発生するイベントに反応しません。ユーザーは、ifup スクリプトおよび ifdown スクリプトを手動で呼び出すこともできます。
注記
initscripts の技術的制限により、systemctl reload network.service コマンドは機能しません。ネットワークサービスに新しい設定を適用するには、restart コマンドを使用します。
~]# systemctl restart network.service
これにより、新しい設定を読み込むために、ネットワークインターフェイスカード (NIC) をすべて無効にして有効にします。詳細は、Red Hat ナレッジベースソリューション Reload and force-reload options for network serviceを参照してください。

ネットワークスクリプトのカスタムコマンドを使用

/sbin/ifup-local スクリプト、ifdown-pre-local スクリプト、および ifdown-local スクリプトは、これらのデバイスが /etc/init.d/network サービスによって制御されている場合にのみ実行されます。ifup-local ファイルは、デフォルトでは存在しません。必要に応じて、/sbin/ ディレクトリーの下に作成します。
ifup-local スクリプトは initscripts によってのみ読み取り可能で、NetworkManager では読み取りできません。NetworkManager を使用してカスタムスクリプトを実行するには、dispatcher.d/ ディレクトリーの下に作成します。「dispatcher スクリプトの実行」を参照してください。
重要
initscripts パッケージに関連する rpms に含まれるファイルの変更は推奨されません。ファイルを変更した場合は、Red Hat サポートの対象外となります。
カスタムタスクは、ネットワーク接続が起動および停止したときに、古い ネットワークスクリプトNetworkManager の両方を使用して実行できます。NetworkManager が有効な場合は、ifup スクリプトおよび ifdown スクリプトにより、NetworkManager が問題のインターフェイスを管理するかどうかを NetworkManager に尋ねます。これは、ifcfg ファイルの DEVICE= 行にあります。
NetworkManager が管理するデバイス:
ifup の呼び出し
ifup を呼び出し、デバイスが NetworkManager により 管理 されている場合には、以下の 2 つのオプションがあります。
  • デバイスがまだ接続されてい ない 場合は、ifup により、NetworkManager が接続を開始するよう要求されます。
  • デバイスがすでに 接続している 場合は、何もする必要がありません。
ifdown の呼び出し
ifdown を呼び出し、デバイスが NetworkManager により 管理 されている場合:
  • ifdown により、NetworkManager が接続を終了します。
NetworkManager が管理していないデバイス:
ifup または ifdown を呼び出すと、スクリプトは、NetworkManager が存在する前の時間以降に使用された NetworkManager 以外のメカニズムを使用して接続を開始します。

dispatcher スクリプトの実行

NetworkManager は、追加のカスタムスクリプトを実行して、接続の状態に基づいてサービスを開始または停止する方法を提供します。デフォルトでは、/etc/NetworkManager/dispatcher.d/ ディレクトリーが存在し、NetworkManager はそこでアルファベット順にスクリプトを実行します。各スクリプトは、root所有する実行可能ファイルで なければならず、ファイル所有者にのみ 書き込み権限 が必要です。NetworkManager の dispatcher スクリプト実行の詳細は、Red Hat ナレッジベースソリューションethtool コマンドを適用するように NetworkManager の dispatcher スクリプトを記述するを参照してください。