Was eine VPN-Routentabelle verrät und was nicht
Installierte Präfixe sind lokale Weiterleitungsanweisungen, kein Inventar entfernter Dienste. Lesen Sie die Tabelle für das, was sie belegt, und fragen Sie dann den Eigentümer.
Sie verbinden sich, führen eine Routenauflistung aus und sehen ein Subnetz, von dem Sie noch nie gehört haben, auf den Tunnel zeigen. Diese Zeile sagt eine Sache präzise und mehrere Dinge gar nicht. Sie hält fest, wie dieser Rechner Pakete an dieses Präfix weiterleitet, nichts darüber, welche Hosts dort existieren, und nichts darüber, was Ihr Konto erreichen darf. Sie richtig zu lesen dauert eine Minute; sie als Inventar zu lesen dauert viel länger, bis man es verlernt.
Lesen Sie die Tabelle als lokale Anweisungen
Eine Route ist eine Weiterleitungsanweisung des lokalen Kernels: für dieses Präfix diese Schnittstelle und diesen nächsten Hop verwenden. Die Präfixlänge entscheidet, wie genau die Anweisung ist, und die längste Übereinstimmung gewinnt. Nichts in dieser Regel erwähnt Berechtigungen, Dienstzustand oder entfernte Topologie.
Richtlinienregeln können eingreifen, bevor die Tabelle herangezogen wird, weshalb eine Route existieren und dennoch nicht die sein kann, die ein bestimmtes Paket nutzt. Lesen Sie die Regeln neben der Tabelle und fragen Sie dann den Kernel, welchen Pfad er für ein bestimmtes Ziel wählen würde. Die Antwort für eine Adresse ist mehr wert als eine Seite voller Präfixe, und sie ist die einzige Antwort, die Markierungen, Namespaces und Schnittstellenbindungen widerspiegelt, die der Client angewendet hat.
Ein breites Präfix ist kein Katalog
Ein durch den Tunnel geroutetes /16 bedeutet nicht sechzehntausend erreichbare Hosts, und eine Standardroute bedeutet noch weniger. Der Server entscheidet, wer antwortet, die Firewall entscheidet, was erlaubt ist, und das Konto entscheidet, was autorisiert ist.
Eine schmale Tabelle hat die umgekehrte Falle: ein fehlendes Präfix kann bedeuten, dass das Ziel über einen anderen Pfad erreichbar ist, oder einfach, dass es gar nicht geroutet wird. Diese beiden Fälle sehen identisch aus, bis Sie sie testen. Vergleichen Sie die Tabelle mit der Ressource, die Sie nutzen sollten, nicht mit Ihren Erwartungen daran, was ein VPN enthalten müsste.
Woher die Einträge kommen
Routen kommen von mindestens vier Stellen: aus der Konfigurationsdatei, vom Server, der beim Verbindungsaufbau eine Route pusht, von einem Netzwerkmanager, dem die Schnittstelle gehört, und von einer Person, die während eines Vorfalls einen Befehl eingibt. Jede hat eine andere Lebensdauer und einen anderen Eigentümer.
Die während eines Ausfalls eingetippte ist diejenige, die beim Neustart verschwindet und in niemandes Dokumentation auftaucht. Eine vom Server gepushte Route ändert sich, wenn sich der Server ändert, weshalb ein unerklärtes neues Präfix oft nach einem Gateway-Update auftaucht und nicht nach einer Client-Änderung. Das ip-route-Handbuch dokumentiert die Tabellen- und Feldsyntax, falls Sie die Flags lesen müssen.
Prüfen Sie die Route gegen den Dienstvertrag
Der nützliche Vergleich ist der zwischen der Tabelle und dem Dienst, der Ihnen versprochen wurde: Name, Adressbereich, Port und Eigentümer. Schreiben Sie diese vier neben das Präfix, und die Lücken werden sichtbar.
ip route show table all dev tun0
ip route get 10.20.5.9
ip rule show
Ist das Präfix vorhanden und der Dienst scheitert trotzdem, hat die Tabelle ihre Aufgabe erfüllt, und das Problem liegt woanders: Namensauflösung, eine Firewall auf der Gegenseite oder ein Konto ohne die richtige Gruppe. Fehlt das Präfix, lautet die Frage, wer es hätte liefern müssen, nicht, was man eingeben soll. Beide Antworten benennen ein Team, das man als Nächstes fragt, und das ist die einzige nützliche Ausgabe beim Lesen einer Routentabelle. Schreiben Sie diesen Namen auf, bevor Sie das Terminal schließen.
Halten Sie Vorher und Nachher jeder Änderung fest, mit Datum und Schnittstelle. Eine Routentabelle ist eine Momentaufnahme eines Augenblicks auf einem Rechner, und sie wird erst dann zum Beweis, wenn jemand notiert hat, wann sie aufgenommen wurde.