ARP コマンドから正しい MAC アドレスを取得するにはどうすればいいですか?

ARP コマンドから正しい MAC アドレスを取得するにはどうすればいいですか?

免責事項: Linux は初めてです。Pi 3 で Raspbian Light を使用しています。SSH アクセスのみ。

ping / arp を使用して MAC アドレスを検索しようとしています:

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

HWaddress は Windows で表示される MAC アドレスとは異なります。

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)
Wi-Fi 上の Windows (.30) → ルーター (.1)

Pi を同じ Mac に戻すにはどうすればよいですか?

注: 「ベンダー」の部分が異なっているようです。それで「ほぼ」正しいのでしょうか?

答え1

推測ですが、RaspPi は LAN 経由でルーターに接続されていますが、「ターゲット」の電話と Windows PC は WLAN 経由で接続されています。つまり、電話と Windows PC は同じセグメントにあり、ARP は意図したとおりに機能しますが、通常、LAN と WLAN は同じセグメントには存在しません。

彼ら以来思われる同じセグメント(同じ/24プレフィックス)にあるようにするには、ルータがMAC NATなどのいくつかの高度な処理を実行して、ebtables「スプーフィングされた」MAC アドレスはベンダー プレフィックスのみが異なること、そしてベンダー プレフィックスが有効ではないように見えることも、このことを示しています。

これをテストするには、Windows PC を LAN (ケーブル) 経由でルーターに接続し、その場合に報告される MAC アドレスを確認します。

別のテスト方法としては、ルーターのルート アクセスを取得し、内部で何が起こっているかを確認することです。

編集

この推測が正しければ、それは純粋にルーターこれは Linux と Windows の問題ではなく、問題です。Windows PC が LAN 経由で接続され、対象の電話が WLAN 経由で接続されている場合、Windows は「間違った」 MAC アドレスを検出します。WLAN経由で接続されたデバイスは「間違った」MACアドレスを認識しますLAN 経由で接続されたデバイス、およびその逆。

ルーターの設定で無効にしない限り、これを「回避」することはできません。その場合、LAN と WLAN に異なるサブネットが存在する可能性があり、LAN 内の RaspPi は WLAN 内のどのデバイスの MAC も認識しません。まったく(そしてその逆も同様)ただし、相互に通信することは可能です。

それがネットワークの仕組みです。

問題は、そもそもなぜ「正しい」MAC アドレスが必要なのかということです。その必要はないはずです。

答え2

このarpコマンドは、rpi ネットワーク インターフェイスの正しい MAC アドレスを提供し、次のようにして確認できます。

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

これはc0-ee-fb-ed-9e-5cOne Plus 電話の MAC アドレスです。

関連情報