回答:
のudevルールを確認してください/etc/udev/rules.d
。
私のFedoraディストリビューションでは、自動的に書かれたルールがあります 70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:f1:cc:2f:1a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
これにより、イーサネットアドレスがデバイス名に明確にリンクされます。ファイルの先頭にあるコメントは、この動作を調整する方法の良い手がかりを提供します。
私が理解していることから、Linuxはバスの番号付けを使用して、特定のマシンでのインターフェースの順序と番号付けを決定します。PCIバス、mini-PCI、またはその他のものを使用できます。最近、あらゆる種類と種類の並列起動スクリプトのために、ブートごとに時々物事が完全にランダムになりました(実際、同じマシン上でNICの名前は多かれ少なかれ同じですが、他のデバイスはそれほどではありません)。
明らかに、バス上のデバイスの順序はマシンごとに変わります。変更されないのはMACアドレスです。
私の解決策:
udevを使用している場合、ここで説明したルール(Debinの場合、ubuntuも同様)に類似したudev構成ルールを使用して、特定のインターフェースとNICのMACアドレス間のバインディングを強制できます。
警告Emptor:一部のNICでは、MACを編集できます。この場合、機能しません。
課外情報:実装が難しい代替案は、Matt Domsch / DellがFedoraに提案している新しいメカニズムを使用することです。
Ubuntuに関する限り、そのスキームを統合する提案もあります。上記1によると:Fedoraは先にbiosdevnameを出荷していますが、他のLinuxディストリビューションもそれを採用する予定です。これはすでにUbuntu 11.04にこれを統合するための青写真があり、OpenSUSEに含めるための機能要求もあると伝えられています。
これがお役に立てば幸いです。