Finden Sie MAC-Adressen in / proc oder irgendwo trotz Bonding-Gerät?

9

Gibt es eine Möglichkeit, die ursprünglichen MAC-Adressen für eth0 und eth1 abzurufen?

Eine große Anzahl von Servern verfügt über Verbindungsschnittstellen, die Backup-Switch-Verbindungen verwalten, und einer verhält sich schlecht. Bei aktivem bond0 werden beide MAC-Adressen durch ifconfig ersetzt und identisch gemeldet.

Ich möchte das Server-Array nach einer MAC-Adresse durchsuchen, die ich in einem Cisco-Gerät gefunden habe.

Ich würde dmesg (1) oder / var / log / messages verwenden, aber sie wurden für den größten Teil des Arrays für Hunderte von Tagen verlängert.

DigitalRoss
quelle
Ich denke, niemand sonst hat Ihre Frage richtig verstanden, aber ich denke, ich tue es. Ich werde sehen, ob ich etwas finden und mich melden kann.
Yanick Girouard

Antworten:

9

Ich bin immer noch auf der Suche nach einer "offiziellen" Erklärung, aber laut diesem Blog enthält die Datei /proc/net/bonding/${bonding name}die tatsächliche Mac-Adresse für jede Netzwerkkarte in der Anleihe (eth0, eth1 usw.), sodass dies möglicherweise nützlicher ist.

Hoffe das wird helfen!

Yanick Girouard
quelle
Hier würde ich danach suchen
Petter H
8

Auf RHEL / CentOS 6:

# ethtool -P <if>

Permanent address: 00:11:22:33:44:55
bchill
quelle
Das funktioniert auch.
DigitalRoss
3

Das Betriebssystem sollte eine Liste der physischen NIC-Details in der Datei aufbewahren:

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

Hier ist meins als Beispiel:

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

Beachten Sie den Abschnitt "ATTR {Adresse} =="?

Soviero
quelle
Das funktioniert auch.
DigitalRoss
2

Sie können dies von /sysstatt bekommen /proc. Zum Beispiel:

$ cat /sys/class/net/eth0/address
0a:58:ac:16:05:13

Alle verfügbaren Schnittstellen sind aufgeführt unter net:

$ ls /sys/class/net/
eth0  lo
slm
quelle
0

Es gibt verschiedene Möglichkeiten für SATA- und NET- Geräte. Befehle wie udevadm info tun dies ebenfalls. ifconfig und netstat auch. Und die Liste geht weiter. Überprüfen Sie einige der alten Links für oben für den vollständigen Satz.

user178150
quelle
-2

Sie können arp verwenden , um eine MAC-Adresse zu finden

Um den MAC des Herstellers zu finden, führt die IEEE-Registrierungsbehörde eine Liste der dazugehörigen Markennamen und der dortigen MAC-Adressen. Die ersten sechs in einer MAC-Adresse sind der Markenname, gefolgt von Typ und Seriennummer

Suchen Sie in der öffentlichen OUI / 'company_id'-Liste

Bart
quelle
2
Eine verbundene Schnittstelle verhält sich absichtlich nicht so. Das OP scheint nach der MAC-Adresse zu suchen, die in das EEPROM seiner physischen Hardware eingebrannt wurde, die Teil einer solchen verbundenen Schnittstelle ist. Dieser MAC verlässt die Schicht 2-Stufe, wenn die Verbindung hergestellt wird.
Rackandboneman
-3

dmesg | grep eth0 && dmesg | grep eth1

Sie können die gemeldeten Hardwareadressen für jede Schnittstelle abrufen, bevor die Verbindung hergestellt wird.

Vaetis
quelle
-3

Wenn Sie sich über den Namen der Schnittstelle nicht sicher sind (passiert mit CentOS 7), versuchen Sie: ip addr

und wählen Sie einfach die Schnittstelle aus der Liste

user278074
quelle
Ich habe den Eindruck, dass Sie die Frage nicht wirklich gelesen haben. Darin heißt es eindeutig: Bei aktivem bond0 werden beide MAC-Adressen durch ifconfig ersetzt und identisch gemeldet.
Kasperd