web-dev-qa-db-ja.com

RHEL:ネットワークインターフェイスの安定した名前の作成

8つのインターフェースを備えたRHEL 5.5ボックスがあります。そして、ethインターフェースの命名はフリップフロップです。時々 eth0は、7番目の物理ポートで、場合によっては別の物理ポートで表示されます。

命名は、PCI BUSのシーケンスに従ってください。私は調査をして、それを発見しました

cat /sys/devices/pci0000\:00/0000\:00\:1e.0/0000\:07\:07.0/net\:eth0/address\

この場所には、ethデバイスのMACアドレスがあります。したがって、このPCIバスの場所から順番に「アドレス」を取得し、それらをifconfig-eth0からifconfig-eth7 PCIバスの場所順に、ethの命名は安定しています。

私は試した:

find /sys/devices/ -name "address"

しかし、それは結果をもたらしません。理由はわかりません…

ここで何か助けはありますか?

6
user1263746

さまざまなイーサネットデバイスの異なるifcfg-ethXファイルにMACアドレスを含めてみましたか?さらに、udevの60-net.rulesファイルを使用して、どのデバイスがどのethXを処理するかを制御できます。

例えば

# /etc/sysconfig/network-scripts/ifcfg-eth0

# Intel Corporation 82573E Gigabit Ethernet Controller (Copper)
DEVICE=eth0
BOOTPROTO=static
DHCPCLASS=
HWADDR=00:30:48:56:A6:2E
IPADDR=10.10.10.15
NETMASK=255.255.255.192
ONBOOT=yes

次に、ファイル/etc/udev/rules.d/60-net.rulesで:

KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2E", NAME="eth0"

この情報は、起動から起動まで一貫して構成されたデバイスを維持するために使用されると思います。

複数のethXデバイスの構成

より多くのデバイスを処理するには、/etc/sysconfig/network-scripts/ifcfg-ethXファイルに対応する各デバイスをセットアップし、60-net.rulesファイルに別の行を追加するだけです。

KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2E", NAME="eth0"
KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2F", NAME="eth1"

上記はCentOS 5.Xでの実行方法です。 CentOS 6.xではファイルが70-persistent-net.rulesに変更され、形式も少し異なります。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

参考文献

3
slm

私の知る限り、比較的新しいリリースが必要です。 RHEL 6これをサポートするように見えるConsistent Network Device Naming特に有効にする必要があります ほとんどのシステム。 Fedora 15 + もこれを行い、Fedora 17では、これがデフォルトのモードのようです。

この変更が完全に採用された時期は正確にはわかりませんが、この質問より重要なのは、これをRHEL 5シリーズにバックポートする方法があるかどうかです。少なくともこれは始まりです。

2
SuperMagic

次の方法でハードウェアアドレスを取得する必要があります。

ifconfig -a | grep HWaddr

多分:

tail -v /sys/devices/*/*/net/eth*/address
# or
tail -v /sys/devices/*/*/*/net/eth*/address

findが一致している必要があります。

また確認してください:

cat /etc/udev/rules.d/70-persistent-net.rules

Seのコメント

1
Runium