Access Point leitet keine DHCP-Pakete an das Gateway weiter, um eine IP zuzuweisen – Raspberry Pi Bridge

Access Point leitet keine DHCP-Pakete an das Gateway weiter, um eine IP zuzuweisen – Raspberry Pi Bridge

Ich habe einen Pi mit 2 drahtlosen Schnittstellen, 1 ist mit dem Netzwerk-Gateway verbunden, die andere fungiert als Zugangspunkt dankHostapd.

Auf dem AP läuft keine DHCP- oder NAT-Software, sondern lediglich Hostapt, um mehreren Geräten die Verbindung zu ermöglichen.

Ich versuche, meinen Laptop mit diesem Zugangspunkt zu verbinden.

Mit einer statischen IP-Adresse und der manuellen Eingabe der Gateway-Adresse, DNS usw. funktioniert es einwandfrei.

Wenn ich jedoch versuche, eine Verbindung über DHCP herzustellen, funktioniert dies nicht. In Wireshark kann ich sehen, dass beim Verbindungsversuch das erste DHCP-Discover-Paket an den Zugriffspunkt gesendet wird. Dieses Paket wird dann jedoch nicht aus der mit dem Gateway verbundenen Schnittstelle weitergeleitet, obwohl ich eine Überbrückungssoftware, die ich in Python geschrieben habe, auf dem Pi laufen habe.

Die Software sendet Pakete einfach über die entgegengesetzte Schnittstelle, über die sie empfangen wurden (eine Vereinfachung ihrer Funktionsweise, aber das ist der allgemeine Kern für dieses Szenario: Es handelt sich um eine Netzwerkbrücke). Die AP-Schnittstelle sollte also das DHCP-Paket empfangen und an das Gateway weiterleiten, das mit dem DHCP-Angebot usw. antworten sollte.

Die Software funktioniert, da ich auf meinem Laptop andere DHCP-Informationsmeldungen sehen kann, die durch die Bridging-Software gelaufen sind, sowie andere DHCP-Erkennungs-/Angebots-/Anforderungs-/Bestätigungsmeldungen, die die Bridging-Software derzeit an meinen Laptop sendet, da es sich dabei um Broadcasts handelt.

Ich frage mich, ob der Grund, warum diese DHCP-Discover-Pakete nicht an das Gateway weitergeleitet werden, an einer Einstellung oder Funktion des Hostapd-Zugriffspunkts liegt.

Ich bin überzeugt, dass das Problem nicht an dem von mir geschriebenen Code liegt, da dieser für DNS und dergleichen einwandfrei funktioniert.

Wenn ich darüber hinaus manuell ein DHCP-Discovery-Paket erstelle, wird es problemlos von der mit dem Gateway verbundenen Schnittstelle weitergeleitet und ausgegeben. Die DHCP-Pakete werden nur dann nicht weitergeleitet, wenn sie automatisch von meinem Laptop gesendet werden, der versucht, eine IP-Adresse von dem Zugriffspunkt abzurufen, mit dem er eine Verbindung herstellen möchte.

Ich würde davon ausgehen, dass der Zugriffspunkt die IP-Adresse nicht direkt angeben muss, sondern den tatsächlichen DHCP-Server im Netzwerk kontaktieren kann, um eine korrekte Zuweisung zu erhalten.

Wenn jemand eine Idee hat, warum das Paket scheinbar vom Zugriffspunkt absorbiert wird, bevor es an die andere Schnittstelle weitergeleitet werden kann, lassen Sie es mich bitte wissen!

Antwort1

Ich gehe davon aus, dass Sie WPA2 auf der „Uplink“-Seite verwenden. Das funktioniert nicht, da WPA2 beim Verschlüsseln an die MAC-Adresse gebunden ist. Daher funktioniert die Weiterleitung von Paketen nicht.

Sie müssten etwas mit Proxy-ARP oder IP-Weiterleitung konstruieren.

Wenn Sie versuchen, das Rad in Python neu zu erfinden, machen Sie sich keine Sorgen, alles befindet sich im Linux-Kernel. Aber denken Sie daran: DHCP Discover ist eine Übertragung und die Antwort ist ein Layer2-Unicast an die sendende MAC. Wenn Sie hier also übersetzen, müssten Sie die Pakete neu schreiben. Es könnte einfacher sein, mit einem DHCP-Relay-Setup zu experimentieren, da der Raspi ein Switch wäre, der genau das tut.

Meine erste Empfehlung wäre, das Setup mit NAT und DHCP-Server auf der mittleren Box zum Laufen zu bringen und dann im zweiten Schritt zu einer transparenteren mittleren Box überzugehen.

verwandte Informationen