¿Encuentra direcciones MAC en / proc o en algún lugar a pesar del dispositivo de enlace?

9

¿Hay alguna manera de obtener las direcciones MAC originales para eth0 y eth1?

Una gran variedad de servidores tiene interfaces de enlace que administran las conexiones del interruptor de respaldo y uno se está portando mal. Con bond0 activo, ambas direcciones MAC son reemplazadas e informadas de manera idéntica por ifconfig.

Quiero buscar en la matriz del servidor una dirección MAC que encontré en un dispositivo Cisco.

Me gustaría utilizar dmesg (1) o / var / log / messages, pero han pasado el puntero durante cientos de días para la mayor parte de la matriz.

DigitalRoss
fuente
Creo que nadie más realmente entendió su pregunta correctamente, pero creo que sí. Veré si puedo encontrar algo e informar.
Yanick Girouard

Respuestas:

9

Todavía estoy buscando una explicación más "oficial", pero según este blog , el archivo /proc/net/bonding/${bonding name}proporcionará la dirección MAC real para cada NIC en el enlace (eth0, eth1, etc.), por lo que podría ser más útil.

Espero que esto ayude!

Yanick Girouard
fuente
Aquí es donde lo buscaría
Petter H
8

En RHEL / CentOS 6:

# ethtool -P <if>

Permanent address: 00:11:22:33:44:55
bchill
fuente
Esto tambien funciona.
DigitalRoss
3

El sistema operativo debe mantener una lista de detalles físicos de la NIC dentro del archivo:

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

Aquí está el mío como ejemplo:

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

Observe la sección "ATTR {dirección} =="?

Soviero
fuente
Esto tambien funciona.
DigitalRoss
2

Puede obtener esto en /syslugar de /proc. Por ejemplo:

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

Todas las interfaces disponibles se enumeran en net:

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

Hay algunas formas para dispositivos SATA y NET . Los comandos como udevadm info también lo harán. ifconfig y netstat también. Y la lista continúa. Verifique algunos de los enlaces anteriores para el conjunto completo.

usuario178150
fuente
-2

Puedes usar arp para encontrar una dirección MAC

Para encontrar los fabricantes MAC, la Autoridad de Registro IEEE mantiene una lista de nombres de marcas que pertenecen y sus direcciones MAC, los primeros seis en una dirección MAC son el nombre de la marca seguido del tipo y número de serie

Buscar en el listado público OUI / 'company_id'

Bart
fuente
2
Una interfaz enlazada intencionalmente no se comporta de esa manera. El OP parece estar buscando la dirección MAC que se grabó en la EEPROM de su hardware físico que forma parte de dicha interfaz unida. Este MAC sale de la etapa de la capa 2 cuando se establece la unión.
rackandboneman
-3

dmesg | grep eth0 && dmesg | grep eth1

Puede tomar las direcciones de hardware informadas para cualquier interfaz antes de establecer el enlace.

vaetis
fuente
-3

Si no está seguro del nombre de la interfaz (sucede con CentOS 7) intente: ip addr

y simplemente elige la interfaz de la lista

usuario278074
fuente
Tengo la impresión de que en realidad no leíste la pregunta. Establece claramente: con bond0 activo, ambas direcciones MAC son reemplazadas e informadas de manera idéntica por ifconfig.
kasperd