alix apu asa auswahl backup bewegung bom buecher c cfengine checklisten cisco computernetz debian dvcs ebtables email epub fairphone2 fedora firewall fossilscm grep hardware i2c iproute ipsec iptables ipv6 kalender kpartx latex laufen lighttpd linux lua lur monotone mount mysql openvpn openwrt pac paketfilter perl postfix programmieren proxy pxelinux python qubes-os rezension rfc rpm rs232 schreiben script seriell shell software stehen sysadmin syslog systemd troubleshoot ubuntu uci vcs virtualbox virtuell vpn wine xen

Warum geht Traceroute nicht durch ein VPN?

Traceroute ist ein Werkzeug, mit dem man schnell Informationen über ein größeres IP-Netzwerk bekommen kann. Insbesondere bei unterbrochenen Verbindungen kann es helfen, die betroffene Stelle einzugrenzen.

Kein Wunder, dass viele Administratoren Traceroute gern als eines der ersten Werkzeuge einsetzen, um Probleme mit Netzwerkverbindungen zu analysieren.

Geht die Verbindung über ein VPN, kommen ab dem VPN-Gateway oft nur noch Sterne (*) zurück und alle Anfragen laufen ins Leere. Allenfalls am Ende, nach einigen Zeilen mit Timeout kommt eine Meldung vom Zielrechner, wenn die Verbindung OK ist.

Einige Netzwerkadministratoren wenden sich dann vorschnell an den oder die Administratoren der VPN-Gateways mit der Behauptung das VPN wäre kaputt. Das kann sein, muss aber nicht.

Was passiert hier?

Topologie

Betrachten wir die Topologie, dann sehen wir, dass das VPN eine zentrale Stelle in dem Teil des Netzes einnimmt, den die Datagramme durchlaufen.

Haben wir über dem VPN einen Tunnel definiert und die beiden Netze links und rechts ohne Einschränkungen durch Firewalls verbunden, würde ein Traceroute in etwa ablaufen wie im folgenden Bild.

Traceroute unbehelligt

Oft ist es jedoch so, dass ein VPN Netze verschiedener organisatorischer Einheiten verbindet und Firewall-Regeln am VPN den Datenverkehr regulieren. Diese Firewall-Regeln berücksichtigen im Normalfall nicht die Adressen der Transfernetze, sondern nur die Adressen der Endknoten, die miteinander kommunizieren dürfen. Somit werden alle ICMP-Nachrichten der Router hinter dem VPN unterdrückt und Traceroute zeigt Timeouts an.

Bei einem policy-based IPsec-VPN, bei dem kein Layer-2-Overlay die Netze auf beiden Seiten verbindet, würde es auch nichts nützen, ICMP Type 11 generell zu erlauben. Hier gibt es meist keine Traffic-Selektoren für die Router, so dass das VPN-Gateway die ICMP-Nachrichten nicht weiterleiten kann.

Traceroute unvollständig

Was kann ich also machen?

Auf jeden Fall muss ich den Administrator des entfernten VPN-Gateways einbeziehen, weil er nachschauen kann, ob die Datagramme auf seiner Seite ankommen oder nicht. Genau kann er das mit einem Paket-Mitschnitt auf der unverschlüsselten Seite ermitteln.

Abhängig vom Ergebnis seiner Analyse muss der Fehler dann entweder wirklich im VPN oder im Netz dahinter gesucht werden.


C-Schnipsel: IP-Adressen einlesen und ausgeben
Posted 2018-05-11
Fehlersuche in IPsec VPN: Fragen
Posted 2018-04-26
Rezension: Threat Modeling: Designing for Security
Posted 2018-03-23
Ein Pure-Perl-Modul für PCAP-Dateien
Posted 2018-02-25
Im Trüben fischen in den ASA Logs
Posted 2018-01-22
Half-managed IPsec-VPN ist wie ...
Posted 2017-12-13
Kalender 2018
Posted 2017-12-08
Die serielle Schnittstelle bei Linux
Posted 2017-11-07
Mit pacparser die Proxy-Konfiguration testen
Posted 2017-10-06