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"
しかし、それは結果をもたらしません。理由はわかりません…
ここで何か助けはありますか?
さまざまなイーサネットデバイスの異なる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"
この情報は、起動から起動まで一貫して構成されたデバイスを維持するために使用されると思います。
より多くのデバイスを処理するには、/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"
私の知る限り、比較的新しいリリースが必要です。 RHEL 6これをサポートするように見える( Consistent Network Device Naming ) 特に有効にする必要があります ほとんどのシステム。 Fedora 15 + もこれを行い、Fedora 17では、これがデフォルトのモードのようです。
この変更が完全に採用された時期は正確にはわかりませんが、この質問より重要なのは、これをRHEL 5シリーズにバックポートする方法があるかどうかです。少なくともこれは始まりです。
次の方法でハードウェアアドレスを取得する必要があります。
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のコメント。