Wenn der Datenverkehr nicht blockiert ist, traceroute
endet er normalerweise mit der Ziel-IP als letztem Hop. (In diesem Fall 10.1.1.10)
Normal traceroute
wäre so.
user@linux:~$ traceroute 10.1.1.10
traceroute to 10.1.1.10 (10.1.1.10), 30 hops max, 60 byte packets
1 10.2.8.2 (10.2.8.2) 0.572 ms 0.692 ms 0.837 ms
2 10.1.9.50 (10.1.9.50) 202.638 ms 10.1.9.78 (10.1.9.78) 202.547 ms 10.1.9.50 (10.1.9.50) 202.139 ms
3 10.1.4.9 (10.1.4.9) 202.508 ms 202.483 ms 10.1.4.13 (10.1.4.13) 204.149 ms
4 10.1.1.10 (10.1.1.10) 202.133 ms 202.100 ms 202.692 ms
user@linux:~$
Vor Kurzem ist mir ein Problem aufgefallen, bei dem die Ausgabe einen zusätzlichen Hop (10.1.1.9) enthielt traceroute
(siehe Hop 5).
Quell-IP-Adresse: 10.2.8.8
user@linux:~$ ifconfig | head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.2.8.8 netmask 255.255.255.0 broadcast 10.2.8.255
user@linux:~$
Ziel-IP-Adresse: 10.1.1.10
Zusätzlicher Hop: 10.1.1.9 ???
user@linux:~$ traceroute 10.1.1.10
traceroute to 10.1.1.10 (10.1.1.10), 30 hops max, 60 byte packets
1 10.2.8.2 (10.2.8.2) 0.572 ms 0.692 ms 0.837 ms
2 10.1.9.50 (10.1.9.50) 202.638 ms 10.1.9.78 (10.1.9.78) 202.547 ms 10.1.9.50 (10.1.9.50) 202.139 ms
3 10.1.4.9 (10.1.4.9) 202.508 ms 202.483 ms 10.1.4.13 (10.1.4.13) 204.149 ms
4 10.1.1.10 (10.1.1.10) 202.133 ms 202.100 ms 202.692 ms
5 10.1.1.9 (10.1.1.9) 6201.720 ms !H * *
user@linux:~$
Wenn Sie sich Hop 2 und 3 ansehen, gibt es außerdem zusätzliche IP-Adressen (10.1.9.78 und 10.1.9.50).
Warum ist das passiert? So etwas habe ich noch nie erlebt.
Lag dies an der Serverkonfiguration?
Antwort1
traceroute
funktioniert durch Senden von UDP- oder ICMP-Echopaketen mit sequenziell ansteigenden Time-to-Live-Feldern (TTL). TTL wird von jedem Router, der das Paket verarbeitet, um 1 dekrementiert.
Auf seine Anfragen werden zwei Arten von Antworten erwartet.
- Wenn TTL 0 erreicht, wenn ein Router es dekrementiert, antwortet er mit einer ICMP-Time-Exceeded-Meldung und leitet das Paket nicht weiter.
- Das endgültige Ziel antwortet mit einer ICMP-Port-Unreachable-Meldung (im UDP-Fall) oder einer ICMP-Echo-Response-Meldung (im ICMP-Fall).
Wenn es den zweiten Typ empfängt, weiß es, dass es das Ziel erreicht hat, und stoppt das Senden von Sonden mit höheren TTLs. Beachten Sie, dass esnichtTreffen Sie diese Entscheidung auf der Grundlage der Adresse, von der die Antwort kommt. Wenn von der Zieladresse eine „Time-Exceeded“-Meldung eingeht, wird der Wert weiter hochgezählt.
Ihre Ablaufverfolgung zeigt also an, dass ein Router mit Time-Exceeded und der Zieladresse als Quelle geantwortet hat. Dies bedeutet wahrscheinlich, dass es sich um einen Router handelt, der NAT ausführt, und dass die Zieladresse die öffentliche Adresse ist, die einer privaten Adresse dahinter entspricht.
Das Seltsame ist jedoch, dass die letzte Antwort von einemandersAdresse. Normalerweise würde man erwarten, dass die Antwort über den Router zurückgeht, sodass seine private IP in die öffentliche IP zurückübersetzt wird. In diesem Fall würden Sie zwei Zeilen mit 10.1.1.10 als Adresse sehen.
In diesem Fall muss der Pfad von 10.1.1.9 zur ursprünglichen Maschine offenbar nicht über den NAT-Router laufen, sodass die Adresse nicht übersetzt wird. Asymmetrisches Routing kann häufig zu anomalen traceroute
Ergebnissen führen. In diesem Fall befinden sich alle Ihre Maschinen im privaten Adressraum 10.0.0.0/8, sodass es nicht völlig überraschend ist, dass direkte Pfade verfügbar sind.
Antwort2
Ohne die Konfiguration des Routers zu kennen, gibt es keine Möglichkeit, sicher zu sein – ein wahrscheinlicher Grund ist jedoch Ziel-NAT, auch bekannt als Reverse-NAT, auch bekannt als Portweiterleitung, oder – in diesem Fall eher – ein exponierter Host.
Der Router 10.1.1.10 kann so konfiguriert werden, dass eralleszum Host 10.1.1.9 (= exponierter Host), einschließlich Anfragen von privaten IPs. Von einer öffentlichen IP aus würden Sie einen doppelten letzten Hop sehen, da das eigentliche Ziel 10.1.1.9 vom NAT-Router verborgen wird. In diesem Fall ist es möglich, dass nur die Anfrage DNATed ist und die Antwort einfach so weitergeleitet wird, wie sie ist.
Es ist auch möglich, dass sowohl 10.1.1.10 als auch 10.1.1.9 an anderer Stelle DNATed sind und letztere die Standardantwortadresse ist. Das würde den großen RTT-Anstieg erklären.
Antwort3
Achten Sie auf die Zeiten. Traceroute sendet Pakete, die Switches oder Router auffordern, der Quelle mit der Antwort „Ich verarbeite“ zu antworten. Aber diese Pakete können ihr Ziel, in diesem Beispiel Ihre Maschine, in unterschiedlicher Reihenfolge erreichen, abhängig von TTL- und Antwortzeitkonfigurationen, abhängig sowohl von der Konfiguration der Geräte dazwischen, den Routingtabellen als auch von der Topologie des Netzwerks.