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