この記事はUS Dell TechCenterの記事を翻訳したものです。

原文はこちらになります。http://en.community.dell.com/dell-blogs/enterprise/b/tech-center/archive/2011/01/24/consistent-network-device-naming-coming-to-fedora-15.aspx

 

これは、デルのCTOオフィスのテクノロジーストラテジスト(Linuxの専門家でもある)、Matt Domschの代理で投稿したものです。

 

私が長年あたためてきたプロジェクトの1つ、一貫性のあるネットワークデバイスの命名がついにFedoraで実現します (FedoraのFが表す意味のうちの2つ、Feature (機能) とFirst (最速) を強調しておきましょう)。今後、すべてのLinuxディストリビューションでも実現するはずです。何事かと思われているでしょうか。

 

Linuxが動作するシステムでは昔から、イーサネットネットワークデバイスにethXという名前が付けられていました。デスクトップには、eth0という名前のイーサネットポートがあるはずです。ネットワークポートが1つだけの場合は、これで問題ありません。では、Dell PowerEdgeサーバなどで、4つのイーサネットポートがある場合はどうでしょう。  それらには、シャーシ背面のラベル1、2、3、4に対応して、eth0、eth1、eth2、eth3と名前が付けられます。ただ、そうでない場合もあります。明らかに紛らわしい点として、名前が0から始まるか1で始まるかということがありますが、それ以外の競合状態が発生する可能性があります。たとえば、各ポートがブートごとに同じ名前になるとは限りませんし、無作為な順序で名前が付けられる可能性もあります。PCIスロットにネットワークカードを追加する場合、マザーボードのポートとアドインカードのポートが混在する可能性があるので、状況はさらに悪化します。

 

これまで、いくつかの解決策が提案されてきました (昨年のLinux Plumbers Conferenceで詳しく説明) が、今までのところ、受け入れられたものはありません。

 

biosdevnameを実行してみてください。これは、デルの開発したツールで、ネットワークデバイスの名前を健全な (かつ一貫性を保った) ものにします。biosdevnameは、udevのヘルパーであり、システムBIOSが提供する情報に基づいてネットワークインターフェイスの名前を変更します。

 

新しい命名規則は次の通りです:

 

  • em[1-N]は、オンボード (埋め込み型) のNICの場合に使用します (番号はシャーシのラベルに一致します)。
  • pci<slot>#<port>は、PCIスロット内のカードのポート番号1~Nに使用します。
  • NPARおよびSR-IOVデバイスの場合、各ポートで公開されるパーティションまたは仮想機能の数によって決まるサフィックス_<vf> (0~N) を追加します。
  • その他のLinuxの規則として、.<vlan>や:<alias>などのサフィックスは変更がなく、従来通り使用できます。

 

これによって、Linuxのネットワークインターフェイス名と外部から確認できるネットワークポート (RJ-45ジャック) の正常なマッピングが実現します。

この情報はどこで取得できるのでしょうか。アルゴリズムはとてもシンプルです:

 

  • システムBIOSが新しいPCI Firmware Specification 3.1のACPI _DSMメソッドを公開する場合、ACPIからインターフェイスのラベルとインデックスを取得して、それを使用します。
  • システムBIOSが、SMBIOS 2.6のタイプ9および41を使用してインデックスとラベルを公開する場合、そのインデックスを使用します。
  • システムBIOSが、HP独自のSMBIOS拡張を介してインデックスを公開する場合は、それを使用します。
  • それ以外の場合は、レガシーのPCI IRQルーティングテーブルに戻り、これを使用してどのスロットにデバイスが挿入されているかを確認し、PCIデバイスリストを幅優先順でソートして、インデックス値を割り当てます。

 

このことで、どのような影響があるでしょうか。

 

スクリプトにeth0をハードコーディングしている場合、または、ethXを特定のポートとして仮定している場合、スクリプトは正常に動作しません (また経験されたことがないかもしれませんが)。必要に応じてスクリプトを修正し、将来的に新しいインターフェイス名を使用する計画を始められるのがよいでしょう。

 

Fedora 15は、デフォルトでbiosdevnameを使用する最初のディストリビューションです。1月27日(木)にTest Dayが予定されています。ライブイメージをダウンロードして、ご自分のシステムでブートし、ネットワークインターフェイスが前述の規則に従っているか、そしてすべてが予想通りに動作するかを確認してください。カスタムスクリプトを確認して、ethXの値がハードコーディングされていないかを調べ、今後の名前の変更に備えるとよいでしょう。

 

Fedoraの導入と検証が十分に行われたら、この変更が別のLinuxディストリビューションに拡大され、いずれはその他のオペレーティングシステムにも適用されることを期待しています。要注目です。

 

関連記事:RHEL 6 SP1が、デル製システム上でネットワークデバイスの進化した命名規則を実現