Найти MAC-адреса в / proc или где-нибудь, несмотря на связывающее устройство?

9

Есть ли способ получить оригинальные MAC-адреса для eth0 и eth1?

У большого массива серверов есть связывающие интерфейсы, управляющие резервными соединениями коммутатора, и один из них не работает. При активном bond0 оба MAC-адреса заменяются и сообщаются одинаково с помощью ifconfig.

Я хочу найти в массиве серверов MAC-адрес, который я нашел в устройстве Cisco.

Я бы использовал dmesg (1) или / var / log / messages, но они были перенесены на сотни дней для большей части массива.

DigitalRoss
источник
Я думаю, что никто другой на самом деле правильно не понял ваш вопрос, но я так и делаю. Я посмотрю, смогу ли я найти что-нибудь и доложить.
Яник Жируард

Ответы:

9

Я все еще ищу более «официальное» объяснение, но, согласно этому блогу , файл /proc/net/bonding/${bonding name}будет содержать фактический mac-адрес для каждого сетевого адаптера (eth0, eth1 и т. Д.), Что может быть более полезным.

Надеюсь, это поможет!

Яник Жируард
источник
Вот где я бы это искал
Petter H
8

На RHEL / CentOS 6:

# ethtool -P <if>

Permanent address: 00:11:22:33:44:55
bchill
источник
Это тоже работает.
DigitalRoss
3

ОС должна хранить список физических данных 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 {address} ==»?

Soviero
источник
Это работает также.
DigitalRoss
2

Вы можете получить это /sysвместо /proc. Например:

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

Все доступные интерфейсы перечислены под net:

$ ls /sys/class/net/
eth0  lo
ОДС
источник
0

Есть несколько способов как для SATA, так и для NET устройств. Команды, такие как udevadm info, тоже сделают это. ifconfig и netstat также. И список продолжается. Проверьте некоторые из старых ссылок выше для полного набора.

user178150
источник
-2

Вы можете использовать arp, чтобы найти MAC-адрес

Чтобы найти MAC-адрес производителя, орган регистрации IEEE ведет список принадлежащих торговых марок и MAC-адресов. Первые шесть в MAC-адресе - это название бренда, затем тип и серийный номер.

Поиск в публичном списке OUI / 'company_id'

Барт
источник
2
Связанный интерфейс намеренно не ведет себя таким образом. OP, кажется, ищет MAC-адрес, который был записан в EEPROM его физического оборудования, которое является частью такого связанного интерфейса. Этот MAC выходит из стадии 2 уровня, когда устанавливается соединение.
rackandboneman
-3

Dmesg | grep eth0 && dmesg | grep eth1

Вы можете получить указанные аппаратные адреса для любого интерфейса до установления связи.

vaetis
источник
-3

Если вы не уверены в названии интерфейса (происходит с CentOS 7), попробуйте: ip addr

и просто выберите интерфейс из списка

user278074
источник
У меня сложилось впечатление, что вы на самом деле не читали вопрос. В нем четко сказано: с активным bond0 оба MAC-адреса заменяются и сообщаются одинаково с помощью ifconfig.
Касперд