Eth0とeth1の元のMACアドレスを取得する方法はありますか?
サーバーの大規模な配列には、バックアップスイッチ接続を管理するボンディングインターフェイスがあり、1つは誤動作しています。 bond0がアクティブの場合、両方のMACアドレスが置き換えられ、ifconfigによってまったく同じように報告されます。
シスコデバイスで見つけたMACアドレスをサーバーアレイで検索したいのですが。
dmesg(1) または/ var/log/messagesを使用しますが、ほとんどの配列で数百日間ロールオーバーされています。
私はまだもっと「公式」の説明を探していますが、 このブログ によると、ファイル/proc/net/bonding/${bonding name}
は、ボンドの各NIC=(eth0、eth1など))の実際のMACアドレスを提供するため、より役立つ場合があります。
これが役立つことを願っています!
RHEL/CentOS 6の場合:
# ethtool -P <if>
Permanent address: 00:11:22:33:44:55
OSは、物理的なNIC詳細のリストをファイル内に保持する必要があります。
/etc/udev/rules.d/70-persistent-net.rules
以下は私の例です。
# This file maintains persistent names for network interfaces.
# See udev(7) for syntax.
#
# Entries are automatically added by the 75-persistent-net-generator.rules
# file; however you are also free to add your own entries.
# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:23:54:95:74:e5", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
「ATTR {アドレス} ==セクションに注意してください?
これは、/sys
ではなく/proc
から取得できます。例えば:
$ cat /sys/class/net/eth0/address
0a:58:ac:16:05:13
利用可能なすべてのインターフェースはnet
の下にリストされています:
$ ls /sys/class/net/
eth0 lo
[〜#〜] sata [〜#〜] と [〜#〜] net [〜#〜] デバイスの両方にいくつかの方法があります。 udevadm infoのようなコマンドもそれを行います。 ifconfigとnetstatも同様です。そしてリストは続く。完全なセットについては、上記の古いリンクのいくつかを確認してください。