Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Is there a way to get the original MAC addresses for eth0 and eth1?

A large array of servers have bonding interfaces managing backup switch connections and one is misbehaving. With bond0 active both MAC addresses are replaced and reported identically by ifconfig.

I want to search the server array for a MAC address I found in a Cisco device.

I would use dmesg(1) or /var/log/messages, but they have been rolled over for hundreds of days for most of the array.

share|improve this question
    
I think nobody else actually understood your question correctly, but I thing I do. I'll see if I can find something and report back. –  Yanick Girouard Feb 28 '12 at 1:24
add comment

6 Answers

try the /sys filesystem:

$ cat /sys/class/net/eth?/address
00:25:90:31:f6:f4
00:25:90:31:f6:f5
share|improve this answer
    
This information seems to be overwritten with the current value of the interface. That is to say if you are in a bond the bond's value. –  Tarrant Feb 25 at 21:53
add comment

The OS should keep a list of physical NIC details within the file:

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

Here is mine as an example:

# 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"

Notice the "ATTR{address}==" section?

share|improve this answer
add comment

I'm still searching for a more "official" explanation, but according to this blog, the file /proc/net/bonding/${bonding name} will provide the actual mac address for each NIC in the bond (eth0, eth1, etc..), so that might be more useful.

Hope this will help!

share|improve this answer
add comment

There's a few ways both for SATA and NET devices. Commands like udevadm info will do it as well. ifconfig and netstat as well. And the list goes on. Check some of the old links for above for the full set.

share|improve this answer
add comment

On RHEL/CentOS 6:

# ethtool -P <if>

Permanent address: 00:11:22:33:44:55
share|improve this answer
add comment

You can use arp to find a MAC address

To find the manufactors MAC the IEEE Registration Authority keeps a list of brand names that belong and there MAC addresses, the first six in a MAC address are the brand name followed by type and serialnumber

Search the Public OUI/'company_id' Listing

share|improve this answer
    
A bonded interface intentionally does not behave that way. The OP seems to be looking for the MAC address that was burned into the EEPROM of his physical hardware that is part of such bonded interface. This MAC exits the layer 2 stage when bonding is set up. –  rackandboneman May 21 '12 at 19:21
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.