Dlaczego traceroute wyświetla wiele adresów IP dla tego samego przeskoku?


14

Oto ścieżka trasy z mojego domu do sina.com.cn.

 traceroute -n   sina.com.cn
traceroute to sina.com.cn (202.108.33.60), 30 hops max, 60 byte packets
 1  192.168.31.1  0.476 ms  0.587 ms  0.695 ms
 2  140.0.5.1  2.557 ms  2.699 ms  3.065 ms
 3  221.11.155.65  4.501 ms * 221.11.165.9  5.045 ms
 4  * 221.11.156.18  26.480 ms 221.11.165.233  22.950 ms
 5  219.158.9.97  14.176 ms * 219.158.19.149  21.472 ms
 6  219.158.9.97  18.142 ms 219.158.8.81  44.856 ms  52.539 ms
 7  124.65.194.190  53.162 ms 219.158.8.81  50.614 ms 124.65.194.190  47.266 ms
 8  124.65.194.190  50.760 ms 61.148.143.26  49.351 ms  53.515 ms
 9  210.74.176.138  43.056 ms  43.286 ms 61.148.143.26  53.712 ms
10  202.108.33.60  46.385 ms 210.74.176.138  42.896 ms  46.931 ms

192.168.31.1 to mój domowy router.
140.0.5.1 to mój publiczny adres IP dostarczony przez dostawcę usług internetowych.

curl  ifconfig.me
140.0.5.1 

W trzeciej linii jest napisane

3  221.11.155.65  4.501 ms * 221.11.165.9  5.045 ms

Dlaczego są dwa adresy IP 221.11.155.65 i 221.11.165? Co to znaczy?

Czy pakiet przeskakuje z 140.0.5.1 do 221.11.155.65, a następnie przeskakuje z 221.11.155.65 do 221.11.165?


Jedno wyjaśnienie. Jeśli dostawca usług internetowych podał ci adres IP, nie powinien pojawiać się w uruchomionych poleceniach traceroute. A jeśli wykonasz śledzenie adresu IP, pojawi się on jako przeskakiwanie 1. Bardziej prawdopodobne jest, że nie masz żadnego adresu IP i 140.0.5.1jest to rodzaj CGN, który zachowuje się w nieco nietypowy sposób.
kasperd

Odpowiedzi:


4

Narzędzie traceroute używa pól opcji, gdy wysyła pakiety protokołu kontroli Internetu (icmp). Każda brama lub punkt routingu w sieci odczytuje pakiety na jednym interfejsie, decyduje, dokąd powinny jechać, i zapisuje je na innym interfejsie. Interfejs ten jest prawdopodobnie bliżej miejsca docelowego. Podczas gdy router przesyła pakiet, modyfikuje również nagłówek pakietu. Zmniejsza „czas życia” lub pole liczby przeskoków o jeden. Każda brama na ścieżce pakietu w kierunku miejsca docelowego zmniejsza to pole.

Kiedy pole liczby przeskoków spadnie do zera, wiele routerów odeśle komunikat icmp informujący, gdzie pakiet został upuszczony. Aby dowiedzieć się, który adres IP znajduje się w określonej odległości, traceroute wyśle ​​pakiety z opcjami czasu do życia i odpowie mi, gdy upłynie limit czasu. wiadomości z liczbą przeskoków rozpoczynającą się od 1 i rosnącą w górę zwrócą adres IP coraz bardziej odległych routerów. Ponieważ traceroute robi to wiele razy, wrócisz (jeśli masz bogato połączoną sieć, tak jak Internet), wiele odpowiedzi w niektórych przypadkach. może się zdarzyć, że dana Brama odpowie w różnych ilościach, ponieważ droga do tej Bramy przebiegała przez różne przeskoki.


11

Co traceroutedaje ci tutaj informację, że masz co najmniej 2 trasy do celu, zaczynając od routera:

           IP adresses                 Internet operator

           140.0.5.1                   Firstmedia - Indonesia
             /    \
            /      \
221.11.155.65      221.11.165.9        China Unicom - China

Jest to normalna sytuacja dla ogromnego operatora Internetu: posiadanie wielu tras, aby oprzeć się zwykłym incydentom w Internecie.

-aOpcja traceroutemoże pomóc zidentyfikować, do którego operator każdy adres IP należy.

Oto przykład większego drzewa tras, które można pokonać nawet z telefonu komórkowego za pomocą narzędzia sieciowego, takiego jak serwer http://ping.eu/traceroute/ : traceroute do 140.0.5.1


Brak opcji dla mojego traceroute w debian9.
złomowanie

traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate, ...] [-i device] [-m max_ttl] [-p port] [-s src_addr] [-q nqueries] [-N squeries] [ -t tos] [-l etykieta przepływu] [-w czasy oczekiwania] [-z sendwait] [-UL] [-D] [-P proto] [--sport = port] [-M metoda] [-O mod_options] [ --mtu] [--back] host [packet_len]
scrapy

Korzystałem z FreeBSD tutaj.
dan

8

Z traceroute(8)instrukcji na OpenBSD:

-q Wysyłane są trzy sondy (dokładną liczbę można zmienić za pomocą opcji) i drukowana jest linia pokazująca limit TTL lub przeskoku, adres bramki i czas podróży w obie strony dla każdej sondy. Jeśli odpowiedzi sondy pochodzą z różnych bram, wydrukowany zostanie adres każdego systemu odpowiadającego.

Podręcznik Linuksa będzie miał podobne sformułowanie.

Wiele adresów IP, które widzisz, są bramami reagującymi na poszczególne sondy przy określonych limitach przeskoków.

W twoim przypadku trzy sondy dały odpowiedzi, które przy limicie przeskoku 3 wróciły do ​​ciebie z bram o 221.11.155.65 i o 221.11.165.9.

Odpowiedź brzmi: nie, pakiet nie przeskakuje między dwoma hostami wymienionymi w tej linii, wysyłane są trzy sondy i podążają dwiema różnymi trasami od 140.0.5.1.


1
@RuiFRibeiro Wyjaśniłem swoją odpowiedź, aby odpowiedzieć na jednoznacznie zadane pytanie.
Kusalananda

Rzeczywiście, potwierdziłem, przynajmniej w Debianie traceroute ma takie samo brzmienie.
Rui F Ribeiro
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.