第1章 一貫したネットワークインターフェイス命名の実装

udev デバイスマネージャーは、Red Hat Enterprise Linux で一貫したデバイス命名を実装します。デバイスマネージャーは、さまざまな命名スキームをサポートしています。デフォルトでは、ファームウェア、トポロジー、および場所の情報に基づいて固定名を割り当てます。

一貫したデバイス命名を使用しない場合、Linux カーネルは固定の接頭辞とインデックスを組み合わせて名前をネットワークインターフェイスに割り当てます。カーネルがネットワークデバイスを初期化すると、インデックスが増加します。たとえば、eth0 は、起動時にプローブされる最初のイーサネットデバイスを表します。別のネットワークインターフェイスコントローラーをシステムに追加すると、再起動後にデバイスが異なる順序で初期化される可能性があるため、カーネルデバイス名の割り当てが一定でなくなります。その場合、カーネルはデバイスに別の名前を付けることがあります。

この問題を解決するために、udev は一貫したデバイス名を割り当てます。これには、次の利点があります。

  • 再起動してもデバイス名が変わりません。
  • ハードウェアを追加または削除しても、デバイス名が固定されたままになります。
  • 不具合のあるハードウェアをシームレスに交換できます。
  • ネットワークの命名はステートレスであり、明示的な設定ファイルは必要ありません。
警告

通常、Red Hat は、一貫したデバイス命名が無効になっているシステムはサポートしていません。例外については、Is it safe to set net.ifnames=0 ソリューションを参照してください。

1.1. udev デバイスマネージャーによるネットワークインターフェイスの名前変更の仕組み

ネットワークインターフェイスの一貫した命名スキームを実装するために、udev デバイスマネージャーは次のルールファイルを記載されている順番どおりに処理します。

  1. オプション: /usr/lib/udev/rules.d/60-net.rules

    このファイルは、initscripts-rename-device パッケージをインストールした場合にのみ存在します。/usr/lib/udev/rules.d/60-net.rules ファイルは、非推奨の /usr/lib/udev/rename_device ヘルパーユーティリティーが /etc/sysconfig/network-scripts/ifcfg-* ファイルの HWADDR パラメーターを検索することを定義します。変数に設定した値がインターフェイスの MAC アドレスに一致すると、ヘルパーユーティリティーは、インターフェイスの名前を、ifcfg ファイルの DEVICE パラメーターに設定した名前に変更します。

    システムがキーファイル形式の NetworkManager 接続プロファイルのみを使用する場合、udev はこの手順をスキップします。

  2. Dell システムのみ: /usr/lib/udev/rules.d/71-biosdevname.rules

    このファイルは、biosdevname パッケージがインストールされている場合にのみ存在します。このルールファイルは、前の手順でインターフェイスの名前が変更されていない場合に、biosdevname ユーティリティーが命名ポリシーに従ってインターフェイスの名前を変更することを定義します。

    注記

    biosdevname は Dell システムにのみインストールして使用してください。

  3. /usr/lib/udev/rules.d/75-net-description.rules

    このファイルは、udev がネットワークインターフェイスを検査し、udev の内部変数にプロパティーを設定する方法を定義します。これらの変数は、次のステップで /usr/lib/udev/rules.d/80-net-setup-link.rules ファイルによって処理されます。一部のプロパティーは未定義である場合があります。

  4. /usr/lib/udev/rules.d/80-net-setup-link.rules

    このファイルは udev サービスの net_setup_link ビルトインを呼び出します。udev/usr/lib/systemd/network/99-default.link ファイルの NamePolicy パラメーターのポリシーの順序に基づいてインターフェイスの名前を変更します。詳細は、ネットワークインターフェイスの命名ポリシー を参照してください。

    どのポリシーも適用されない場合、udev はインターフェイスの名前を変更しません。