ワイヤレス ネットワークで ARP 応答パケットがドロップされる原因は何ですか?

ワイヤレス ネットワークで ARP 応答パケットがドロップされる原因は何ですか?

ローカル エリア ネットワーク (LAN) 内にワイヤレス アクセス ポイント (AP) のネットワークがあります。

ネットワーク内の一部の PC は、ネットワーク内の他の PC/デバイスからの ping 応答を取得できますが、他の一部の PC/デバイスからは取得できません。信頼できるパターンは見つかりませんでしたが、簡単に言うと次のようになります。

コンピューター Alice、Wifi AP Bob、そして別の Wifi AP/デバイス Charlie があるとします。

アリスはボブに ping でき、ボブはチャーリーに ping できますが、アリスはチャーリーに ping できません。(「ping」は ping 応答を取得できることを意味します) すでにすべてのファイアウォールを無効にし、すべての ICMP 応答を許可しています。

Wireshark と tcpdump の助けを借りて、私は Alice からの ARP 要求 (オペコード 1) パケットが意図した宛先である Charlie に到達できたが、Charlie は Alice に到達しなかった ARP 応答 (オペコード 2) パケットを返したと推測しました。

このようなエラーを引き起こす可能性のある技術的な欠陥は何でしょうか?

この状況をどのようにデバッグすればよいでしょうか?

OpenWRT を使用しているため、ある程度のプログラム制御が可能だと仮定すると、この問題をどのように解決できますか?

面白いことに、Windows 8 PC の名前を変更したら、この問題は修正されました。これが事後因果応報のケースかどうかはわかりません。

更新: AP/デバイス/PC は同じサブネット上にあり、ブリッジ モードを使用してリンクされています。

答え1

私は OpenWRT の高度な設定にはあまり詳しくありませんが (これは私のオタク プロジェクトの To-Do リストに載っています)、まず最初にアドバイスしたいのは、「Bob」で NAT を実行していないことを確認することです。Alice が WAP の LAN 側にいて、Charlie が WAN 側にいる場合、Alice は Charlie に ping を送信できますが、その逆はできません。これは、NAT が提供する固有のファイアウォールです。

これを回避するには、すべての AP が何らかの「ブリッジ」モードまたは「アクセス ポイント」モードで動作している必要があります。つまり、デバイスは多かれ少なかれパケット フォワーダーとして動作し、ルーティングやパケット インスペクションは行いません。安価なルーターでこれを実現する最も簡単な方法は、ルーターの DHCP サーバーを無効にしてから、LAN ポートの 1 つをネットワークに接続することです (また、ルーターの LAN IP が実際のゲートウェイと競合しないようにします)。WAN ポートはそのままにしておきます。ルーターが問題を起こした場合 (ほとんどのルーターは問題を起こしませんが、問題を起こすルーターもあります)、インターネット接続を静的 IP に設定し、アドレスに 255.255.255.254 のようなアドレス (サブネット マスクは 255.255.255.252)、ゲートウェイに 223.255.255.253 を使用します (豆知識: これは、サイズが最小の最後のクラス C サブネットです)。

もう 1 つの可能性は、サブネット マスクの不一致です。同じネットワーク上のすべてのコンピューターには、同じサブネット マスクが設定されている必要があります (もちろん、実際のネットワークが同じであることも必要です)。コンピューターは、サブネット マスクを使用して、IP ブロードキャスト アドレスを決定するだけでなく、受信したブロードキャスト パケットをネットワーク スタックで処理するかどうかも決定します (つまり、デバイスに設定されているアドレスとサブネット マスクの範囲外の IP のブロードキャスト パケットの場合、多くのデバイスはパケットを無視します)。

これが少しでも役に立つことを願っています。

答え2

ワイヤレス ネットワークで ARP 応答パケットがドロップされる原因は何ですか?

何も。適切なパケット ドロップを目撃しているのであれば、優先的にドロップされる理由はないはずです。通信回線に障害がある場合、ARP パケットは UDP、TCP などと何ら変わりません。ただし、回線が遅いと主張していないので、真のパケット ドロップを疑う理由は特にありません。

パケットが意図した宛先に到達しない理由は、パケットが誤ってルーティングされているからです。ただし、魔法のように消えるパケットは ARP パケットであり、それが属するサブネット全体を自発的に埋めてしまうため、適切なルーティングは不要であると指摘されています。

したがって、PCは(おそらく)2つの異なるサブネットのメンバーです。ARPパケットはゲートウェイを越えないので、落とされた問題は、独自のサブネットを埋め尽くし、応答者が見つからずに、2 つの異なるサブネットを分離するゲートウェイを通過せずに消えてしまうことです。

IP アドレスの代わりに名前を使用すると、2 つの別々のサブネットに属していることは、いわばマスクされます。IP アドレスを使用すると、2 台の PC が異なるサブネット上にあることがすぐにわかるはずです。これが、上記の質問の理由です。

この問題を回避できますか? もちろんできます。到達できないサブネットのゲートウェイ (G2 と呼ぶことにします) を識別し、より大きな LAN からの接続を許可し、LAN 全体のゲートウェイ (G1、モデムまたは ADSL ルーターのすぐ後ろにあるゲートウェイ) に、このサブネットへのルートがそれ自体 (G1) ではなく G2 経由であることを指示する必要があります。

関連情報