web-dev-qa-db-ja.com

Udev:ネットワークインターフェイスの名前を変更する

Dell 1950サーバーにRHEL 6.をインストールしました。このサーバーは2つのGBitポート、Gb0とGb1です。

なんらかの理由により、udevGbeth1およびGb1eth0。これは間違いなく私にとって良い発見ではなく、混乱を招くだけです。

だから私は/etc/udev/rules.d/70-persistent-net.rules

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:c0",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:be",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

必要なものを反映するために、ファイルの「NAME」フィールドを変更しました。サーバーを再起動しましたが、機能しませんでした。

dmesgログでは、以下を読み取ることができます。

udev: renamed network interface eth1 to rename5
udev: renamed network interface eth0 to eth1
udev: renamed network interface rename5 to eth0

ここで何が問題になっているのですか?なぜudevはこのように切り替わるのですか?別の同様のサーバーがありますが、この問題はありません。

20
Hugo

私の場合、問題は、各インターフェイスのMACアドレスが3つのファイルで設定されているという事実に起因しています。

/etc/udev/rules.d/70-persistent-net.rules
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1

IfcfgファイルとMACアドレスのnet.rulesの整合性が必要です。

10
Hugo

これはかなり遅いですが、私は

KERNEL="eth*",

/etc/udev/rules.d/70-persistent-net.rulesファイル内のルールの一部。 UDEVがデバイスの名前を「rename *」に変更すると、この部分がルールの照合を停止するため、これは機能します。したがって、それを削除すると、その間にUDEVが何を呼び出したかに関係なく、正しいデバイスに正しい名前を割り当てることができます。

10
Ancaglon

/etc/udev/rules.d/70-persistent-net.rulesを削除して再起動するだけで解決できました。

6
Clayton Dukes

空白/etc/udev/rules.d/80-net-name-slot.rulesを作成してみましたか?

udev v197以降、udevには予測可能なネットワークインターフェイス名が実装されています。そのパスに空のファイルを作成してから再起動すると、インターフェイス名が元に戻ります。

私はCreating eth0 with consistent network device namingで同様の質問に回答しました

1
cesar

また、eth0、eth1、wlan0、wlan1などが標準のカーネル名であることからも発生する可能性があります(非永続的なスキームの命名の場合)。 udevのドキュメントではそれは言っています:

名前

ネットワークインターフェイスに使用する名前。インターフェース名を設定するための高レベルのメカニズムについては、systemd.link(5)を参照してください。デバイスノードの名前変更できません udevにより、追加のシンボリックリンクのみを作成できます。

したがって、udevルールにはeth *、wlan *などの名前を使用しないでください。

0
cy8g3n