Как получить правильный MAC-адрес из команды ARP?

Как получить правильный MAC-адрес из команды ARP?

Отказ от ответственности: новичок в Linux, использую Raspbian Light на Pi 3. Доступ только по SSH.

Я пытаюсь найти MAC-адрес с помощью ping / arp:

ping 192.168.1.7
arp 192.168.1.7

Возвращает:

Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.1.7              ether   02:0f:b5:ed:9e:5c   C                     eth0

HW-адрес отличается от MAC-адреса, который я вижу в Windows:

ping 192.168.1.7
arp -a 192.168.1.7

Это приводит к:

Internet Address      Physical Address      Type
192.168.1.7           c0-ee-fb-ed-9e-5c     dynamic

Топология сети

Pi на кабеле (.27) → переключатель на кабеле → маршрутизатор (.1)
Телефон на Wi-Fi (.7) → маршрутизатор (.1)
Windows на Wi-Fi (.30) → маршрутизатор (.1)

Как мне вернуть мой Pi к тому же Mac?

Примечание: похоже, что часть «поставщик» отличается. Так что это «почти» верно?

решение1

Лучшая догадка: ваш RaspPi подключен к маршрутизатору через LAN, в то время как "целевой" телефон и ПК с Windows подключены через WLAN. Это означает, что хотя телефон и ПК с Windows находятся в одном сегменте и ARP работает как задумано, обычно LAN и WLAN не будут находиться в одном сегменте.

С тех пор ониказатьсячтобы быть в том же сегменте (тот же префикс /24), я предполагаю, что маршрутизатор делает что-то необычное, чтобы это работало, например, MAC NAT черезebtables. На это также указывает тот факт, что «поддельный» MAC-адрес отличается только префиксом поставщика, а префикс поставщика, похоже, недействителен.

Вы можете проверить это, подключив свой ПК с Windows к маршрутизатору через локальную сеть (кабель) и посмотреть, какой MAC-адрес он сообщает в этом случае.

Другой способ проверить это — получить root-доступ к маршрутизатору и посмотреть, что происходит внутри.

Редактировать

Если эта догадка верна, то это простомаршрутизаторпроблема, а не проблема Linux против Windows. Windows также найдет "неправильный" MAC-адрес, если ПК с Windows подключен через LAN, а целевой телефон подключен через WLAN.Каждыйустройство, подключенное через WLAN, увидит «неправильный» MAC-адрескаждыйустройство, подключенное через локальную сеть, и наоборот.

И вы не можете "обойти" это, если только вы не можете настроить свой маршрутизатор, чтобы отключить это. В этом случае у вас, вероятно, будут разные подсети для LAN и WLAN, и RaspPi в LAN не увидит MAC ни одного устройства в WLANсовсем(и наоборот), хотя они могут общаться друг с другом.

Именно так и работает сетевое взаимодействие.

Вопрос в следующем: Зачем вам вообще нужен «правильный» MAC-адрес? Он вам не нужен.

решение2

Команда arpвыдаст вам правильный MAC-адрес сетевого интерфейса rpi, и вы можете проверить его следующим образом:

ssh [email protected]
sudo cat /sys/class/net/eth0/address

Это c0-ee-fb-ed-9e-5cMAC-адрес вашего телефона One Plus.

Связанный контент