Suchen

Netzwerkdiagnose mit Traceroute unter der Lupe – Teil 1 So löst "A-B Path" die Probleme von Traceroute

| Autor / Redakteur: Christian Köckert / Dipl.-Ing. (FH) Andreas Donner

Jeder Administrator kenn den Befehl Traceroute, um eine Verbindung von einem Quellrechner zu einem Zielrechner über das Internet zu testen. So aufgelistete Zwischen­sta­tio­nen und der Zeit- bzw. Paketverlust auf den Teilstrecken zwischen den einzelnen Knoten erlauben einen Rückschluss auf mögliche Problempunkte von Verbindungen. Doch ganz so einfach funktioniert Traceroute gar nicht!

Firma zum Thema

Der nackte Traceroute-Befehl erlaubt keine qualitativen Aussagen über eine Datenverbindung; erst eine "A-B Path"-Analyse gibt hier Aufschluss.
Der nackte Traceroute-Befehl erlaubt keine qualitativen Aussagen über eine Datenverbindung; erst eine "A-B Path"-Analyse gibt hier Aufschluss.
(Bild: NetBrain)

Bei der genauen Analyse des Datenverkehrs im Netzwerk spielt Traceroute eine wichtige Rolle. Das Programm ermittelt, welche Router und Internet-Knoten IP-Datenpakete zum Zielrechner transportieren. Dazu sendet Traceroute insgesamt drei Datenpakete an einen Zielrechner. Dabei wird die Variable Time to Live (TTL) mit einem Wert belegt und die Rückmeldung „TTL expired“ mitgesendet.

Erhält ein Internet-Knoten oder Router, der sich zwischen Quell- und Zielrechner befindet, dieses Datenpaket, dann subtrahiert er eins von diesem Wert und sendet den Request an den nächsten, auf dem Weg befindlichen Internet-Knoten oder Router weiter, bis der TTL-Wert Null erreicht. Ist Null erreicht, sendet er das Paket nicht an den nächsten möglichen Knotenpunkt weiter, sondern zusammen mit seiner eigenen IP-Adresse an den Quellrechner zurück.

Bildergalerie

Im ersten Traceroute-Paket nimmt TTL den Wert von Eins ein – subtrahiert ergibt der neue Wert folglich Null, sodass der erste Zwischenknoten seine IP-Adresse zurückmeldet. Daraus ergibt sich eine schrittweise Dokumentierung des Übermittlungsweges, da das erste Paket mit dem Wert Eins die IP-Adresse des ersten Schrittes, das zweite mit dem TTL-Wert von Zwei die zweite IP-Adresse zurückmeldet und so weiter.

Im Gegensatz zur landläufigen Meinung wird nicht immer ein ICMP-Testpaket (Internet Control Message Protocol) versendet. Zwar sieht Traceroute das ICMP-Protokoll vor und Windows-Rechner richten sich auch danach, jedoch versenden beispielsweise Unix-Rechner und Router für Traceroute UDP-Nachrichten (User Datagram Protocol) an temporär geöffnete Ports, die DNS-, SMTP- oder Webdienste nutzen.

Einbahnstraße

Diese Funktionsweise gibt zwar klar an, welche Stationen die Datenpakete auf ihrem Ziel passieren. Sie zeigt aber nicht auf, welche Pfade auf dem Weg retour genommen werden, denn abhängig vom Hashing-Algorithmus dürften hierfür jeweils verschiedene Wege in Frage kommen. So muss für die Dokumentation des Rückwegs ein Traceroute vom Zielrechner zum Quellrechner aus vorgenommen werden. Wenn es zu Performanceprobleme auf dem Übermittlungsweg kommt, ist sonst nicht immer klar, ob die Zeitverzögerung auf dem Hin- oder Rückweg stattfindet. Ein einfaches Traceroute bringt auf diese Weise daher nur wenig Informationsgewinn.

Ein Ausweg ist die Anwendung eines A-B Paths. Hier erfolgen die einzelnen Schritte der Betrachtung des Übertragungsweges von beiden Seiten aus gesehen vollautomatisch. Das gilt auch für die Zusammenführung der einzelnen gewonnenen Informationen, was den Zeitaufwand bei der Fehlersuche verringert.

Schnittstellen unbekannt

Ein weiteres Problem bei Traceroute ist, dass nur die zwei Informationen, Hostname/IP und die Verzögerung bekannt sind. Um einen Hop genauer zu untersuchen, muss man eine Telnet/SSH-Verbindung aufbauen. So kann man die Schnittstelle einer IP-Adresse in Erfahrung bringen. Traceroute gibt lediglich Hop-Informationen zurück. Zunächst fehlen daher wichtige Angaben zum eigentlichen Kommunikationspfad. Bei komplexeren Netzwerkinfrastrukturen können allerdings mehrere Wege von und zum einzelnen Netzwerkhop bestehen. Um diese herauszufinden, müssen zusätzliche, zuvor gesammelte Daten eines Traceroutes manuell hinzugezogen und verknüpft werden. Hier bietet A-B Path eine signifikante Erleichterung beziehungsweise Zeitersparnis, da es Informationen automatisch zuordnet.

Unnötig große Verzögerungen

Da Traceroute mitunter auf dem ICMP-Messaging beruht, kann hier manchmal eine Verzögerung zustande kommen, die dem tatsächlichen Traffic nicht entspricht. Grund dafür ist, dass ICMP den langsameren Weg über Geräte nutzt, anstelle des schnellen Weges, der speziell für die Weiterleitung von Daten durch einen Router vorhanden ist.

Die mangelnde Geschwindigkeit beim langsamen Weg lässt sich dadurch erklären, dass der Router den Paketinhalt hier verarbeitet und nicht einfach durchleitet. Bei neueren Routern ist die Performance durch aufwändige interne Mechanismen mitunter sogar noch schlechter. So priorisieren sie Protokoll-Updates gegenüber ICMP-Nachrichten. Jedoch verwenden die meisten Systeme UDP-Nachrichten und ie Erzeugung einer Traceroute-Rückmeldung „TTL expired“ hat eine niedrigere Priorität. Dadurch scheint es so, als hätten die Daten länger bis zum entsprechenden Hop gebraucht als dies tatsächlich der Fall war – es wurde lediglich die Rückmeldung verzögert abgesendet.

Falls also bei einem Traceroute nach einem Hop die darauffolgenden Werte schlechter sind, kann das auf eine verzögerte Verarbeitung bei einem beteiligten Router liegen. Nicht abbildbar wird der Pfad vollends, wenn ACL/Policy (Access Control List, Zugriffssteuerungsliste) die Nutzung von ICMP blockiert.

Eines der Probleme hierbei ist, dass sich Traceroute mittels Datenpaketen durch die Infrastruktur bewegt und so seine Informationen sammelt. Natürlich funktioniert das nur dann, wenn Traceroute gerade aktiv ist, also ausgeführt wird. Er verfolgt so denselben Weg wie die Datenpakete der Nutzer. Im Gegensatz zu ihnen, werden von Traceroute gelieferte Daten allerdings nicht ebenso priorisiert, was ein verfälschtes Bild nach sich zieht. Damit sind Ergebnisse, die aufgrund von Traceroute gewonnen wurden, bestenfalls eine Basis für Annahmen und lassen alleine noch keine fundierten Aussagen zu. Für letztere sind weitere Informationen, wie sie bspw. A-B Path liefert, nötig.

Keine konkrete Handlungsanweisung ableitbar

Wenn nun der Pfad zu einem bestimmten Ziel durch Traceroute bekannt ist, bedeutet das leider nicht, dass auch genauere Details zu einem oder mehreren Hops auf diesem Weg verfügbar sind. Bei Telnet/SSH-Verbindungen kommt der Nutzer nicht umhin, sich bei den Geräten explizit anzumelden. In der Traceroute-Antwort ist dagegen lediglich die IP-Adresse der Schnittstelle enthalten. Das hilft dem Nutzer allerdings nicht bei der Anmeldung am Gerät. Denn aus Sicherheitsgründen muss für eine Telnet/SSH-Verbindung die Management-IP-Adresse vorliegen. Daher kann Telnet für solche von Traceroute erkannten Schnittstellen versperrt sein. In diesem Fall müsste eine manuelle Abfrage erfolgen, um die zugehörige Management-Schnittstelle zu ermitteln, was ohne DNS-Auflösung kaum möglich ist. Außerdem ist im Fall eines akuten Ausfalls meist keine Zeit vorhanden um diese händischen Anpassungen vorzunehmen.

Auch hier bietet A-B Path eine Alternative. Mit seiner visualisierten Aufbereitung – ganz im Gegensatz zu der rein textbasierten Darstellung von Traceroute – erleichtert A-B Path die Erfassung und Interpretation der erhobenen Informationen. Netzwerk-Administratoren können durch diese grafische Auswertung viel Zeit einsparen, da der Pfad sozusagen auf einen Blick erkennbar ist. Hier finden sich im Gegensatz zu Traceroute auch sämtliche relevante Angaben, so auch die Management-IP.

Bildergalerie

Lückenhafte Pfad-Informationen

Viele Netzwerke nutzen ECMP- (Equal Cost Multi Path) und UCMP-Routen (Unequal Cost Multiple Path), jedoch erkennt Traceroute nur den Pfad, den die Testnachricht genutzt hat. Die meisten Traceroute-Implementierungen senden drei Testpakete mit unterschiedlichen UDP-Zielports. So können in einer ECMP-Umgebung für jeden Hop bis zu drei verschiedene IP-Adressen zurückgemeldet werden. Folglich können Netzwerk-Experten nur schwer nachvollziehen, welche Antwort zu welchem Pfad gehört.

Wieder ist die von Traceroute gelieferte Information also lückenhaft, da nur der in dem Moment tatsächlich genutzte Pfad abgebildet wird. Hingegen liefert A-B Path zusätzliche, für die Fehlerbehebung wertvolle Informationen. Letzterer zeigt nicht nur den genutzten Kommunikationspfad, sondern legt mehrere Informationen so übereinander, dass der Bezug verschiedener Einflussgrößen zueinander auf den ersten Blick ersichtlich wird.

Layer-2-Hops werden nicht dargestellt

Die Funktionsweise von Traceroute beinhaltet, dass der TTL-Wert eines IP-Pakets je Hop um eins reduziert wird, bei dem Wert Null erfolgt eine ICMP-Nachricht über den Ablauf der TTL. Jedoch erfolgt die Reduzierung des TTL-Werts um eins nur bei Layer-3-Geräten. Daher ist nicht ersichtlich, welcher Layer-2-Weg durchschritten wurde.

Da Rechenzentren oft einen Layer-2-Switch zum Aggregieren von Endstationen nutzen, beziehungsweise eine Layer-2-Verteilungsebene vor den Core-Routern platzieren, ist das Ergebnis intransparent. Eine manuelle L2-Pfadanalyse basiert auf MAC-Zuordnung und NDP-Informationen (Neighbor Discovery Protocol). Eine solche Analyse wäre daher nur dann hilfreich, wenn diese aktuell ist, um die MAC Ausgangsports ohne NDP mit der Dokumentation zu verfolgen.

Ferner sind weitere Schritte nötig – wie etwa das Bestimmen der abgehenden Trunks vom aktiven Gerät oder das manuelle Wiederholen dieser Prozesse, bis der erste Router erreicht ist. Das ist ein sehr zeitaufwändiges Unterfangen, welches die Fehlersuche erschwert, weil Layer-2-Informationen von Traceroute nicht zurückgemeldet werden. Auch für diesen Fall bietet sich A-B-Path als die bessere Variante an, denn hier werden auch Layer-2-Hops dargestellt und der Analyseprozess geht vollautomatisch vonstatten.

Über den Autor

Christian Köckert ist Technical Lead Pre Sales bei NetBrain.

(ID:46265988)