Die Netzanbindung

Heute möchte ich euch mal wieder ein paar Infos zu unserem Umzug nach Brasilien geben. In letzter Zeit habe ich mich mit der Netzanbindung von Brasilien nach Deutschland beschäftigt. Es gibt verschiedene Gründe warum eine solche Anbindung interessant ist.

Die Gründe

Für uns steht an erster Stelle die Wartung der IT-Infrastruktur meiner Familie in Deutschland. Für uns fällt dabei die Verfügbarkeit einer deutschen Telefonnummer für innerdeutsche Gespräche zum Nulltarif ab. Darüber hinaus bietet eine solche Kopplung auch die Möglichkeit deutsches Fernsehen, Radio oder Streaming-Dienste vom Ausland aus zu nutzen. Geoblocking wird von vielen Diensten im Internet genutzt um Nutzer dieser Dienste davon abzuhalten, ihre Angebote auch aus anderen Ländern zu nutzen.

Die Realisierung

Die Kopplung des brasilianischen Internetanschlusses mit dem deutschen Internetanschluss lässt sich auf verschiedene Wege realisieren. Verschiedene Netzwerke lassen sich am einfachsten und effektivsten über OpenVPN miteinander koppeln. Im Internet gibt es sehr viele Anleitungen wie eine solche Ankopplung zu realisieren ist. Alternativ wäre es auch möglich so etwas z.B. über IPSec oder über SSH(badvpn) zu realisieren. Diese Optionen haben allerdings gegenüber OpenVPN z.T. entscheidene Nachteile. OpenVPN ist frei, schnell, sicher und leicht skalierbar. Deshalb haben wir uns für diese Kopplung entschieden. Wir verwenden dazu eine Kombination aus zwei RaspberryPi Geräten. Eines der beiden Geräte wird als OpenVPN-Server konfiguriert und an einem Internetanschluss in Deutschland betrieben. Das zweite Gerät wird an unserem zukünftigen Internetanschluss in Brasilien betrieben. Das brasilianische Gerät ist so konfiguriert, dass es als VPN-Router agiert. Das Gerät stellt einen WLAN-Accesspoint bereit und routet den gesamten Internetverkehr der im WLAN eingeloggten Geräte in den VPN-Tunnel. Der Vorteil daran ist, dass die Endgeräte wie Fernseher, Streaming-Sticks, Laptops usw. keine separate VPN-Funktionalität benötigen. Für unseren Anwendungsfall nutzen wir dafür zwei Raspberry Pi 4 Model B mit 4 GB RAM.

Die Probleme

Nachdem wir den VPN-Server konfiguriert und innerhalb Deutschland erfolgreich getestet hatten, konfigurierten wir einen Laptop in Brasilien als OpenVPN-Client. Auch dieser Test verlief erfreulicherweise erfolgreich. Im Glauben, dass jetzt alles soweit getestet und einsatzfähig ist, schickten wir den zweiten RaspberryPi, damals noch ein RaspberryPi 3 B+, inklusive Zubehör nach Brasilien. Die VPN-Konfiguration, inklusive der Schlüssel, wurden zuvor gesichert und vom Gerät entfernt. Sollte das Gerät auf dem Transportweg verloren gehen oder gestohlen werden, dann geht man damit zusätzlicher Arbeit aus dem Weg. Nach der Ankunft wird die Konfiguration dann über SSH wiederhergestellt.

Das erste Gerät

Kaum war das Gerät in Curitiba angekommen, fingen wir an die Konfiguration wieder herzustellen. Wir stellten allerdings fest, dass die Performance unzureichend war. Auf der Suche nach dem Fehler fiel nach einigen Neustarts das komplette Gerät aus und ließ sich nicht mehr booten. Damit war das erste Gerät bereits am ersten Tag nach seiner Ankunft in Brasilien funktionsunfähig. Wir stempelten das Verhalten als Herstellerproblem ab und ich kaufte direkt einen neuen Raspberry Pi 4 Model B, konfigurierte ihn und versendete ihn mit dem nächsten Paket nach Curitiba.

Das zweite Gerät

Vier Wochen später erreichte der zweite Pi sein Ziel und wir begannen aufs Neue mit der Konfiguration. Kurz darauf mussten wir wieder massive Probleme mit der Netzwerkperformance feststellen. Zeitweise gingen 70% der Pakete verloren und entsprechend schlecht war der Pi zu bedienen. Die gute Nachricht war, dass die Hardware des Pi diesmal nicht den Geist aufgab und er weiterhin kontrollierbar blieb.

Finde die Ursache

Was nun folgte, war die Suche nach der Nadel im Heuhaufen. Glücklicherweise sollten wir sie zu einem späteren Zeitpunkt noch finden. Aus meiner Erfahrung weiß ich, solchen Problemen begegnet man am besten mit Durchhaltevermögen und strukturierter Fehleranalyse.

Kein Licht am Ende des Tunnels

Im ersten Schritt prüften wir, ob die Probleme auch mit dem bereits konfiguriertem Laptop bestanden. Dabei zeigte sich allerdings ein differenziertes Bild. Der Laptop zeigte in den Tests zwar keine massiven Performanceprobleme, aber zeitweise dennoch starke Schwankungen. Abschnittsweise zeigte der PI sogar eine gute bis sehr gute Netzwerkperformance. Mein Resümee nach den ersten Tests war, dass es vermutlich kein Probleme mit der Hardware des Pi’s wäre. Dennoch ließ ich Kabel und die Ports am Router kontrollieren und tauschen. Es zeigte sich keine Besserung und mein Verdacht viel auf das CGNAT (Carrier-Grate-NAT) des Providers. In Brasilien sind sehr viele Internetanschlüsse als IPv6-Only-Stack ausgeführt. Das ist zu vergleichen mit den DSL-Lite Anschlüssen in Deutschland. Die CGNAT’s der Provider dienen also als Umsetzer zwischen den Protokollen IPv4 und IPv6. Unser DSL-Anschluss in Deutschland war zu diesem Zeitpunkt zu einem IPv4-Only Anschluss zurückgestuft worden, sodass die Protokolle immer ineinander umgesetzt werden mussten. Zu Beginn unserer Tests, war der DSL-Anschluss in Deutschland noch Dual-Stack fähig. Er bot also beide Funktionalitäten. Nach ein paar Monaten wurde die IPv6 Funktionalität aber plötzlich mit der Begründung, dass es sich nur um ein Test gehalten habe abgeschaltet. Die Abschaltung überschnitt sich unglücklicherweise mit unseren Tests und es fehlte uns nun auch die Möglichkeit die Performance erneut über IPv6 zu messen. Das Fehlerbild erhärtete die Vermuten weiter, dass es am CGNAT des brasilianischen Providers liegen könnte. Die Performance war teilweise gut und teilweise miserabel. Ich führte weitere Tests durch und mietete mir parallel einen VServer mit IPv6-Unterstützung in Deutschland an. Mir kamen langsam Zweifel an unserer Theorie auf, als ich parallel die Performance des Pi und des Laptops in den frühen Morgenstunden eines brasilianischen Tages vermaß. Während der Laptop eine sehr gute Performance auswies, wartete der Pi mit extrem schlechter Performance auf. Nach dem Tausch von Kabeln und Ports verbesserte sich plötzlich die Performance um sich nach einigen Stunden wieder extrem zu verschlechtern. Der VServer war zwar mittlerweile aufgesetzt, aber auf Grund von Konfigrationsfehlern beim Hoster war es nicht möglich den Server über IPv6 zu erreichen. Es sollte geschlagene drei Wochen dauern, bis der Fehler beim Hoster behoben und der Server über IPv6 erreichbar war. Weitere Tests ergaben, dass unabhängig vom verwendeten Protokoll die Performance stark schwankte.

Zurück auf Los

Manche Situationen im Leben bedingen es, einen Schritt zurück zu machen, um wieder einen in eine andere Richtung nach vorn gehen zu können. Glücklicherweise hatte ich im letzten Paket nach Brasilien einen USB-LAN-Adapter mitgesendet und ich dachte mir, es könnte nicht schaden, mal ein anderes Interface für die Datenübertragung auszuprobieren. Kaum hatte ich das Interface konfiguriert, war die Performance um Dekaden besser. Der Verlust von Paketen reduzierte sich von 70% auf 0%. Die Datenübertragungsrate stieg von einigen Kb/s bis auf 33 MBit/s. Natürlich schwankte die Datenübertragung auch nach dieser Änderung, abhängig von der Tageszeit, zwischen 8 MBit/s und 33 MBit/s aber es lief endlich schnell und stabil. Ich gehe mittlerweile davon aus, dass der Router in Brasilien nach einer Weile Probleme auf seinen externen LAN-Interfaces aufweist. Es kommt dann zu hohen Paketverlusten und zu extrem geringen Übertragungsraten. Startet man die Box neu, ist das Problem behoben. Häufig reicht es sogar aus, einfach das Kabel kurz vom LAN-Interface zu trennen. Leider gibt es in Brasilien den Routerzwang, was es uns nicht ermöglicht direkt eigene Hardware zu nutzen. Aber sobald wir in Brasilien sind, lasse ich mir dafür noch etwas einfallen. 😄 Für den Moment, reicht uns die Erkenntnis. 👍

Juhu die Datenübertragung steht! 👍

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.