Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

11.9. ネットワークデバイス命名におけるトラブルシューティング

「デバイスの名前変更ステップについて」にあるように、適用可能な場合は、予測可能なインターフェイス名が各インターフェイスに割り当てられます。udev が使用する名前の一覧を表示するには、root で以下の形式のコマンドを実行します。
~]# udevadm info /sys/class/net/ifname | grep ID_NET_NAME
ここでの ifname は、以下のコマンドでリストを表示されるインターフェイスのいずれかになります。
~]$ ls /sys/class/net/
利用可能な名前の 1 つは、「デバイスの名前変更ステップについて」 で説明されているルールに従って udev により適用されます。
  • /usr/lib/udev/rules.d/60-net.rules - from initscripts,
  • /usr/lib/udev/rules.d/71-biosdevname.rules - from biosdevname,
  • /usr/lib/udev/rules.d/80-net-name-slot.rules - from systemd
上記のルールファイルの一覧からは、インターフェイスの命名が initscripts または biosdevname を介して行われる場合は、常に udev のネイティブ命名よりも優先されます。ただし、initscripts の名前変更が行われず、biosdevname が無効になっている場合は、インターフェイス名を変更するには、80-net-name-slot.rules/usr から /etc にコピーし、ファイルを適切に編集します。つまり、特定の順番で使われるようにスキームをコメントアウトまたは配置します。

例11.1 カーネルネームスペースから命名されているインターフェイス (eth[0,1,2...]) と udev が正常に名前を変更したインターフェイスが混在している場合

スキームが混在しているとは、ハードウェアによってはカーネルによって udev に提供される情報で使用可能なものがないため、名前を特定できなかったり、udev に提供された情報が非一意のデバイス ID などに適していないことを意味します。後者の方が一般的で、ifcfg ファイルでカスタム命名スキームを使用するか、80-net-name-slot.rules を編集して使用する udev スキームを変更してください。

例11.2 /var/log/messages または systemd ジャーナルで、各インターフェイスの名前変更が 2 回実行されている場合

ifcfg ファイルにエンコードされているが、initrd イメージを再生成していない命名スキームのシステムでは、この問題が発生する可能性があります。インターフェイス名は、最初に initrd にある間、初期起動時に( biosdevnameudev、またはカーネルコマンドラインの dracut パラメーターを介して)割り当てられます。そして、実際の rootfs に切り替えた後、名前変更は 2 回行われ、60-net.rules を処理するため、udev が生成する /usr/lib/udev/rename_device バイナリーにより、新しいインターフェイス名が決定されます。このメッセージは無視しても問題ありません。

例11.3 ifcfg ファイル内の ethX 名の命名スキームが機能しない場合

Red Hat Enterprise Linux 7 では、非常に特殊な状況を除き、一貫性のある ethX 命名規則を適用することはできません。
インターフェイスを特定の名前に設定する udev ルールは、要求された名前が他のインターフェイスによってすでに使用されていると失敗します。これには、/usr/lib/udev/rules.d/60-net.rules ファイルによって提供される機能が含まれます。
起動時にカーネルがすべてのネットワークデバイスを把握する際には、ethX 命名規則が使われます。ethX 名は再起動ごとに変わるので、予測が不可能です。したがって、udev を使用してインターフェイスの名前を予測可能な名前に変更しようとしたり、カーネルが提供する予測不可能な ethX 名の順序を変更しようとすると失敗します。
ethX 名を使用すると、以下のシナリオで適切に機能します。
  • システムにネットワークインターフェイスが 1 つしかない。
  • Red Hat Enterprise Linux 7 ゲスト仮想マシンの virtio NIC に使われた場合。仮想化の導入および管理ガイドの KVM 準仮想化 (virtio) ドライバーおよびネットワーク設定の章を参照してください。

例11.4 net.ifnames=0 を設定した結果 enpXxX 名に一貫性がない場合

systemd 予測可能なインターフェイス命名(net.ifnames)と biosdevname 命名スキームの両方が無効になっている場合、ネットワークインターフェイスは引き続き、カーネルによって最初に指定された予測不能で一貫性のない ethX 名を使用します。
起動時にカーネルがすべてのネットワークデバイスを把握する際には、必ず enpXxX 命名規則が使われます。並列化により、カーネルインターフェイスの列挙の順序は、再起動後も異なります。Red Hat Enterprise Linux は、systemd の予測可能なインターフェイス命名スキームまたは biosdevname 命名スキームのいずれかに依存して、カーネル予測できない ethX インターフェイスの名前を、再起動後も常に一貫性を保ちます。
ネットワークアダプターの命名規則の詳細は、Red Hat カスタマーポータルでナレッジセンターサポートの記事Is it safe to set net.ifnames=0 in RHEL7?を参照してください。Red Hat カスタマーポータルのナレッジセンターのサポートに関する記事

例11.5 イーサネットインターフェイスの接頭辞の制限

選択する接頭辞は、次の要件を満たす必要があります。
  • ASCII 文字で設定される。
  • 英数字の文字列である。
  • 16 文字より短い。
  • ethenoensem など、ネットワークインターフェイスの命名に使用される周知の接頭辞と競合しません。