WLAN-Client und Hotspot auf einem Funkmodul: was bricht
Ein Pi-Hotspot kann gesund aussehen, während sein WLAN-Uplink hängt. Lesen Sie die Schnittstellenkombinationen und Kanalgrenzen des installierten Funkmoduls, bevor Sie das VPN beschuldigen.
Ihr Telefon bleibt mit dem Hotspot verbunden, während der Uplink nichts durchlässt. Der Pi meldet weiterhin eine WLAN-Assoziation, der Access Point sendet weiterhin Beacons, und jede Anfrage läuft in einen Timeout. Ein einziges Funkmodul bedient zwei Rollen gleichzeitig, und eine davon gewinnt, wenn die andere den Kanal braucht. Bevor Sie das VPN anfassen, stellen Sie fest, ob der installierte Treiber und die Firmware diese Rollenpaarung überhaupt akzeptieren.
Das Symptom zeigt auf das Funkmodul, nicht auf den Tunnel
Betrachten Sie den Fehler der Reihe nach, und er sieht nicht mehr wie ein Routingfehler aus. Ein Client verbindet sich mit dem Hotspot, erhält eine Adresse und lädt ein oder zwei Seiten. Dann assoziiert sich die Stationsschnittstelle nach einem Roaming, einer Schlüsselerneuerung oder einem kurzen Signaleinbruch erneut mit dem Upstream-Router. Der Access Point startet entweder seinen Beacon neu oder lässt seine Clients ohne Pfad zurück, und das VPN-Log füllt sich mit Wiederverbindungsversuchen, die nie die Ursache waren.
Zwei Schnittstellennamen ergeben nicht zwei Funkmodule. wlan0 und die Access-Point-Schnittstelle teilen sich ein Gerät, eine Kanalzustandsmaschine und einen Firmware-Scheduler. Der Kernel legt genau offen, welche Rollen- und Kanalkombinationen dieses Gerät unterstützt, also lesen Sie diese Liste, statt anzunehmen, die Paarung funktioniere, weil beide Schnittstellen hochgekommen sind.
Lesen Sie die Kombination, bevor Sie etwas ändern
Der Funk-Stack meldet seinen eigenen Vertrag im Abschnitt zu Schnittstellenkombinationen von iw list. Jede nummerierte Kombination listet erlaubte Rollenanzahlen, wie viele Schnittstellen existieren dürfen und wie viele verschiedene Kanäle diese Schnittstellen gleichzeitig belegen dürfen. Eine Kombination, die eine Station und einen Access Point auf einem einzigen Kanal nennt, ist die, die dieses Deployment braucht.
iw list | sed -n '/valid interface combinations/,/^$/p'
Lesen Sie die Zahlen, nicht nur das Vorhandensein der Wörter. Ein Treiber kann den Stationsmodus und den Access-Point-Modus getrennt unterstützen, während die einzige zulässige Kombination beider nur einen Kanal, eine kleine Schnittstellenzahl oder ein Beacon-Intervall erlaubt, das der Hotspot nicht einhalten kann. Manche Firmwares lassen während eines Scans oder einer Schlüsselerneuerung auch eine Rolle fallen, was wie ein flatternder Uplink aussieht und nicht wie eine Fähigkeitsgrenze. Wenn keine Kombination beide Rollen nennt, wird die Paarung nicht unterstützt, was der Hotspot-Knopf des Desktops auch suggeriert.
Die Dokumentation zu cfg80211-Schnittstellenkombinationen beschreibt die Felder und die Beacon-Einschränkung. Werte eines Adapters sagen nichts über einen anderen, also bewahren Sie die Ausgabe beim Rechner auf, statt sie zu verallgemeinern.
Kanal- und Adressplan entscheiden über den Rest
Ein Access Point muss auf einem Kanal sitzen, den das Funkmodul bedienen kann, und ein Stations-Uplink muss dem Upstream-Access-Point folgen. Wenn diese beiden Entscheidungen nicht übereinstimmen, muss eine Rolle neu starten. Auf vielen Adaptern mit einem einzigen Funkmodul spiegelt der Hotspot deshalb den Stationskanal, und eine Kanaländerung upstream nimmt den Hotspot kurz mit nach unten.
Planen Sie die IP-Seite getrennt vom Funkmodul. Ein gerouteter Hotspot verwendet üblicherweise ein privates Subnetz wie 192.168.50.0/24 mit dem Pi auf 192.168.50.1, einem DHCP-Pool innerhalb dieses Subnetzes und dem Pi als Resolver-Forwarder. Der Shared-Modus von NetworkManager richtet Weiterleitung und Adressübersetzung für dieses Subnetz ein, fügt aber keine Funkkapazität hinzu und macht den Tunnel nicht zum einzigen Ausgang. Notieren Sie, ob Clients auf Schicht zwei gebrückt oder auf Schicht drei geroutet werden, bevor Sie über VPN-Richtlinien streiten.
Testreihenfolge, die Funk von Routing trennt
Arbeiten Sie vom Gerät nach außen und stoppen Sie beim ersten Schritt, der fehlschlägt. Diese Auslesungen sind auf einem laufenden System sicher und ändern keine Konfiguration. Führen Sie sie aus, während ein Client assoziiert ist und der Uplink in dem Zustand ist, den Sie debuggen.
iw dev
iw dev wlan0 link
nmcli -t -f DEVICE,STATE,CONNECTION device status
ip -br addr show
sysctl net.ipv4.ip_forward
Wenn iw dev wlan0 link keine Assoziation zeigt, kommt das Funkproblem zuerst, und der Tunnel ist irrelevant. Wenn der Uplink assoziiert ist und der Client keine Adresse hat, sind die Anbindung und die DHCP-Autorität falsch. Wenn der Client eine Adresse, aber keine Erreichbarkeit hat, fehlen Weiterleitung, Übersetzung oder Resolver-Zustellung. Erst wenn sowohl der Hotspot-Pfad als auch der Uplink-Pfad funktionieren, wird ein fehlschlagender Tunnel zum nächsten Test.
Notieren Sie Adapter, Treiber und Firmware zusammen mit der akzeptierten Kombination und Kanalregel. Ein späteres Kernel- oder Firmware-Update kann die unterstützte Liste ändern, und genau diese Notiz macht aus einem Rätsel eine bekannte Einschränkung.