#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-адресами коммутатора.