Как можно увидеть истинный MAC-адрес мостовой системы

#networking #mac-address #bridge

#сеть #mac-адрес #мост

Вопрос:

Я знаю MAC-адреса систем в моей проводной локальной сети и могу видеть их с помощью Fing или arp-сканирования. Одна система запускает hostapd как мостовой WiFi-маршрутизатор. Эта последняя система показывает, что у нее совершенно другой MAC-адрес. Насколько я понимаю, этот адрес создается при настройке моста. Есть ли способ настроить мост или использовать утилиты, такие как arp-scan или Fing, для сообщения истинного MAC-кода? [Пожалуйста, оставьте в стороне вопросы о подмене MAC-адресов.]

Нет проблем с получением информации с помощью Ansible или аналогичных инструментов, но они должны быть авторизованы, тогда как Fing etc может получать данные, не требуя аутентификации.

========= дополнительная информация добавлена ниже ==========

Оборудование, которое я описываю как «мост», представляет собой Raspberry Pi3b с одним интерфейсом Ethernet и встроенным интерфейсом WiFi. Он запускает Raspberry Pi OS «Buster», которая является производной от Debian. Мост настраивается с помощью systemd-networkd: /etc/systemd/network/bridge-br0.netdev содержит

 [NetDev]
Name=br0
Kind=bridge

/etc/systemd/network/br0-member-eth0.network contains
[Match]
Name=eth0

[Network]
Bridge=br0
 

После удаления комментариев и блоков пустых строк /etc/dhcpcd.conf содержит

 hostname
clientid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option interface_mtu
require dhcp_server_identifier
slaac private
## key items follow ##
denyinterfaces wlan0 eth0
interface br0
 

Ключевыми элементами являются denyinterfaces и строки интерфейса.

Как отмечалось в исходном сообщении, система запускает hostapd. Файл hostapd.conf содержит строки

 interface=wlan0
bridge=br0
 

Это работает корректно как мост Wi-Fi, позволяя комплекту Wi-Fi в моем доме использовать ту же подсеть, что и проводной комплект.

в описанной системе вывод из ipaddr show

 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 11:22:33:44:55:66 brd ff:ff:ff:ff:ff:ff
    inet6 [redacted]/64 scope link
       valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 77:88:99:aa:bb:cc brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.226/24 brd 192.168.178.255 scope global dynamic noprefixroute br0
       valid_lft 62947sec preferred_lft 48912sec
    inet6 [redacted]/64 scope link
       valid_lft forever preferred_lft forever
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether dd:ee:ff:00:11:22 brd ff:ff:ff:ff:ff:ff
    inet6 [redacted]/64 scope link
       valid_lft forever preferred_lft forever
 

MAC-адреса были изменены или отредактированы
Fing или arp-сканирование, выполняемое с других компьютеров в подсети, связывает IP-адрес системы с MAC-адресом 77: 88 …, связанным с интерфейсом br0, а не с адресом 11: 22 …, связанным с eth0.

При проверке моей установки по Debian Wiki https://wiki.debian.org/SystemdNetworkd и на некоторых других сайтах я нашел следующий текст:

Подсказка: в Debian Buster (возможно, также предыдущих версиях) systemd-networkd может назначить мосту MAC-адрес, отличный от вашего физического интерфейса. Это может вызвать проблемы с подключением, если ваш поставщик услуг использует какую-либо MAC-фильтрацию при маршрутизации вашего трафика. Чтобы обойти такие проблемы, вы можете назначить MAC-адрес своему мосту (возможно, такой же, как у вашего физического устройства, замените «xx» на действительный MAC):

   [NetDev]
  Name=br0
  Kind=bridge
  MACAddress=xx:xx:xx:xx:xx:xx
 

Я надеюсь протестировать это в течение следующих нескольких дней. Это не ответит на основной вопрос, но позволит довольно запутанный обход.

Комментарии:

1. Я думаю, вы в замешательстве. Каждый интерфейс имеет свой собственный MAC-адрес. Не существует ни одного «истинного» MAC-адреса.

2. Абсолютно. Интерфейс должен иметь свой собственный адрес. Однако, если у вас есть мостовое устройство, arp-scan показывает адрес моста, а не аппаратный адрес.

3. Для устройства не существует единого MAC-адреса MAC-адресатора моста; MAC-адреса — это адреса интерфейса. Например, коммутатор Cisco будет иметь MAC-адрес на каждом физическом интерфейсе, и он имеет 1024 MAC-адреса, из которых вы получаете MAC-адреса для каждого созданного вами виртуального интерфейса. Не существует одного MAC-адреса коммутатора; все они являются равными MAC-адресами коммутатора.