免責事項: 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-5c
One Plus 電話の MAC アドレスです。