Auf Verbinden drücken, und auf einer Linux-Maschine ändern sich drei Dinge: eine Schnittstelle erscheint, Routen werden installiert, und der Resolver beginnt anders zu antworten. Die meisten Einrichtungsfehler entstehen dadurch, dass eines dieser drei ohne die anderen geschieht oder dass zwei Programme sich uneinig sind, wem sie gehören. Die Reihenfolge zu verstehen erklärt den Fehler schneller als das Lesen der Logausgabe eines Clients.

Eine Schnittstelle erscheint, bevor irgendetwas funktioniert

Ein Tunnel-Client öffnet eine virtuelle Schnittstelle und übergibt ihr Pakete. Ein TUN-Gerät überträgt IP-Pakete, was eine geroutete VPN braucht; ein TAP-Gerät überträgt Ethernet-Frames, was ein gebrücktes Design braucht. Das Kernelmodul stellt das Gerät bereit, und der Client besitzt es, solange die Sitzung dauert.

Dass die Schnittstelle hochkommt, ist nicht dasselbe wie ein funktionierender Tunnel. Sie kann mit einer Adresse existieren, während der Peer nicht erreichbar ist, und deshalb ist die Schnittstellenliste die erste Prüfung und nicht die letzte. Ein Gerät, das sich als oben meldet, beschreibt die Sicht des Kernels auf eine virtuelle Verbindung, nicht die Bereitschaft des Peers zu antworten.

Lassen Sie den mitgelieferten Schnittstellenmodus in Ruhe. Ein TUN-Profil in TAP zu ändern macht aus einem gerouteten Server keinen gebrückten, und es entsteht meist eine Verbindung, die sich aufbaut und nichts weiterleitet.

Routen installiert, wer den Tunnel besitzt

Routen sind die zweite Änderung, und ihre Zuständigkeit ist wichtiger als ihr Inhalt. Ein NetworkManager-Profil, eine systemd-Unit und ein von Hand gestarteter Client können alle Routen installieren, und wenn zwei davon es gleichzeitig tun, entsteht eine Tabelle, die später niemand erklären kann.

ip -br addr show
ip route show
ip -6 route show

Ein Full-Tunnel-Profil ersetzt die Standardroute; ein Split-Tunnel-Profil fügt spezifischere Routen hinzu und lässt die Standardroute in Ruhe. Beides ist normal, und Letzteres ist der Grund, warum das Löschen einer Standardroute ein schlechter erster Test auf einer Maschine ist, die Sie remote administrieren. Sie zu entfernen ist auch der schnellste Weg, die Sitzung zu verlieren, mit der Sie das Problem beheben.

Lesen Sie die Tabelle, statt anzunehmen. Eine spezifischere Route oder eine Policy-Regel kann Verkehr in den Tunnel schicken, während die Standardroute noch auf die physische Schnittstelle zeigt, was widersprüchlich aussieht, bis man die ganze Tabelle liest. Diese Kombination ist für Split-Tunnel normal und verwirrend für alle, die erwarten, dass eine Zeile das Design beschreibt. Suchen Sie die Route, die Ihrem tatsächlichen Ziel entspricht, nicht die, die dem Diagramm entspricht.

Der Resolver wechselt den Besitzer

DNS ist die dritte Änderung und die, die am ehesten an einer Stelle verwaltet wird, an der Sie nicht nachgesehen haben. Auf einem Desktop kann NetworkManager Resolver-Einstellungen pro Verbindung durchreichen. Auf einem System mit systemd-resolved werden die Einstellungen pro Link angewendet, und /etc/resolv.conf kann ein Stub oder ein symbolischer Link sein statt einer Datei, die Sie bearbeiten sollten.

resolvectl status
readlink -f /etc/resolv.conf
cat /etc/resolv.conf

Wenn eine manuelle Änderung an der Resolver-Datei nach einer erneuten Verbindung verschwindet, ist das das Signal, die Komponente zu finden, die sie pflegt, und stattdessen das Profil zu ändern. Die erzeugte Datei zu bearbeiten ist eine Änderung, die eine erneute Verbindung löscht.

Private Namen brauchen meist den internen Resolver und die Suchdomänen, die der Betreiber bereitgestellt hat. Ein öffentlicher Resolver kann genau die Ressource kaputt machen, für die es die VPN gibt, und das Symptom sieht wie ein Routingfehler aus und nicht wie ein DNS-Fehler. Prüfen Sie Namen und Adresse getrennt, denn dass eines funktioniert und das andere scheitert, sagt Ihnen genau, wo Sie nachsehen müssen. Dieser eine Vergleich spart eine Stunde Routen-Debugging.

Ein Verwalter pro Verbindung

Das Profilformat entscheidet, welches Programm es verwenden kann. Ein OpenVPN-Profil braucht OpenVPN oder ein kompatibles Plugin, und eine WireGuard-Konfiguration hat ihr eigenes Format mit Peer-Schlüsseln und erlaubten Präfixen. Ein Importdialog übersetzt das eine nicht in das andere, was auch immer die Dateiendung nahelegt.

Wählen Sie einen Verwalter und lassen Sie ihn die Verbindung besitzen. Denselben Tunnel über zwei Werkzeuge hochzubringen macht die Routentabelle und das Wiederverbindungsverhalten mehrdeutig, und der zweite, der startet, gewinnt meist auf Arten, die schwer zu reproduzieren sind.

Installieren Sie die Pakete, die Ihre Distribution unterstützt, und holen Sie das Profil beim Betreiber. Behandeln Sie es wie ein Zugangsdatum, denn es enthält meist einen privaten Schlüssel oder gleichwertiges Material, und bewahren Sie es dort auf, wo Ihre übrigen Geheimnisse liegen. Ein Profil im Download-Ordner ist ein Schlüssel auf dem Schreibtisch.

Was zu prüfen ist, wenn sie oben ist, aber nicht funktioniert

Mit oben stehender Schnittstelle und einem Client, der Erfolg meldet, arbeiten Sie nach außen: Wählt die Routentabelle den Tunnel für das Ziel, antwortet der Resolver für den privaten Namen, und hat die Gegenseite einen Rückweg. Jedes hat einen eigenen Befehl und einen eigenen Zuständigen.

nmcli connection show --active
nmcli device status
wg show

Die nmcli-Referenz dokumentiert die Status- und Verbindungsbefehle, falls Sie den vollen Satz brauchen. Wichtig ist hier die Unterscheidung zwischen einem aktiven Profil und einem Gerät, das Verkehr trägt, denn beide können sich widersprechen.

Verbinden Sie sich einmal über denselben Verwalter neu, bevor Sie die Einrichtung als fertig bezeichnen, und prüfen Sie, ob DNS nach einer Trennung noch funktioniert. Eine Konfiguration, die nur bis zur ersten Netzwerkänderung funktioniert, ist nicht fertig, sie funktioniert nur im Moment.

Ähnliche Artikel