ローカルエリアネットワーク(LAN)にワイヤレスアクセスポイント(AP)のネットワークがあります。
ネットワーク内の一部のPCは、ネットワーク内の他のPC /デバイスからping応答を取得できますが、他のPCからは取得できません。信頼できるパターンは見つかりませんでしたが、簡単に言うと次のようになります。
コンピューターのアリス、Wifi APのボブ、および別のWifi AP /デバイスのチャーリーがあるとします。
アリスはボブにpingでき、ボブはチャーリーにpingできますが、アリスはチャーリーにpingできません。 (「ping」はping応答を取得できることを意味します)私はすでにすべてのファイアウォールを無効にし、すべてのICMP応答を許可しました。
Wiresharkとtcpdumpの助けを借りて、アリスからのARP要求(オペコード1)パケットが目的の宛先チャーリーに到達でき、チャーリーがアリスに到達しなかったARP応答(オペコード2)パケットを送り返したと推測しました。
そのようなエラーを引き起こす可能性のある技術的な欠点は何でしょうか?
この状況をデバッグするにはどうすればよいですか?
OpenWRTを使用しているためにプログラムで制御できると仮定すると、この問題をどのように解決できますか?
面白いことに、Windows 8 PCの名前を変更すると、この問題が修正されました。これが事後的エルゴプロパーホックの場合であるかどうかはわかりません。
更新:AP /デバイス/ PCは同じサブネット上にあり、ブリッジモードを使用してリンクされています。
ワイヤレスネットワークでARP応答パケットがドロップする原因は何ですか?
何もありません。適切なパケットドロップを目撃していれば、それらが優先的にドロップされる理由はありません。障害のある通信回線が存在する場合、ARPパケットはUDP、TCPなどと同じです。ただし、回線が遅いとは主張していないため、真のパケットドロップを疑う本当の理由はありません。
パケットが意図したターゲットに到達しない理由は、パケットが誤ってルーティングされているためです。ただし、魔法のように消えるパケットはARPパケットであり、それらが属するサブネット全体を自発的に満たすため、適切なルーティングは必要ないことを指摘しました。
したがって、PCは(ほとんどの場合)2つの異なるサブネットのメンバーです。 ARPパケットはゲートウェイを通過しません。また、パケットがdroppedになる理由の1つは、ARPパケットが独自のサブネットを埋め、応答者が見つからず、2つの異なるサブネットを分離するゲートウェイを通過せずに消えることです。
たとえば、IPアドレスの代わりに名前を使用する場合、2つの別々のサブネットに属することはマスクされます。代わりにIPアドレスを使用する場合、2つのPCが異なるサブネット上にあることにすぐに気付くでしょう。したがって、上記の私の質問。
この問題を回避できますか?もちろんできます。到達できないサブネットのゲートウェイを特定し(G2と呼びましょう)、より大きなLANからの接続を許可してから、LAN全体のゲートウェイ(モデムのすぐ後ろにあるG1、または、ADSLルーターのいずれか)このサブネットへのルートがそれ自体(G1)を経由せず、G2を経由すること。
私はOpenWRTの高度な構成(オタクプロジェクトのやることリストに載っています)にあまり詳しくありませんが、最初のアドバイスは、あなたがNAT =「ボブ」上。アリスがWAPのLAN側にあり、チャーリーがWAN側にある場合、アリスはチャーリーにpingを実行できますが、その逆はできません。これは固有の機能です。 NATが提供するファイアウォール。
これが当てはまらないためには、すべてのAPが何らかの形の「ブリッジ」モードまたは「アクセスポイント」モードで動作している必要があります。これは、デバイスが多かれ少なかれパケットフォワーダーとして機能することを意味します-それ自体のルーティングやパケット検査は行いません。安価なルーターでこれを実現する最も簡単な方法は、ルーターのDHCPサーバーを無効にしてから、LANポートの1つをネットワークに接続することです(ルーターのLAN IPが実際のゲートウェイと競合しないようにすることもできます)。 WANポートをハングしたままにします。ルーターが文句を言う場合(ほとんどは文句を言わないが、一部は文句を言う)、インターネット接続を静的IPに設定し、255.255で223.255.255.254のようなものを使用します。アドレスの255.252サブネットマスクとゲートウェイの223.255.255.253(トリビア:これは、可能な限り最小のサイズの最後のクラスCサブネットです)。
他の可能性は、サブネットマスクの不一致である可能性があります。同じネットワーク上のすべてのコンピューターは、同じサブネットマスクを構成する必要があります(もちろん、同じ実際のネットワーク内にあることに加えて)。コンピューターはサブネットマスクを使用して、IPブロードキャストアドレスだけでなく、受信したブロードキャストパケットを決定する必要があるかどうかも決定します。ネットワークスタックによって処理されます(つまり、デバイスに構成されているアドレスとサブネットマスクの範囲外になるIPのブロードキャストパケットの場合、多くのデバイスはそのパケットを無視します)。
これが少なくともある程度役立つことを願っています。