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/network
が NetworkManager をチェックして、NetworkManager の接続の改ざんを回避します。NetworkManager は、sysconfig 設定ファイルを使用するプライマリーアプリケーションであり、/etc/init.d/network
はセカンダリーとなることを目的としています。
/etc/init.d/network
スクリプトは、以下を実行します。
- 手動で - systemctl コマンド
start|stop|restart
network のいずれかを使用して、または - ネットワークサービスが有効な場合は、起動およびシャットダウン時 - 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 つのオプションがあります。- デバイスがまだ接続されてい ない 場合は、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 スクリプトを記述するを参照してください。