Wie Sie, wenn Sie den Blog hier häufiger lesen, wissen, betreuen wir umfangreiche VPNs, viele davon auf der Basis von OpenVPN. Zu unseren Kunden gehören auch Kunden, die mittels LTE ans Internet angebunden sind und bei einem dieser Kunden trat das Problem auf, dass das OpenVPN kurz auf- und direkt wieder abgebaut wurde.
Der Aufbau
Vom Aufbau her ist der Kunde ans Internet mittels Vodafone-LTE angebunden. Er gehört zu den frühen Kunden von Vodafone und hat eine „Vodafone-LTE-Box“ und dahinter eine Vodafone-Easy-Box, an die die Telefone und sein VPN-Router geschaltet sind. Der VPN-Router baut selbständig das OpenVPN zum OpenVPN-Server auf.
Zusätzlich hat der Kunde auch ein Notebook, mit dem er auch die Möglichkeit hat, eine OpenVPN-Verbindung aufzubauen. Diese wird normalerweise auf Grund des VPN-Routers nicht benötigt.
Das Fehlerbild und die Lösung
Das vom Kunden beschriebene Fehlerbild war nun, dass er die Rechner, die im VPN liegen, nicht mehr erreichen konnte. Auf dem VPN-Server konnten wir sehen, dass das VPN erfolgreich aufgebaut und danach direkt wieder getrennt wurde. Auch beim Aufschalten auf den Router sahen wir dieses Verhalten: Das VPN wurde aufgebaut, die Routen gesetzt – und das VPN wieder getrennt. Da das Problem plötzlich aufgetreten war, rieten wir dem Kunden, unseren VPN-Router und die Vodafone-Easy-Box neu zu starten. Diese Geräte griffen ja in den Datenverkehr ein bzw. leiteten Pakete weiter, ein Problem bei den Geräten hätte also ggf. Auswirkungen auf das VPN. Von der auch noch vorhandenen Vodafone-LTE-Box hatten wir keine Kenntnis und auch der Kunde hatte dieses „dritte Gerät“ im Gedächtnis verdrängt.
Ein Neustart brachte jedoch keine Verbesserung. Testweise haben wir zum einen statt des VPN-Routers das VPN durch den Notebook direkt aufbauen lassen. Auch hier: Das VPN wurde erfolgreich auf- und direkt wieder abgebaut.
OpenVPN läuft normalerweise über UDP und Port 1194. Wir änderten testweise sowohl den Port als auch das Protokoll von UDP zu TCP. Beides brachte keine Verbesserung. Im Netzwerksniffer konnten wir immer den erfolgreichen Verbindungaufbau sehen, es flossen jedoch keinerlei Nutzdaten.
Da ja Router- und Vodafone-Easy-Box neu gestartet worden waren, schieden diese Systeme als Fehlerursache erste einmal aus, sie befanden sich vermutlich in einem definierten Zustand. Es musste also noch eine weitere Middlebox im Datenstrom liegen, die die Pakete filterte. Nach einigem Suchen fand der Kunde dann auch das ominöse Gerät, die Vodafone-LTE-Box. Nach einem Neustart dieses Systems arbeitete auch das OpenVPN wieder einwandfrei. Bei neueren Vodafone-LTE-Anschlüssen ist diese LTE-Box übrigens nicht mehr vorhanden, sondern deren Funktionen sind in der Easy-Box integriert.
Die Technik
Was war vermutlich technisch geschehen: Während des Problems konnte unser Kunde normal „ins Internet“, unser Fernzugriff war möglich und auch das OpenVPN wurde ja aufgebaut. Normale Datenpakete wurden also transportiert. VPN-Pakete können sich jedoch von den üblichen Datenpaketen unterscheiden: Da sie ja „normale Daten“ enthalten und diese verschlüsseln, sind die Pakete normalerweise größer als die Ursprungspakete. Unsere Vermutung ist, dass die Middle-Box sich in einem Zustand befand, indem Sie mit großen IP-Paketen nicht klar kam und diese ohne Rückmeldung an den Absender nicht transportierte, sondern einfach verschluckte. Da das Verhalten nach dem Neustart nicht mehr bestand, konnten wir es leider nicht verifizieren. Zur Verifizierung hätte man gezielt „normale“ Pakete an einen Server geschickt und die Größe gesteigert und hierbei beobachtet, ab welcher Größe die Pakete dann vernichtet werden oder ob, wie es sein sollte, die Pakete in kleinere Pakete aufgeteilt werden.
Als Fazit muss man festhalten, dass jede Middlebox, auf Kundenseite, auf der Seite des Providers oder der weiteren im Datenfluss liegenden Provider, erhebliche Auswirkungen haben kann. So gesehen hatten wir Glück, weil der Kunde die Box selbst zurücksetzen konnte. Was wäre geschehen, wenn eine Box, beim Provider stehend, die Probleme verursacht hätte? Hätte der Provider uns geglaubt, dass die Box die meisten Daten passieren ließ und nur einige Datenpakete zerstörte? Hätte er dann einen Reset durchgeführt, wenn nur wir von dem Problem betroffen gewesen wäre, ein „Reset“ jedoch u. U. viele andere Kunden beeinflusst hätte?