Bridged-VPN-Hotspot: Welche Standardroute nutzt das Telefon?
Die Standardroute des Pi ist nicht das Gateway des Telefons. Trennen Sie die beiden Entscheidungen, halten Sie den Uplink aus der Bridge, und testen Sie das Lease vor dem Tunnel.
Das Telefon an Ihrem gebrückten Hotspot bezieht seine Adresse und sein Gateway irgendwoher, und das ist nicht die Standardroute des Pi. Eine Änderung der Standardroute des Pi ändert, wohin der Pi seinen eigenen Verkehr sendet. Das Telefon nutzt weiterhin das Gateway, das ihm genannt wurde, und wenn dieses Gateway im entfernten LAN liegt, queren seine Frames einfach die Bridge. Zwei Verbraucher, zwei Entscheidungen. Die Trennung erklärt die meisten Berichte über einen Hotspot ohne Internet, während der Pi selbst in Ordnung ist.
Zwei Geräte, zwei verschiedene Gateway-Entscheidungen
Der Pi hat einen eigenen IP-Stack und eine eigene Standardroute. Das Telefon hat einen eigenen IP-Stack und eine eigene Standardroute.
| Consumer | Who chooses its gateway | What carries the traffic |
|---|---|---|
| Phone on the bridged AP | The remote LAN router, delivered in its client configuration | An Ethernet frame toward that router crosses the AP and TAP bridge |
| Pi's encrypted connection | The travel uplink's route toward the VPN peer | The Pi sends its own outer transport packets over the underlay |
Diese Tabelle ist das ganze Modell. Das Gateway des Telefons ist eine Adresse im entfernten LAN, und seine Frames werden auf Schicht 2 zu diesem Router weitergeleitet. Die Standardroute des Pi betrifft den eigenen äußeren Transport des Pi, der den VPN-Peer über den Reise-Uplink erreichen muss.
Eine Bridge leitet Frames weiter, sie routet keine Pakete
Eine Linux-Bridge leitet Ethernet-Frames anhand der Ziel-MAC weiter, und mehr tut sie zwischen ihren Ports nicht. Der an die MAC des entfernten Routers adressierte Frame des Telefons wird auf den TAP-Port umgeschaltet und quert den Tunnel, ohne die Routing-Tabelle des Pi zu berühren. Deshalb kann eine defekte Standardroute des Pi das Telefon weiterarbeiten lassen, und deshalb kann eine korrekte ein Telefon nicht reparieren, dem das falsche Gateway zugewiesen wurde.
TAP transportiert Ethernet-Frames und kann ein Bridge-Port sein. TUN transportiert IP-Pakete und kann es nicht. Wenn Ihr Design das eine durch das andere ersetzt hat, ist die Bridge keine Bridge, und der Rest hiervon gilt nicht.
Entscheiden Sie, wer das Lease des Telefons vergibt
DHCP-Option 3 ist die Router-Option, und sie sagt dem Client, welches Gateway er für sein Subnetz verwenden soll. Wenn der DHCP-Server des entfernten LAN der einzige Verteiler ist, erhält das Telefon ein entferntes Gateway, und das Design ist stimmig. Wenn etwas anderes auf der Reise-Seite zuerst antwortet, erhält das Telefon ein lokales Gateway, sein Internetverkehr verlässt das Netz über den Reise-Uplink, und sein Verkehr ins entfernte LAN hat überhaupt keinen Pfad.
Betreiben Sie einen Verteiler für diese Broadcast-Domäne, und notieren Sie, was er vergibt.
Der Pi ist ein Sonderfall, auch wenn er eine Adresse aus demselben Lease bezieht. Entscheiden Sie bewusst, ob er die Routen installieren soll, die das Lease anbietet, denn eine importierte entfernte Standardroute kann den eigenen VPN-Transport des Pi in den Tunnel ziehen, den er am Leben halten will. Bei systemd-networkd ist diese Entscheidung UseRoutes= im DHCP-Abschnitt; bei dhclient ist es die routers-Option in der Request-Liste.
Halten Sie den Uplink außerhalb des gebrückten LAN
Die Schnittstelle, die die äußere VPN-Verbindung des Pi trägt, darf kein Bridge-Port werden. Wird sie es, wird der verschlüsselte Transport in das erweiterte LAN umgeschaltet, und der Tunnel trägt am Ende seine eigenen äußeren Pakete, was auf eine Weise fehlschlägt, die wie Paketverlust aussieht statt wie eine Schleife. Halten Sie auch AP-Fähigkeit und Bridge-Unterstützung explizit. Eine drahtlose Schnittstelle im Station-Modus kann normalerweise kein Bridge-Port sein, weil der 802.11-Header keinen Platz für die zweite MAC-Adresse hat, die eine Bridge braucht.
Definieren Sie die erweiterte Broadcast-Domäne, einen Adressplan und die Frame-Filterung, die Sie tatsächlich wollen. Den VPN-Listener auf dem Pi zu erlauben, gewährt nicht jedem gebrückten Client Zugriff auf die Verwaltungsdienste des Pi. Das sind getrennte Regeln, und sie als eine zu behandeln ist der Weg, auf dem ein Hotspot still zu einer offenen Tür wird.
Testen Sie die vier Dinge getrennt, wenn es bricht
Wenn das Telefon das entfernte LAN nicht erreicht, trennen vier Beobachtungen die Ursachen. Führen Sie sie in dieser Reihenfolge aus und halten Sie beim ersten Fehlschlag an.
ip route show default
bridge link show
ip -4 neigh show dev br0
tcpdump -ni br0 arp or icmpBeginnen Sie mit dem Lease: Hält das Telefon eine Adresse und ein Gateway im entfernten Subnetz? Sehen Sie dann die Bridge an, und bestätigen Sie, dass AP-Port und TAP-Port beide weiterleiten. Lesen Sie dann die Nachbartabelle, denn ein unaufgelöster Eintrag für den entfernten Router bedeutet, dass Frames hinausgehen und nichts antwortet. Beobachten Sie schließlich die Frames auf der Bridge, während das Telefon pingt, was Ihnen sagt, ob der Fehler überhaupt unterhalb von IP liegt.
Notieren Sie, welches Gerät welche Standardroute besitzt, wenn Sie fertig sind. Eine Zeile Dokumentation macht lokalen gegenüber entferntem Egress zu einer bewussten Client-Entscheidung, und die Bridge-Referenz gehört daneben.