Trouver des adresses MAC dans / proc ou quelque part malgré le périphérique de liaison?

9

Existe-t-il un moyen d'obtenir les adresses MAC d'origine pour eth0 et eth1?

Un large éventail de serveurs ont des interfaces de liaison gérant les connexions des commutateurs de sauvegarde et l'un se comporte mal. Lorsque bond0 est actif, les deux adresses MAC sont remplacées et signalées de manière identique par ifconfig.

Je souhaite rechercher dans la baie de serveurs une adresse MAC que j'ai trouvée dans un périphérique Cisco.

J'utiliserais dmesg (1) ou / var / log / messages, mais ils ont été reconduits pendant des centaines de jours pour la plupart du tableau.

DigitalRoss
la source
Je pense que personne d'autre n'a réellement compris votre question correctement, mais je pense que je le fais. Je vais voir si je peux trouver quelque chose et faire rapport.
Yanick Girouard

Réponses:

9

Je cherche toujours une explication plus "officielle", mais selon ce blog , le fichier /proc/net/bonding/${bonding name}fournira l'adresse mac réelle pour chaque NIC dans la liaison (eth0, eth1, etc.), donc cela pourrait être plus utile.

J'espère que cela vous aidera!

Yanick Girouard
la source
Voici où je le chercherais
Petter H
8

Sur RHEL / CentOS 6:

# ethtool -P <if>

Permanent address: 00:11:22:33:44:55
bchill
la source
Cela fonctionne également.
DigitalRoss
3

Le système d'exploitation doit conserver une liste des détails de la carte réseau physique dans le fichier:

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

Voici le mien à titre d'exemple:

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

Remarquez la section "ATTR {address} =="?

Soviero
la source
Cela fonctionne aussi.
DigitalRoss
2

Vous pouvez l'obtenir au /syslieu de /proc. Par exemple:

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

Toutes les interfaces disponibles sont répertoriées sous net:

$ ls /sys/class/net/
eth0  lo
slm
la source
0

Il existe plusieurs façons pour les appareils SATA et NET . Des commandes comme udevadm info le feront également. ifconfig et netstat également. Et la liste continue. Vérifiez certains des anciens liens ci-dessus pour l'ensemble complet.

user178150
la source
-2

Vous pouvez utiliser arp pour trouver une adresse MAC

Pour trouver le MAC du fabricant, l'autorité d'enregistrement IEEE conserve une liste des noms de marques qui y appartiennent et les adresses MAC, les six premiers d'une adresse MAC sont le nom de la marque suivi du type et du numéro de série

Rechercher dans la liste publique OUI / 'company_id'

Bart
la source
2
Une interface liée ne se comporte pas intentionnellement de cette façon. L'OP semble rechercher l'adresse MAC qui a été gravée dans l'EEPROM de son matériel physique qui fait partie d'une telle interface liée. Ce MAC quitte l'étape de la couche 2 lorsque la liaison est configurée.
rackandboneman
-3

dmesg | grep eth0 && dmesg | grep eth1

Vous pouvez récupérer les adresses matérielles signalées pour n'importe quelle interface avant l'établissement de la liaison.

vaetis
la source
-3

Si vous n'êtes pas sûr du nom de l'interface (cela se produit avec CentOS 7), essayez: ip addr

et choisissez simplement l'interface dans la liste

user278074
la source
J'ai l'impression que vous n'avez pas réellement lu la question. Il indique clairement: Avec bond0 actif, les deux adresses MAC sont remplacées et signalées de manière identique par ifconfig.
kasperd