![Was führt zum Verlust von ARP-Antwortpaketen in einem drahtlosen Netzwerk?](https://rvso.com/image/1452882/Was%20f%C3%BChrt%20zum%20Verlust%20von%20ARP-Antwortpaketen%20in%20einem%20drahtlosen%20Netzwerk%3F.png)
Ich habe ein Netzwerk aus drahtlosen Zugriffspunkten (APs) in meinem lokalen Netzwerk (LAN).
Einige PCs im Netzwerk können Ping-Antworten von anderen PCs/Geräten im Netzwerk erhalten, andere jedoch nicht. Ich habe kein zuverlässiges Muster gefunden, aber kurz gesagt könnte es so aussehen:
Angenommen, wir haben einen Computer namens Alice, einen WLAN-AP namens Bob und einen weiteren WLAN-AP/ein weiteres WLAN-AP/Gerät namens Charlie.
Alice kann einen Ping an Bob senden, Bob kann einen Ping an Charlie senden, aber Alice kann keinen Ping an Charlie senden. („Ping“ bedeutet, dass Ping-Antworten empfangen werden können). Ich habe bereits alle Firewalls deaktiviert und alle ICMP-Antworten zugelassen.
Mithilfe von Wireshark und tcpdump habe ich festgestellt, dass das ARP-Anforderungspaket (Opcode 1) von Alice das beabsichtigte Ziel Charlie erreichen konnte und Charlie das ARP-Antwortpaket (Opcode 2) zurücksendete, das Alice nicht erreichte.
Welche technischen Mängel könnten zu einem solchen Fehler führen?
Wie kann ich diese Situation beheben?
Angenommen, ich habe eine gewisse programmtechnische Kontrolle, weil ich OpenWRT verwende. Wie kann ich dieses Problem lösen?
Das Lustige ist, dass dieses Problem behoben wurde, als ich den Namen meines Windows 8-PCs geändert habe. Ich bin mir nicht sicher, ob dies ein Fall von post hoc ergo propter hoc ist.
Update: Die APs/Geräte/PCs befinden sich im selben Subnetz und sind im Bridge-Modus verbunden.
Antwort1
Obwohl ich mit der erweiterten Konfiguration von OpenWRT nicht besonders vertraut bin (das steht auf meiner To-Do-Liste für Geek-Projekte), wäre mein erster Ratschlag, sicherzustellen, dass Sie kein NAT auf „Bob“ ausführen. Wenn Alice auf der LAN-Seite eines WAP wäre und Charlie auf der WAN-Seite, könnte Alice Charlie anpingen, aber nicht umgekehrt. Das ist die inhärente Firewall, die NAT bietet.
Damit dies nicht der Fall ist, müssen alle Ihre APs in einer Art „Bridge“- oder „Access Point“-Modus betrieben werden. Das bedeutet, dass das Gerät mehr oder weniger als Paketweiterleiter fungiert – es führt selbst weder Routing noch Paketprüfung durch. Der einfachste Weg, dies bei günstigeren Routern zu erreichen, besteht darin, den DHCP-Server im Router zu deaktivieren und dann einen der LAN-Ports mit Ihrem Netzwerk zu verbinden (und außerdem sicherzustellen, dass die LAN-IP des Routers nicht mit Ihrem tatsächlichen Gateway in Konflikt gerät). Sie würden den WAN-Port hängen lassen. Wenn der Router sich beschwert (die meisten tun das nicht, aber einige schon), stellen Sie die Internetverbindung auf eine statische IP ein und verwenden Sie etwas wie 223.255.255.254 mit einer Subnetzmaske von 255.255.255.252 für die Adresse und 223.255.255.253 für das Gateway. (Trivia: das ist das letzte Subnetz der Klasse C mit der kleinstmöglichen Größe.)
Die andere Möglichkeit könnte eine Nichtübereinstimmung der Subnetzmaske sein. Jeder Computer im selben Netzwerk muss dieselbe Subnetzmaske konfiguriert haben (und muss sich natürlich im selben tatsächlichen Netzwerk befinden). Der Computer verwendet die Subnetzmaske nicht nur, um die IP-Broadcast-Adresse zu bestimmen, sondern auch, um zu bestimmen, ob empfangene Broadcast-Pakete vom Netzwerkstapel verarbeitet werden sollen (d. h. wenn Broadcast-Pakete für IPs außerhalb der auf dem Gerät konfigurierten Adresse und Subnetzmaske liegen, ignorieren viele Geräte das Paket).
Hoffe, das hilft zumindest ein wenig.
Antwort2
Was führt zum Verlust von ARP-Antwortpaketen in einem drahtlosen Netzwerk?
Nichts. Wenn wir Zeuge eines ordnungsgemäßen Paketverlusts wären, gäbe es keinen Grund, sie bevorzugt zu löschen. Bei einer fehlerhaften Kommunikationsleitung unterscheiden sich ARP-Pakete nicht von UDP, TCP und dergleichen. Da Sie jedoch nicht behaupten, dass die Leitung langsam ist, gibt es keinen wirklichen Grund, einen echten Paketverlust zu vermuten.
Der Grund, warum Pakete ihr beabsichtigtes Ziel nicht erreichen, ist dann, dass sie falsch geroutet werden. Sie haben jedoch darauf hingewiesen, dass die Pakete, die auf magische Weise verschwinden, ARP-Pakete sind, die kein richtiges Routing benötigen, da sie spontan das gesamte Subnetz füllen, zu dem sie gehören.
Daher sind die PCs (höchstwahrscheinlich) Mitglieder zweier verschiedener Subnetze. ARP-Pakete passieren keine Gateways, und ein Grund dafür istfallen gelassenbesteht darin, dass sie ihr eigenes Subnetz füllen, keinen Antwortenden finden und dann verschwinden, ohne das Gateway zu passieren, das die beiden unterschiedlichen Subnetze trennt.
Die Zugehörigkeit zu zwei unterschiedlichen Subnetzen würde sozusagen maskiert, wenn Sie Namen statt IP-Adressen verwenden würden. Wenn Sie stattdessen IP-Adressen verwenden würden, würden Sie sofort erkennen, dass sich die beiden PCs in unterschiedlichen Subnetzen befinden. Daher meine obige Frage.
Können Sie dieses Problem umgehen? Natürlich können Sie das. Sie müssen das Gateway des Subnetzes identifizieren, das nicht erreicht werden kann (nennen wir es G2), Verbindungen aus dem größeren LAN zulassen und dann das Gateway Ihres gesamten LANs (G1, das direkt hinter Ihrem Modem oder Ihrem ADSL-Router, je nachdem, welches) anweisen, dass die Route zu diesem Subnetz nicht über es selbst, G1, sondern über G2 verläuft.