Tag Archives: tracerout

VPN-Probleme aufgrund teilweisem Leitungsausfall im Backbone des Providers

Konfuzius spricht: “Nicht immer ist die Firewall des Kunden schuld, wenn ein VPN nicht (mehr) funktioniert und der Kunde sagt, er habe nichts geändert. Das kann auch wirklich mal den Tatsachen entsprechen.” 🙂

Die hier erlebte Ausgangs-Situation für den Support Call war äußerst seltsam: Der Internetanschluss funktioniert, nur die Verbindung zwischen zwei BOVPN-Standorten zeigte extrem unübliche Verhaltensweisen – Kommunikation auf einer IP eines Standorts funktionierte, eine weitere IP funktionierte nicht, ICMP Pakete kamen in eine Richtung an, in die andere nicht, aber dann auch wieder abhängig von der Ziel-IP.

Ist-Zustand: VPN zwischen zwei Standorten funktioniert nicht:

  • BOVPN wird aufgebaut.
  • Daten fließen aber nur in eine Richtung (received-packets auf der anderen Seite: 0, zu sehen im Firebox System Manager bei Aufblättern des VPNs).
  • Ping von Standort 1 zu Standort 2 geht nicht.
  • Ping von Standort 2 zu Standort 1 geht nicht – tcpdump zeigt aber, dass icmp request ankommt und icmp reply gesendet wird.
  • Ping von Standort 2 zu Standort 1 sekundäre IP geht
  • Ping von Standort 1 sekundäre IP zu Standort 2 geht nicht
  • Beide Standorte können problemlos im Internet arbeiten, empfangen E-Mail und können von einem dritten Standort per WatchGuard System Manager administriert werden.
  • WSM nur eben nicht vom jeweiligen anderen Standort aus.
  • Teamviewer-Sitzungen sind stabil.

Nach langer Suche und mehreren Telefonkonferenzen mit dem Internet Provider stellt sich heraus:

  • Eine Strecke zwischen zwei Routern im Backbone des Providers hat zwei 10G Interfaces zum nächsten Router
  • Diese sind mittels Link Aggregation zusammengeschaltet (also 1 logische Leitung, 2 physikalische Strecken)
  • Aufgrund dessen wird über die Pakete offenbar über (src-dest-type-port) ein Hash zusammengebaut, anhand dessen bestimmt wird, ob das Paket über die eine oder die andere physikalische Leitung geht.
  • Demzufolge geht Ping mal oder mal nicht (abhängig von der Ziel IP-Adresse), ein traceroute geht mal und mal nicht, und VPN baut sich auf oder auch nicht (udp/tcp) und/oder kann in eine Richtung keine Daten senden, empfängt aber aus der anderen Richtung, (weil diese Strecke mit Typ IPSec und den jeweiligen Ziel-IPs mal in die eine Richtung auf der richtigen und in die andere Richtung auf der falschen Leitung landet).

Nach Abschalten des 10G-Interfaces der defekten Strecke war sofort Traffic auf dem VPN sichtbar und ping / traceroute verrichteten wieder völlig normal ihren Dienst.
Trotz der anfänglichen Behauptung des Providers, es liege an der Firewall des Kunden, konnte gezeigt werden, dass die WatchGuard unschuldig war 🙂

Wie findet man so etwas?

  • Binden aller verfügbaren externen IPs als Secondary IP
  • Prüfen, welche IPs auf Ping antworten
  • Pingen aller Router im Traceroute
  • Pingen der Zwischeninterfaces aus dem Traceroute (Router Eingangs-IP, Router Ausgangs-IP aus dem Transfernetz, Auslesen/Zuordnen per traceroutes in beide Richtungen)
  • Unabdingbar: ein technisch kompetenter Ansprechpartner auf Seiten des Providers 🙂
  • Die richtige Eingebung zum richtigen Zeitpunkt beim richtigen Router nach Link Aggregation zu fragen 🙂