1.9. sysconfig ファイルを使ったネットワーク設定

/etc/sysconfig/ ディレクトリーは、設定ファイルおよびスクリプトの場所になります。ほとんどのネットワーク設定の情報は、ここに保存されます。例外は VPN、モバイルブロードバンド、および PPPoE 設定で、これらは /etc/NetworkManager/ のサブディレクトリー内に保存されます。たとえば、インターフェース固有の情報は、/etc/sysconfig/network-scripts/ ディレクトリー内の ifcfg ファイルに保存されます。
/etc/sysconfig/network はグローバル設定用のファイルです。VPN、モバイルブロードバンド、および PPPoE 接続の情報は、/etc/NetworkManager/system-connections/ に保存されます。
Red Hat Enterprise Linux 7 では、ifcfg ファイルを変更しても、NetworkManager は自動的に変更を認識しないので、変更を通知する必要があります。NetworkManager のプロファイル設定を更新するツールを使用している場合、そのプロファイルを使用して接続するまでは、NetworkManager は変更を実行しません。たとえば、エディターを使用して設定ファイルが変更された場合、NetworkManager にその設定ファイルを再度読み込むように指示する必要があります。これを行うには、root で以下のコマンドを実行します。
~]# nmcli connection reload
上記のコマンドを実行すると、すべての接続プロファイルが読み込まれます。別の方法では、以下のコマンドを実行して、変更されたファイルである ifcfg-ifname をリロードします。
~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-ifname
このコマンドは、複数のファイル名をとります。これらのコマンド実行には、root 権限が必要になります。ユーザー権限と権限の取得に関する詳細情報は、Red Hat Enterprise Linux 7 システム管理者のガイド および su(1)sudo(8) の man ページを参照してください。
nmcli などのツールでなされた変更はリロードする必要がありませんが、関連するインターフェースをオフラインにしてから再度オンラインにする必要があります。これは、以下の形式のコマンドで実行できます。
nmcli dev disconnect interface-name
次に以下を実行します。
nmcli con up interface-name
ifup コマンドの実行時に NetworkManager が稼働している場合、ネットワークスクリプトは NetworkManager の起動を試みますが、NetworkManager はネットワークスクリプトを起動することはありません。ネットワークスクリプトの詳細は、「NetworkManager とネットワークスクリプト」 を参照してください。
ifup スクリプトは汎用スクリプトで、いくつかの動作を行った後に、ifup-ethXifup-wirelessifup-ppp などのインターフェース固有のスクリプトを呼び出します。ユーザーが ifup eth0 を手動で実行すると、以下のことが発生します。
  1. ifup/etc/sysconfig/network-scripts/ifcfg-eth0 という名前のファイルを検索します。
  2. ifcfg ファイルが存在する場合、ifup はそのファイルの TYPE キーを探して、どのタイプ固有のスクリプトを呼び出すか判断します。
  3. ifupTYPE に基づいて ifup-wirelessifup-eth、または ifup-XXX のいずれかを呼び出します。
  4. タイプ固有のスクリプトがタイプ固有のセットアップを実行します。
  5. その後に、タイプ固有のスクリプトは、共通機能に DHCP や静的セットアップなどの IP 関連タスクの実行を許可します。
/etc/init.d/network は起動時にすべての ifcfg ファイルを読み込み、ONBOOT=yes となっているファイルすべてに関して、NetworkManager がすでに ifcfg ファイルの DEVICE を起動しているかどうかをチェックします。NetworkManager がデバイスを起動している最中、またはすでに起動し終わっている場合は、そのファイルについてはこれ以上なにも実行されず、次の ONBOOT=yes ファイルがチェックされます。NetworkManager がまだデバイスを起動していない場合は、initscripts は従来の動作を継続し、その ifcfg ファイルの ifup を呼び出します。
その結果、ifcfg ファイルで ONBOOT=yes となっているものはすべて、NetworkManager または initscripts でシステム起動時に開始されることが期待されます。これにより、(ISDN やアナログダイアルアップのモデムなどの) NetworkManager が処理しないレガシーネットワークタイプや NetworkManager のサポート対象となっていない新規アプリケーションは、NetworkManager がこれらを処理できなくても initscripts で正常に開始されることになります。

注記

ifcfg のバックアップファイルは、使用中のファイルと別の場所に保存することが推奨されます。このスクリプトは、 .old.orig.rpmnew.rpmorig、および .rpmsave の拡張子のみを ifcfg-* で exclude を文字通り実行します。/etc/ ディレクトリー内にはバックアップファイルを保存しないことが最善の方法になります。