Jak diagnozować problemy z siecią w systemie Linux za pomocą Traceroute

Jak diagnozować problemy z siecią w systemie Linux za pomocą Traceroute
Polecane rozwiązanie Traceroute Linux

Traceroute to proste narzędzie sieciowe, które może śledzić trasę pakietu internetowego od źródła do hosta docelowego. W tym artykule dowiesz się, jak używać Traceroute do sprawdzania stanu sieci systemu Linux i diagnozowania pojawiających się problemów.

Jak działa Traceroute?

Traceroute działa poprzez wysyłanie pakietów UDP o krótkich długościach TTL do każdej bramy internetowej na ścieżce do zdalnego hosta. Te krótkie długości TTL zmuszają te bramy do zgłaszania odpowiedzi ICMP „TIME_EXCEEDED” wraz z adresem IP interfejsu.

Połączenie tych dwóch czynników umożliwia programowi traceroute utworzenie szczegółowej listy komputerów, przez które przejdzie pakiet podczas łączenia się z serwerem zewnętrznym. Na przykład uruchomienie trasy trasowanej do „google.com” w mojej sieci spowoduje wyświetlenie od 9 do 10 bram, zanim dotrze ona do serwerów Google.

Terminal pokazujący podstawową trasę śledzenia dla google.com.

Jakie problemy z siecią może rozwiązać Traceroute?

Traceroute to tylko narzędzie do badania sieci, które nie optymalizuje ani nie rozwiązuje żadnych nierozstrzygniętych problemów w sieci. Traceroute może jedynie opisywać zachowanie sieci i pakietów, które nimi podróżują.

Mimo to nadal jest ważnym narzędziem do diagnozowania potencjalnych problemów z siecią. Dobrym przykładem jest sytuacja, gdy brama lokalna nie przekazuje pakietu do następnego przeskoku. Traceroute może rozwiązać ten problem, podświetlając dowolny router w sieci szkieletowej, który nie wysyła odpowiedzi „TIME_EXCEEDED”.

Terminal pokazujący podstawową trasę śledzenia, w której bramy stale nie odpowiadają programowi.

Poza tym możesz także użyć funkcji Traroute do sprawdzenia problemów z opóźnieniami między hostami. Może to być pomocne, jeśli chcesz sprawdzić, czy Twoja sieć lokalna potrzebuje VPN, aby zapewnić stałe niskie opóźnienia podczas łączenia się ze zdalnym komputerem.

Korzystanie z Traceroute w systemie Linux

Otwórz nowy terminal i wpisz traceroute, a następnie adres komputera, z którym chcesz się połączyć. Może to być nazwa domeny lub adres IP. Na przykład:

Naciśnij Enter, aby rozpocząć mapowanie ścieżki do zdalnego hosta.

Terminal pokazujący podstawową trasę śledzenia do małego VPS.

Wysyłanie pakietów z niestandardowym TTL w Traceroute

Chociaż do podstawowego użytku wystarczy sam program traceroute, możesz także dostosować sposób działania programu, używając flag. Może to być pomocne, zwłaszcza jeśli przeprowadzasz selekcję sieci.

Jedną z najczęstszych poprawek w programie traceroute jest zmiana ilości pakietów wysyłanych do bramy. Aby to zrobić, użyj flagi -q, a następnie liczby pakietów, które chcesz wysłać na żądanie:

Możesz także użyć flagi -N, po której następuje „1”, aby wyraźnie wyłączyć jednoczesne żądania pakietów. Jest to przydatne, jeśli masz bramy ograniczające szybkość pakietów UDP z krótkim TTL.

Terminal pokazujący trasę trasowania z wyłączoną możliwością jednoczesnego przesyłania pakietów.

Na koniec możesz także zmodyfikować domyślną wartość TTL dla traceroute. Aby to zrobić, dodaj flagę -f, a po niej żądany czas TTL dla pierwszego pakietu sondującego.

Terminal pokazujący trasę trasowania, na której program pomija dwie pierwsze bramy.

Zmiana protokołu Traceroute w systemie Linux

Domyślnie traceroute w systemie Linux używa protokołu UDP do wysyłania pakietów sondujących do bram sieciowych. Może to stanowić problem, jeśli sondujesz bramę, która aktywnie blokuje pakiety traceroute.

Aby rozwiązać ten problem, możesz użyć flagi -T do uruchomienia programu Traceroute przy użyciu prostych pakietów TCP SYN.

Terminal pokazujący trasę trasowania, w której program używa pakietu TCP SYN zamiast UDP.

Z drugiej strony możesz także wymusić na Traroute użycie pakietu ICMP ECHO, jeśli brama docelowa ogranicza tylko UDP:

Traceroute obsługuje również niestandardowe interfejsy sieciowe. W tym miejscu traceroute użyje innej karty sieciowej w twoim komputerze do sprawdzenia ścieżki pakietu.

Aby to zrobić, uruchom program z flagą -i, po której następuje nazwa urządzenia Twojego interfejsu.

Poza tym możesz użyć flagi -p do określenia początkowego numeru portu, którego program Traroute będzie używał do sondowania UDP:

Na koniec flaga -p również zmienia swoje zachowanie w zależności od używanego protokołu. Parowanie z -I ustawi wartość -p jako początkowy numer sekwencyjny ICMP zamiast portu docelowego.

Terminal pokazujący trasę trasowania przy użyciu ICMP ECHO z niestandardowym numerem sekwencyjnym ICMP.

Nauka korzystania z funkcji Traroute to dopiero pierwszy krok w zrozumieniu, w jaki sposób komputery komunikują się ze sobą w sieci. Dowiedz się więcej o sieciach komputerowych, analizując zawartość pakietu TCP za pomocą narzędzia tcpdump.

Tymczasem możesz także dowiedzieć się więcej o wyższych warstwach OSI, takich jak DNS, używając narzędzia dig w systemie Linux. a>

Wszystkie zmiany i zrzuty ekranu wykonał Ramces Red.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *