第11章 ネットワークデバイス命名における一貫性
Red Hat Enterprise Linux は、ネットワークインターフェイス用に一貫した予想可能なネットワークデバイス命名の方法を提供します。この機能では、インターフェイスの位置判定と区別が容易になるようにシステム上のネットワークインターフェイス名を変更します。
従来の Linux のネットワークインターフェイスには次のように列挙されます。
eth[0123…]s0
ただし、この名前がシャーシの実際のラベルに対応しているとは限りません。複数のネットワークアダプターを使用する最新のサーバープラットフォームでは、このインターフェイスの非決定論的および反直感的な命名が行われています。これは、マザーボードに組み込まれたネットワークアダプター (Lan-on-Motherboard または LOM) とアドイン (シングルおよびマルチのポート) アダプターの両方に影響します。
Red Hat Enterprise Linux では、udev は多くの異なる命名スキームをサポートしています。デフォルトでは、ファームウェア、トポロジー、および場所情報に基づいて固定名が割り当てられます。これには、名前が完全に自動的かつ予想可能であり、ハードウェアが追加もしくは削除されても (再列挙がなされず) 固定のままであり、またハードウェアが壊れた場合にシームレスに交代可能であるという利点があります。マイナス面は、従来使用されていた eth または wla といった名前と比べて読みにくい場合があるという点です。以下に例を示します。enp5s0。
警告
Red Hat は、一貫性のあるデバイス命名が無効になっているシステムをサポートしていません。詳細は、Is it safe to set net.ifnames=0? を参照してください。
11.1. 命名スキームの序列
デフォルトでは、
systemd
は以下のポリシーを使用してサポート対象の命名スキームを適用するインターフェイスに名前を付けます。
- スキーム 1: ファームウェアまたは BIOS が提供するオンボードデバイスのインデックス番号を組み込んだ名前(例:
eno1
)は、ファームウェアまたは BIOS からの情報が適用可能かつ利用可能な場合に適用されます。そうでない場合は、スキーム 2 にフォールバックします。 - スキーム 2: ファームウェアまたは BIOS が提供する PCI Express ホットプラグスロットインデックス番号(例:
ens1
)を組み込んだ名前は、ファームウェアまたは BIOS からの情報が適用可能かつ利用可能な場合に適用されます。そうでない場合は、スキーム 3 にフォールバックします。 - スキーム 3: ハードウェアのコネクターの物理的な場所を組み込む名前(例:
enp2s0
)は、該当する場合に適用されます。そうでない場合は、スキーム 5 にフォールバックします。 - スキーム 4: インターフェイスの MAC アドレス(例:
enx78e7d1ea46da
)を組み込む名前はデフォルトで使用されていませんが、ユーザーが選択した場合は利用できます。 - スキーム 5: 従来の予測不可能なカーネル命名スキームは、他のすべての方法が失敗した場合に使用されます(例:
eth0
)。
上記のポリシーがデフォルトになります。システムで biosdevname が有効になっている場合は、これが使用されます。biosdevname を有効にするには、Dell システムの場合を除き、biosdevname= 1 をカーネルコマンドラインパラメーターとして渡す必要があります。ここで、biosdevname がデフォルトで使用されます。ユーザーがカーネルデバイスの名前を変更する udev ルールを追加している場合は、これらのルールが優先されます。