Das Notebook wechselt vom Büro-WLAN zum Handy-Hotspot, der Tunnel hält noch ein paar Sekunden, dann stoppt der Verkehr, während die Schnittstelle weiterhin behauptet, verbunden zu sein. Auf dem Server zeigt die Statusliste weiterhin die alte öffentliche Adresse. Genau für diese Lage gibt es float, und es ist zugleich die Lage, in der man deutlich mehr von ihm erwartet, als es tut. Wer die Grenze richtig zieht, macht aus einem verwirrenden Stillstand entweder eine einzeilige Konfigurationsänderung oder eine völlig andere Untersuchung.

Was float lockert und was es nie lockert

Normalerweise spricht eine Sitzung weiter mit der äußeren Adresse und dem Port, mit denen sie begonnen hat, und Pakete, die von anderswo ankommen, werden ignoriert. Die Option float hebt diese strenge Bindung auf, sobald sich der Peer bereits ausgewiesen hat, sodass ein geändertes Quell-Mapping dieselbe Sitzung fortsetzen kann, statt verworfen zu werden. An den kryptografischen Prüfungen ändert sich nichts: Schlüssel, Zertifikate und jeder HMAC-Schutz bleiben genau wie konfiguriert.

Das ist eine Entscheidung pro Paket, keine Regel darüber, wer sich verbinden darf. Eine unbekannte Maschine, die ein Paket von einer neuen Adresse sendet, hat nichts bewiesen, und ihr Paket wird wie jeder andere nicht authentifizierte Verkehr verworfen. Nur Verkehr, der die eigene Authentifizierung der Sitzung besteht, kann die vermerkte Peer-Adresse verschieben, und deshalb ist es sicher, float in Umgebungen eingeschaltet zu lassen, in denen Clients umherwandern.

Es sagt auch nichts über den inneren Tunnel. Eine verschobene äußere Adresse vergibt keine Tunneladresse neu, ändert nicht den Pool und gewährt dem Peer keinen Zugang zu etwas Neuem. Im Tunnel gelten vor und nach dem Wechsel dieselbe Identität und dieselben geschobenen Routen. Ein Wechsel handelt auch den Datenkanal nicht neu aus, sodass die ausgehandelte Verschlüsselung und die Schlüssel weiterlaufen.

Das Paket, das eine Sitzung verschiebt, muss sich authentifizieren

Starten Sie eine Sitzung auf die übliche Weise gegen den konfigurierten entfernten Gegenpunkt, und float übernimmt, was passiert, wenn sich das Mapping ändert. Ein Mobilfunknetz, das mitten im Fluss umnummeriert, ein NAT-Gateway, das sein Port-Mapping umschreibt, oder ein Notebook, das den Uplink wechselt, erzeugen alle dieselbe Form: authentifizierte Pakete aus einem neuen Tupel, die bei einer Sitzung ankommen, die noch an das alte glaubt.

Wenn gefragt wird, ob float funktioniert, ist der nützliche Beleg ein abgeschlossener Handshake, auf den eine akzeptierte Quelländerung folgt, nicht eine Logzeile allein über die Adresse. Bringen Sie die alte und die neue äußere Adresse mit der Sitzung in Verbindung, die am Leben blieb, und bestätigen Sie dann, dass der Verkehr tatsächlich durch den Tunnel weiterlief.

Stirbt die Sitzung, statt sich zu verschieben, ist das Paket von der neuen Adresse wahrscheinlich an der Authentifizierung gescheitert oder nie angekommen. Beide Fälle sehen vom Client aus gleich aus. Auf dem Server sagt Ihnen ein Mitschnitt an der öffentlichen Schnittstelle, welchen Fall Sie haben, bevor Sie irgendeine Konfiguration anfassen.

Erkundung ist ein völlig eigener Mechanismus

float löst keine Namen per Zeitgeber auf und verfolgt keinen dynamischen DNS-Eintrag. Wenn der Hostname des Servers beginnt, auf eine neue Adresse aufzulösen, hat ein untätiger Client keinen Grund, das zu bemerken, und kein Paket vom neuen Endpunkt zu authentifizieren. Dieses Problem gehört zur Wiederverbindungslogik, zum eigenen Wiederholungsverhalten des Clients und zu DNS, nicht zu float.

Die Option noch einmal hinzuzufügen kann fehlende Route zur neuen Adresse nicht ausgleichen. Sie hilft auch nicht, wenn der Peer schweigt, denn ein schweigender Peer sendet nie das authentifizierte Paket, das etwas verschieben würde.

Die darunterliegende Firewall hat ebenfalls ein Wort mitzureden. Eine Regel, die nur den alten äußeren Endpunkt erlaubt, blockiert die geänderte Adresse, bevor OpenVPN sie überhaupt sieht, und keine clientseitige Konfiguration behebt das. Betrachten Sie den Lebenszyklus erlaubter Adressen als eigene Aufgabe; die Regel auf beliebige Quellen zu erweitern, tauscht ein kleines Problem gegen ein großes.

Wenn NetworkManager das Profil besitzt

Ein Kommandozeilenprofil und eine importierte Verbindung sind getrennte Konfigurationen, und die eine zu bearbeiten berührt die andere nicht. Bevor Sie annehmen, die Option werde nicht unterstützt, stellen Sie fest, welchen Plugin-Typ das gespeicherte Profil tatsächlich nutzt und wo seine Werte liegen. Die UUID des Profils ist die Kennung, auf die es ankommt, wenn Sie etwas prüfen oder ändern.

Prüfen Sie die gespeicherte Verbindung und nicht die ursprüngliche Importdatei. Eine Zeile, die in einer .ovpn-Datei überlebt, beweist nichts, wenn der aktive Manager sie nie angewendet hat, und ein Editor ohne Kontrollkästchen für eine bestimmte Option beweist ebenso wenig über die Fähigkeiten des Protokolls.

Patchen Sie kein paketiertes Plugin, um das Verhalten hinzuzufügen, erst recht nicht mit einem Diff, der für eine historische Version einer unzusammenhängenden Komponente geschrieben wurde. Wenn die installierte Integration die Einstellung wirklich nicht ausdrücken kann, ist der richtige Schritt ein unterstütztes Profil oder ein anderer Clientweg, den der Eigentümer des Deployments freigibt.

Beweisen Sie den Übergang, statt ihn anzunehmen

Führen Sie den Test so durch, wie der Fehler auftritt. Verbinden Sie, prüfen Sie Verkehr durch den Tunnel, erzwingen Sie eine Änderung der äußeren Adresse und prüfen Sie dann drei Dinge: die Sitzung existiert noch, die vermerkte Peer-Adresse hat sich verschoben, und eine echte Anfrage erreicht noch ihr Ziel. Alles weniger als alle drei ist eine Teilantwort.

Halten Sie den Wiederherstellungszugang bereit, während Sie testen, denn Roaming-Experimente neigen dazu, die Maschine zu stranden, von der aus Sie arbeiten. Eine serielle Konsole oder eine außerbandige Route macht aus einem fehlgeschlagenen Test eine Wiederherstellung in fünf Minuten statt eines Besuchs vor Ort.

Beschreiben Sie schließlich nur den Fall, den Sie tatsächlich geprüft haben. Eine erfolgreiche Adressänderung während einer Sitzung ist kein Beleg dafür, dass sich DNS-Migrationen, eine andere Client-Implementierung oder ein neu aufgebautes Profil gleich verhalten. Die link-options-Dokumentation nennt den Geltungsbereich der Option präzise; Ihr Testprotokoll sollte angeben, welchen Teil dieses Bereichs Sie wirklich abgedeckt haben.

Ähnliche Artikel