Lassen Sie mich das Szenario vorstellen.
AP#1 <-----> (Linux #1) <-----> Zwischennetzwerk <-----> (Linux #2) <-----> Drahtloser Client
Zusammenfassend brauche ich, dass eine Anwendung, die im Wireless-Client ausgeführt wird, transparent mit Access Point #1 kommunizieren kann (AP Nr. 1).
Wie Sie oben sehen können, habe ich ein Gerät namensAP Nr. 1, die einen Hotspot für eine bestimmte Anwendung generiert. Diese Anwendung kann verwendet werden, indem sie verknüpft wird mitAP Nr. 1, und ich möchte, dass ein drahtloser Client es remote verwendet. Da ich die Konfiguration von nicht berühren kannAP Nr. 1, aber ich kann konfigurierenLinux #1UndLinux #2habe ich Folgendes versucht:
- Linux #1assoziiert zuAP Nr. 1mithilfe des WPA-Supplicant und im selben Subnetz bleiben.
- Linux #2erstellt einen Zugriffspunkt für den Wireless-Client in einem anderen Subnetz.
- Der drahtlose Client kommuniziert mit einer festen IP in AP#1 und der Datenverkehr wird geroutet und genattet anLinux #1, so dass die Kommunikation mitAP Nr. 1ist transparent.
So weit, so gut, der drahtlose Client kann die Adresse von AP#1 anpingen. Der drahtlose Client startet die Kommunikation jedoch, indem er ein UDP-Paket an 255.255.255.255 sendet und erwartet, dassAP Nr. 1Antworten, bevor die Anwendung tatsächlich zu arbeiten beginnt. Gibt es eine Möglichkeit, diese Anfragen hin und her zu leiten, oder ist 255.255.255.255 generell nicht routbar?
Ich habe darüber nachgedacht, diese Konfiguration durch einen Gretap-Tunnel zu ersetzen, aber diese Topologie unterscheidet sich ein wenig von den Beispielen, die ich gesehen habe, da ich nicht konfigurieren kannAP Nr. 1.
Hier sind meine Fragen:
- Glauben Sie, dass dieses Problem durch die Einrichtung einer Art L2-Tunnel gelöst werden kann?
- Wenn ja, was wäre die beste Option?
- Wäre es in diesem Fall möglich, das NAT bei Linux Nr. 1 zu entfernen und die Verbindung zwischen AP Nr. 1 und dem Wireless-Client völlig transparent zu machen?
Vielen Dank im Voraus und entschuldigen Sie die Anfängerfragen.
Antwort1
Glauben Sie, dass dieses Problem durch die Einrichtung einer Art L2-Tunnel gelöst werden kann?
Ja, und Brücken an beiden Enden. Aber Linux macht es möglicherweise nicht einfach, eine Wi-Fi-Clientschnittstelle zu überbrücken (siehe unten).
Gibt es eine Möglichkeit, diese Anfragen hin und her zu leiten, oder ist 255.255.255.255 generell nicht routbar?
Es ist nicht verboten, Broadcasts weiterzuleiten, beispielsweise hatte Cisco IOS diese Option, obwohl Router dies standardmäßig nicht tun, um Schleifen zu vermeiden.
Ich bin nicht sicher, ob Linux das nativ kann, aber es könnte mit einer obskuren iptables-Regel möglich sein. Es wäre einfacher, einen Userspace-Daemon zu verwenden, bcrelay
der Broadcasts in eine Richtung weiterleiten kann.
Wäre es in diesem Fall möglich, das NAT bei Linux Nr. 1 zu entfernen und die Verbindung zwischen AP Nr. 1 und dem Wireless-Client völlig transparent zu machen?
Nicht ganz. Sie können es auf IP-Ebene vollständig transparent machen, aber ein Standard-WLAN-Client kann nur Frames mit seiner eigenen MAC-Adresse senden, sodass Sie die WLAN-Schnittstelle des Clients nicht einfach überbrücken können – es mussSchicht-2-NATirgendeiner Art auf dem Gerät "Linux#1". (Das Gerät "Linux#2" ist ein AP, alsodürfenauf Ebene 2 vollständig transparent sein.)
Ich weiß nicht, wie man es unter Standard-Linux implementiert, obwohl ich ARPNAT in proprietären Firmwares (Mikrotik RouterOS und Ubiquiti airOS-Geräte) gesehen habe, wenn sie auf Stationsmodus eingestellt sind. Ich denke, viele „Wireless Bridges“ für Verbraucher implementieren es ebenfalls.
(Linux unterstützt die Verbindung im vollständig überbrückbaren „4addr“-Modus, aber Ihr AP unterstützt dies höchstwahrscheinlich nicht.)