logo

Polecenie śledzenia trasy w systemie Linux

Wprowadzenie do traceroute’a

Polecenie traceroute w systemie Linux to narzędzie do rozwiązywania problemów z siecią, które pomaga nam określić liczbę przeskoków i pakietów podróżujących ścieżką wymaganą do dotarcia do miejsca docelowego. Służy do wyświetlania sposobu przesyłania danych z komputera lokalnego do komputera zdalnego. Ładowanie strony internetowej jest jednym z typowych przykładów śledzenia trasy. Ładowanie strony internetowej powoduje przesyłanie danych przez sieć i routery. Traceroute może wyświetlać trasy, adresy IP i nazwy hostów routerów w sieci. Może być przydatny do diagnozowania problemów z siecią.

W informatyce polecenia Tracert i Traroute to polecenia służące do diagnostyki sieci komputerowej, służące do wyświetlania możliwych tras i pomiaru opóźnień w przesyłaniu pakietów w sieci IP. Historia trasy jest rejestrowana jako czas podróży pakietu w obie strony od wszystkich kolejnych hostów na trasie; średnia suma czasu w każdym przeskoku to całkowity czas spędzony na utworzeniu połączenia.

Polecenie traceroute jest kontynuowane, chyba że każdy wysłany pakiet zostanie utracony więcej niż dwukrotnie; połączenie zostało utracone i nie można ocenić ścieżki. Z drugiej strony polecenie ping mierzy tylko czas ostatniej podróży w obie strony przez punkt docelowy. Czasami narzędzie ma podobną nazwę, tracert6 i traceroute6, dla protokołu IPv6.

Składnia:

 traceroute [OPTION...] HOST 

Opcje:

Polecenie traceroute obsługuje następujące opcje wiersza poleceń:

-f, --first-hop=NUM: Służy do ustawiania początkowej odległości przeskoku.

-g, --gateways=BRAMY: Służy do wyświetlania listy bram dla luźnego routingu źródłowego.

-I, --icmp: Określono użycie ICMP ECHO jako sondy.

-m, --max-hop=LICZBA: Służy do ustawiania maksymalnej liczby przeskoków, wartość domyślna to 64.

-M, --type=METODA: Określa METODĘ (icmp lub udp) dla operacji traceroute, metodą domyślną jest udp.

-p, --port=PORT: Zdefiniowano użycie portu docelowego PORT, domyślny PORT to 33434.

-q, --tries=LICZBA: Służy do przekazywania NUM pakietów sondujących na przeskok, wartość domyślna to 3.

--resolve-hostnames: Służy do rozwiązywania nazw hostów.

-t, --tos=LICZBA: Służy do ustawienia typu usługi (TOS) na NUM.

-w, --wait=NUM: Służy do oczekiwania w sekundach na odpowiedź, wartość domyślna to 3.

-?, --pomoc: Służy do wyświetlania podręcznika pomocy zawierającego krótki opis obsługiwanych opcji wiersza poleceń i sposobu ich użycia.

--stosowanie: Wyświetla krótki komunikat dotyczący użycia.

-V, --wersja: Służy do wyświetlania informacji o wersji trasy traceroute.

Rzućmy okiem na szybki indeks tematu:

  • Zainstaluj polecenie traceroute
  • Jak to działa?
  • Śledź trasę za pomocą protokołu IPv6
  • Śledź trasę za pomocą protokołu IPv4
  • Wyłącz mapowanie adresu IP i nazwy hosta
  • Ustaw liczbę zapytań na przeskok
  • Ustaw czas oczekiwania na odpowiedź
  • Określ interfejs, który ma być używany
  • Ustaw początkową wartość TTL
  • Ustaw maksymalną liczbę przeskoków
  • Otrzymywać pomoc

Implementacje traceroute

Polecenie traceroute jest dostępne w kilku nowoczesnych systemach operacyjnych. W systemach uniksowych, takich jak Linux, macOS i FreeBSD, jest on dostępny jako narzędzie wiersza poleceń. Ponadto funkcja traceroute jest dostępna graficznie w pakiecie Network Utilities w systemie macOS; te narzędzia są przestarzałe od czasu opublikowania systemu macOS Big Sur.

ReactOS i Microsoft Windows oferują program o nazwie Tracert, który implementuje podobną funkcję śledzenia trasy. Ponadto systemy operacyjne oparte na systemie Windows NT oferują PathPing, który może łączyć funkcjonalność polecenia ping z funkcją Tracert. Wersja ReactOS została zintegrowana przez firmę Get Murphy i jest objęta licencją GPL.

Domyślnie traceroute wysyła kolejność pakietów UDP (User Datagram Protocol) w systemach operacyjnych typu Unix, z numerami docelowymi portów w zakresie od 33434 do 33534. Implementacje traceroute dostarczane z systemami macOS, DragonFly BSD, OpenBSD, NetBSD, FreeBSD i Linux mają możliwość wykorzystania pakietów ICMP Echo Request, takich jak TCP i UDP, przy użyciu pakietów ICMP lub TCP SYN. Domyślnie program Tracert przesyła pakiety ICMP Echo Request w systemie Windows zamiast transferów pakietów UDP metodą Traceroute.

Użycie traceroute’a

Większość implementacji ma przynajmniej kilka opcji definiujących liczbę zapytań do przesłania na przeskok, czas oczekiwania na odpowiedź, limit przeskoków i używany port. Jeśli nie wywołamy polecenia traceroute z określonymi opcjami, wyświetli się lista dostępnych opcji, natomiast polecenie man traciroute wyświetli więcej szczegółów, takich jak flagi błędów.

Początki traceroute

Strona podręcznika programu traceroute stwierdza, że ​​rzeczywisty program traceroute został określony przez Van Jacobsona w 1987 r. na podstawie rekomendacji Steve'a Deeringa, wraz ze szczególnie przekonującymi poprawkami i zaleceniami C. Philipa Wooda, Kena Adelmana i Tima Seavera. Mike Muuss, autor programu ping, twierdzi, że trasa trasa została określona przy wsparciu protokołu ICMP jądra, który wcześniej zakodował w celu aktywacji surowych gniazd ICMP, podczas gdy początkowo określał program ping.

Ograniczenia traceroute

Ograniczenia traceroute są niesławne i należy je wziąć pod uwagę podczas korzystania z tego narzędzia. Na przykład trasa trasowana rozpoznaje ścieżki na poziomie interfejsu, ale nie na poziomie trasy. Inne ograniczenia występują, gdy routery nie odpowiadają na badanie lub gdy routery zawierają ograniczenie odpowiedzi ICMP.

Traceroute może reprezentować ścieżkę, która nie istnieje w przypadku równoważenia obciążenia ruchem. Aby zminimalizować ten problem, dostępna jest modyfikacja programu traceroute, znana jako Paris-traceroute, która zarządza identyfikatorem przepływu badania w taki sposób, aby ignorować równoważenie obciążenia.

Zainstaluj polecenie traceroute

Traceroute nie jest domyślnym narzędziem programu Linuksa system. Aby skorzystać z funkcji traceroute, musimy ją zainstalować ręcznie. Aby go zainstalować, wykonaj jedno z następujących poleceń:

 sudo apt install inetutils-traceroute sudo apt install traceroute 

Powyższe polecenia zainstalują narzędzie traceroute w naszym systemie. Po pomyślnej instalacji dane wyjściowe będą wyglądać następująco:

Trasa Linuksa

Jak to działa?

Aby prześledzić trasę podłączonego hosta sieciowego, podaj nazwę serwera lub adres IP, z którym chcesz się połączyć. Na przykład, aby prześledzić trasę serwera „javatpoint.com”, wykonaj poniższe polecenie:

 traceroute javatpoint.com 

Powyższe polecenie wyświetli przeskoki, pakiety i wiele innych informacji na temat danej trasy. Rozważ poniższe dane wyjściowe:

Trasa Linuksa

Z powyższych danych wyjściowych możemy zobaczyć kilka rzeczy. zrozumiemy każdą część wyniku:

  • Pierwsza linia wyświetla nazwę hosta i adres IP, z którym należy się połączyć, przeskoki, które będą wykonywane przez polecenie traceroute oraz rozmiar pakietów do wysłania.
  • Od drugiej linii każda linia wyświetla przeskok do miejsca docelowego. I nazwa hosta, po której następuje adres IP hosta, czas podróży w obie strony. Czas podróży w obie strony to suma czasu potrzebnego na wysłanie sygnału i czasu potrzebnego na udzielenie odpowiedzi hostowi.
  • Domyślnie wysyła trzy pakiety do każdego hosta, więc podane są trzy czasy odpowiedzi.
  • Symbol „*” oznacza utratę pakietu. Utrata pakietów ma miejsce z powodu awarii sieci, dużego ruchu w sieci lub przeciążenia zapory sieciowej. W przypadku dużej utraty pakietów, Traceroute wyświetli błąd jako „nie osiągnięto miejsca docelowego”.

Śledź trasę za pomocą protokołu IPv6

Opcja „6” służy do śledzenia trasy do sieci hosta przy użyciu protokołu Ipv6. Rozważ poniższe polecenie:

 traceroute6 google.com 

Powyższe polecenie prześledzi trasę do „google.com” przy użyciu protokołu Ipv6. Rozważ poniższe dane wyjściowe:

Trasa Linuksa

Śledź trasę za pomocą protokołu IPv4

Opcja „4” służy do śledzenia trasy do sieci hosta przy użyciu protokołu Ipv6. Rozważ poniższe polecenie:

 traceroute 4 google.com 

Powyższe polecenie prześledzi trasę do „google.com” przy użyciu protokołu Ipv6. Rozważ poniższe dane wyjściowe:

sieć i Internet
Trasa Linuksa

Wyłącz mapowanie adresu IP i nazwy hosta

Opcja „n” służy do wyłączania mapowania adresu IP i nazwy hosta. Rozważ poniższe polecenie:

 traceroute n google.com 

Powyższe polecenie wygeneruje następujące dane wyjściowe:

Trasa Linuksa

Ustaw liczbę zapytań na przeskok

Opcja „-q” służy do ustawiania liczby zapytań na przeskok. Rozważ poniższe polecenie:

 traceroute -q 2 google.com 

Powyższe polecenie wygeneruje następujące dane wyjściowe:

Trasa Linuksa

Ustaw czas oczekiwania na odpowiedź

Opcja „-w” służy do ustawiania czasu oczekiwania na odpowiedź w traceroute. Określi czas oczekiwania w sekundach na odpowiedź na sondę. Rozważ poniższe polecenie:

 traceroute -w 1 google.com 

W przypadku powyższego polecenia czas oczekiwania na odpowiedź wynosi 1 sekundę. Wygeneruje dane wyjściowe w następujący sposób:

Trasa Linuksa

Określ interfejs, który ma być używany

Opcja „i” służy do ustawienia interfejsu sieciowego, którego powinien używać program Traroute. Jeśli nie jest ustawiony, ustawi interfejs zgodnie z tablicą routingu. Rozważ poniższe polecenie:

 traceroute i wlp3s0b1 google.com 

Powyższe polecenie wygeneruje następujące dane wyjściowe:

Trasa Linuksa

Ustaw początkową wartość TTL

Możemy ustawić początkową wartość TTL (time to life) inną niż domyślna. Pominie niektóre przeskoki. Zwykle jest ustawiany na jeden, dwa, trzy itd. dla odpowiedniego zestawu testów. Tak więc, jeśli ustawimy go na siedem, pierwszy test podejmie próbę przeskoku siedem i pominie przeskoki z jednego do szóstego. Rozważ poniższe polecenie:

 traceroute -f 7 google.com 

Powyższe polecenie przejdzie bezpośrednio do przeskoku siódmego. Rozważ poniższe dane wyjściowe:

Trasa Linuksa

Ustaw maksymalną liczbę przeskoków

Opcja „-m” służy do ustawienia maksymalnej liczby przeskoków, jaką pakiet musi wykonać, aby dotrzeć do miejsca docelowego. Domyślna wartość maksymalnej liczby przeskoków to 30. Rozważ poniższe polecenie:

 traceroute -m 7 google.com 

Powyższe polecenie ustawi 7 maksymalnych przeskoków, aby pakiet dotarł do miejsca docelowego. Rozważ poniższe dane wyjściowe:

Trasa Linuksa

Otrzymywać pomoc

Aby wyświetlić instrukcję pomocy zawierającą podsumowanie użycia i obsługiwanych opcji, wykonaj poniższe polecenie:

 traceroute --help 

Powyższe polecenie wyświetli pomoc. Wygeneruje dane wyjściowe w następujący sposób:

Trasa Linuksa

Dostęp do stron podręcznika możemy również uzyskać, wykonując polecenie man w następujący sposób:

 man traceroute 

Powyższe polecenie wyświetli stronę podręcznika polecenia traceroute. Będzie to wyglądać następująco:

Trasa Linuksa

Przewiń stronę, aby przeczytać więcej i naciśnij klawisz „q”, aby wyjść ze strony podręcznika.