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


20

Dell 1950サーバーにRHEL 6.3をインストールしました。2つのGBitポート、Gb0およびGb1としてのこのサーバー。

なんらかの理由で、Gb0およびGb1udevという名前を選択しました。これは間違いなく私にとって良い発見ではなく、混乱を招きます。 eth1 eth0

だから私はで設定を変更しました/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このように切り替えるのですか?この問題がない別の同様のサーバーがあります。


今の課題は何ですか?まだGb0 == eth1&Gb1 == eth0?
ウムラウト

チェック一度grep -R 'rename5' /etc/udev/rules.d/ログになぜそれが表示されるので、rename5そのための他のルールはありますか?
ラーフルパティル

ネットワークインターフェイスについても同様の処理を行いましたが、ログにそのように表示されます(ロジックを実行すると、元のeth1に偽の名前が割り当てられるため、元のeth0をeth1に名前変更できます)。したがって、ログによると、すべてが問題ないはずです。名前はまだ大丈夫ではありませんか?
ザグリムサン

割り当てはまだ間違っています:Gb0 == eth1&Gb1 == eth0。そのファイルで行った変更は適用されません。/etc/udev/rules.d/にrename5の痕跡はありません。私が理解しているのは、カーネルブートeth0とeth1がブートしているが、udevがそれらを切り替えるときです。eth0 => eth1およびeth1 => eth0
ヒューゴ

解決策を見つけましたか?私もこの問題に苦労しています。通常のブートでは、p1p1とp1p2になります。しかし、p1p2にネットワークケーブルを接続したので(一部ではありませんが、すべてがおかしい)、ブート時にp1p1とrename3!?!?Udevは、何らかの理由でeth1の名前をp1p2ではなくrename3に変更しています。もちろん、これは(私はUbuntuで午前いないことを、ネットワークI / Fの設定やファイアウォールX-を破る
ホイヘンス

回答:


9

これはかなり遅いですが、私は問題を修正して、

KERNEL="eth*",

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


これは、ubuntu 14.04でも解決しました。OPとまったく同じ動作(名前の変更がpXpYだったことを除く)。
ndemou

9

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

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

macアドレスのifcfgファイルとnet.rulesの間に一貫性が必要です。


1
/etc/sysconfigredhat / centos linuxにあります。Ubuntuでは、これらのファイルは以下になります/etc/network/if-up.d
nmgeek


1

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

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

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


1
これにより、3つのネットワークデバイスのうち2つが修正されました。空のファイルの代わりに、/ dev / nullへのリンクを作成しました。どちらのアプローチでもうまくいくと思います。
MrMas

:次のようになりますが、私はこの正しく読んでいる場合は、ファイルはsystemdにから削除されたことV210の周りに変化したgithub.com/systemd/systemd/commit/...
nhed

0

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.