PORADNIKI

9 min. czytania

Co to jest Traceroute (Tracert) i do czego się przydaje?

Połączenie internetowe

Fot. Storyset

Czym jest Traceroute, czym się różni od Tracert i kiedy z nich korzystać? Warto wiedzieć, jak uruchomia się śledzenie trasy pakietów na różnych systemach. To działanie dostarczy Ci wielu przydatnych informacji.

Spis treści
Serwer

Traceroute wykorzystywany jest do śledzenia trasy pakietów przesyłanych między urządzeniami. Może go uruchomić każdy użytkownik, niezależnie od systemu, z którego korzysta. W ten sposób błyskawicznie otrzymasz i przeanalizujesz trasę od komputera źródłowego do docelowego serwera. Co istotne, pozwala to na obserwację „podróży” danych przez wszystkie punkty znajdujące się po drodze.

Wysyłane pakiety muszą pokonać drogę podzieloną na kilka etapów. Zanim dotrą do miejsca docelowego, przechodzą przez wiele urządzeń. Dzięki wykorzystaniu narzędzia Traceroute (Tracert) dowiesz się o wystąpieniu ewentualnych błędów w połączeniach. Zorientujesz się, że dane nie dotarły do adresu IP serwera docelowego. Szybko zobaczysz też, w którym miejscu doszło do zaistnienia niepożądanej sytuacji. Wiedza ta może przydać się do diagnozowania problemów i ich eliminacji.

Wykorzystanie Traceroute (Tracert) nie jest skomplikowane. Uruchomisz go bez większego problemu zarówno w systemach Windows, jak i Linux czy macOS. W łatwy sposób poznasz kompletną ścieżkę połączenia między swoim sprzętem a serwerem docelowym.

Co to jest Traceroute? Definicja

Traceroute to program umożliwiający śledzenie tras pakietów przesyłanych między urządzeniami podłączonymi do sieci. Przy jego użyciu możliwe jest obserwowanie drogi przebytej przez dane, np. od komputera do hosta docelowego. Sprzyja to rozwiązywaniu problemów z połączeniami, a działa we wszystkich uniksowych systemach operacyjnych. W przypadku Windowsa stworzony został niemalże identyczny program Tracert.

Traceroute jest szczególnie przydatny w dużych sieciach. Ułatwia znalezienie problemu, gdy pakiety mogą dotrzeć do miejsca docelowego na różne sposoby. Wykorzystywać go do śledzenia połączeń mogą natomiast wszyscy użytkownicy. Pozwalają na to zwykłe komputery i laptopy z systemami Linux czy macOS. Bliźniacze rozwiązanie ma także Windows, reagujący na komendę Tracert. Oba narzędzia działają na bardzo podobnej zasadzie. Identyczny jest także cel prowadzonych przez nie działań.

W pierwszej kolejności warto zrozumieć, że rozwiązanie to służy do diagnostyki. Pokaże Ci źródło danych oraz informacje o każdej kolejnej transmisji od jednego punktu do kolejnego. Otrzymasz ścieżkę prowadzącą aż do hosta docelowego. Uwzględnione na niej będą wszelkie ruchy przesyłanych pakietów. To przydatne, bo szybciej zauważysz, w którym miejscu łączność zawodzi. Może być Ci to potrzebne, gdy np.:

  • informacje nie docierają do docelowego serwera. Chcesz więc odkryć, w którym miejscu występują problemy z przekazaniem pakietu,
  • korzystasz z wielu routerów i urządzeń. Chcesz wiedzieć, przez które kierowana była dana informacja,
  • chcesz upewnić się, że pakiety są przesyłane poprawnie przez kolejne routery, na których obecności szczególnie Ci zależy (np. VPN).

Jak działa polecenie Traceroute?

Wysyłany pakiet ma za zadanie trafić do określonego miejsca w internecie. Niewskazane są jakiekolwiek opóźnienia i problemy, które mogłyby mu to uniemożliwić. Zadaniem narzędzia Tracert (Traceroute) jest mapowanie całej trasy. Następnie powinno przedstawić Ci komunikat na jej temat, zawierający wszystkie szczegóły. Do jego zrozumienia wskazane jest natomiast zapoznanie się z zasadą działania programu. Instrukcję zamknąć można w czterech krokach:

  • pierwszy wysyłany pakiet ma pole TTL o wartości 1. Przejście przez router na trasie zmniejsza tę liczbę o 1. Gdy pole wynosi 0, router odrzuca pakiet. Wtedy też komputer źródłowy otrzymuje komunikat ICMP (np. „Request Timed Out”, gdy upłynie limit czasu). Poznaje w ten sposób adres IP pierwszego „przystanku” na trasie;
  • kolejny pakiet wysyłany przez źródło już ma TTL wynoszące 2. Pierwszy router zmniejsza tę wartość do 1, a następny znów do zera. Drugi raz zostaje wystosowany komunikat, prezentujący tym razem pole numer dwa;
  • po dotarciu do każdego kolejnego routera dochodzi do tego samego zjawiska. Wysyłana wartość TTL z każdym punktem zwiększa się o jeden. Wytyczana jest w ten sposób dokładna „ścieżka”, jaką pokonuje pakiet;
  • po kilku cyklach informacje trafią do właściwego adresu IP. Tobie natomiast pokaże się komunikat „Trace Complete” lub podobny. Będziesz mieć też całą, kompletną trasę.

Jak to się dzieje, że po dotarciu do celu narzędzie kończy swój bieg? Dlaczego nie „biegnie” dalej? Zwykle odsyłany na końcu zostaje ICMP „Port Unreachable”. Program celowo wysyła pakiet UDP z bardzo wysokim numerem portu. Prawdopodobnie i tak nie zadziałają na nim żadne usługi. W miejscu docelowym więc żaden proces nie obsłuży tej informacji. Mapowanie trasy w ten sposób dobiegnie końca.

Warto podkreślić, że Traceroute mapuje każdy „Hop”. Tym słowem określa się przesył danych między jednym routerem a drugim. Co ta wiedza daje w praktyce? Otóż ostatecznie otrzymujesz nie tylko adres IP i nazwy „odwiedzanych” po drodze urządzeń. Zyskujesz wiedzę na temat czasu przesyłu pakietu w obie strony. Dzięki temu może udać Ci się wyśledzić np. miejsce zbyt długiego ładowania stron internetowych. To też pierwszy krok do wyjaśnienia przyczyny takiego stanu rzeczy.

Czym jest TTL?

Dla lepszego zrozumienia zasad działania opisywanego oprogramowania przyjrzyjmy się bliżej parametrowi TTL. Polecenie Tracert (w systemie Windows) i Traceroute (w pozostałych) w znacznej mierze na nim bazują. Otóż jest to rozwiązanie, dzięki któremu dane nie krążą między routerami w nieskończoność. Jego rolą jest zapobieganie zapętlaniu pakietów w sieci.

Gdy wartość parametru TTL spada do zera, pakiet nie jest przesyłany dalej. Narzędzie więc lokalizuje punkt, do którego powróci wraz z kolejnym wysyłanym pakietem. Tym razem natomiast będzie już miało wyższą wartość i pozwoli dotrzeć informacji o krok dalej. TTL ma też ustaloną wartość maksymalną, równą 225. Po przejściu tak wielu routerów pakiet zostanie zatrzymany. Uniemożliwi mu to dalsze, bezcelowe „krążenie” między punktami.

Czasem zdarza się, że parametr TTL nie zostanie obniżony. Choć zaistnienie takiego działania jest regułą, nie każde urządzenie jej dopełnia. Zwykle tego typu sytuacje nie są widoczne w wyświetlającym się użytkownikowi wyniku. W zdecydowanej większości przypadków wywołują je urządzenia filtrujące ruch, np. firewalle.

Polecenie Tracert w Windowsie

W przypadku systemu Windows zasada działania urządzenia do śledzenia tras pakietów jest bardzo podobna. Tracert również używa parametru TTL. Identycznie zwiększana jest jego wartość. „Odkrywa” się w ten sposób ścieżkę, którą podążają wysyłane informacje. W tym przypadku jednak zakończenie mapowania nie odbywa się przy pomocy pakietów UDP. W Windowsie wysyłane są komunikaty ICMP „Echo Request”. Gdy dotrze on do punktu docelowego, odpowiedź na niego to zawsze „Echo Reply”.

Działanie polecenia Tracert (Traceroute) w praktyce

Wiemy już, jak wygląda proces docierania do każdego kolejnego routera znajdującego się na drodze pakietu. Wyjaśniliśmy też szczegółowe zasady generowania ścieżki do hosta docelowego. Czas więc zapoznać się z praktycznymi zasadami korzystania z poleceń Tracert i Traceroute. Zarówno w systemie Windows, jak i MacOS czy Linux uruchamiane jest ono z poziomu wiersza poleceń. Na poniższym przykładzie zaprezentujemy jego obsługę w każdym z wymienionych środowisk.

Jak wydać polecenie Tracert na systemie Windows?

Wydanie polecenia Tracert w systemie Windows wymaga uruchomienia wiersza poleceń. Zrobić to możesz, klikając w lupkę i wpisując w puste pole „cmd„. Następnie wybierz odpowiednie narzędzie z listy i je uruchom.

cmd w Windows

Gdy wiersz poleceń się uruchomi, czas przejść do kroku drugiego. Jest nim wpisanie jednej z właściwych komend:

  • tracert nazwa_domeny_docelowej,
  • tracert adres_IP.
Polecenie tracert w Windows

Gdy zakończysz formułowanie polecenia Tracert, naciśnij Enter. Na ekranie powinny zacząć się pojawiać kolejno punkty pokazujące drogę, którą pokonuje Twój pakiet. Ostatecznie na ekranie powstanie kompletna ścieżka. Prowadzi ona do domeny docelowej lub adresu IP, który podasz w poleceniu. W naszym przypadku jest to DNS Google (8.8.8.8).

Polecenie tracert w Windows - wynik

Jak można zauważyć, docelowy adres IP w naszym przypadku został osiągnięty w 9. próbie. Oznacza to, że po drodze dane „odwiedziły” jeszcze osiem innych miejsc w sieci. Każdy pakiet był też trzykrotnie powtarzany. To zupełnie normalna procedura. Dlaczego zostało to skonstruowane w taki sposób? Celem tego jest uniknięcie sytuacji, gdy przesyłane informacje zostaną utracone, np. na skutek błędu sieci.

W każdym punkcie widoczne są czasy odpowiedzi w ms. Oznacza to, że wszystkie routery napotkane po drodze zareagowały. Jak wyglądałby zatem brak odpowiedzi? W takim przypadku zamiast cyfr lub liczb zobaczysz w tym miejscu tylko gwiazdkę.

Jak wydać polecenie Traceroute na systemie macOS

Polecenie Tracert w macOS znane jest jako Traceroute. Chcesz śledzić trasę pakietu w sieci, wysyłanego do hosta? Jeśli tak, to musisz najpierw uruchomić narzędzie Terminal. Możesz znaleźć je szybko przy użyciu Spotlighta. Uruchom go poprzez naciśnięcie lupki w prawym górnym rogu ekranu lub z pomocą kombinacji klawiszy cmd + spacja. W oknie, które się pojawi, wpisz „Terminal” i uruchom aplikację, która się pojawi.

Terminal - polecenie w macOS

Na ekranie pojawi się okno, w którym możesz wpisać komendę. Podobnie jak w przypadku Windowsa, do wyboru masz dwa rozwiązania:

  • traceroute nazwa_domeny_docelowej,
  • traceroute adres_IP.

Zatwierdzenie polecenia odbywa się poprzez naciśnięcie przycisku Enter. To powinno sprawić, że w oknie pojawi się cała ścieżka pakietu aż do celu wyszukiwania. Ponownie jest nim domena docelowa lub adres IP, który wstawisz do polecenia. Nasz cel wyszukiwania: DNS Google. Wygenerowana trasa wygląda bardzo podobnie do tej, którą zaprezentowaliśmy w przypadku systemu Windows.

Traceroute w macOS

W tym przypadku polecenia było wykonywane na innej maszynie i dotarcie pakietu do miejsca docelowego trwało o jedną pozycję krócej. Dane pojawiły się tam już przy ósmej próbie. Nie widnieją też w odpowiedzi gwiazdki, o których wspominaliśmy przy okazji opisu polecenia Tracert w Windowsie.

Jak wydać polecenie Traceroute na systemie Linux

Wydanie polecenia Traceroute w systemie Linux przebiega niemalże identycznie jak w MacOS. Wystarczy tylko, że skorzystasz z terminala, który masz na swoim komputerze. Aby uruchomić domyślne rozwiązanie, zwykle wystarczy nacisnąć kombinację klawiszy Ctrl + Alt + T. Następnie trzeba wpisać takie same polecenia, jak w przykładach powyżej, tj. jedno z dwóch:

  • traceroute nazwa_domeny_docelowej,
  • traceroute adres_IP.

Wynik powinien wyglądać bardzo podobnie do tego z MacOS. Identyczna też jest jego interpretacja.

Inne sposoby na diagnostykę sieci

Na śledzenie drogi, jaką pokonują wysyłane z Twojego komputera dane, pozwala nie tylko Traceroute. Diagnostykę sieci możesz przeprowadzić na kilka różnych sposobów. Równie czytelne wyniki całej ścieżki czy konfiguracje dotyczące interfejsów sieciowych znajdziesz też dzięki:

  • Ping,
  • IPconfig.

Ping

Ping to polecenie kojarzone przede wszystkim z grami online. W praktyce natomiast pozwala określić czas potrzebny do wysłania danych do innego miejsca w sieci i z powrotem. Dzięki niemu dowiesz się, jakie masz opóźnienia w transmisji danych. Wykorzystać go możesz także, by sprawdzić, czy między hostami w ogóle jest realizowane połączenie. W tym przypadku nie otrzymujesz obrazu kompletnej ścieżki. Możesz natomiast zorientować się, jaki jest czas jej przebycia w dwie strony. Instrukcja korzystania z tego rozwiązania wygląda podobnie jak w przypadku Traceroute. W wierszu poleceń jednak zamiast traceroute lub tracert wpisujesz ping.

IPconfig

IPconfig pozwala na zapoznanie się z konfiguracjami interfejsów sieciowych. Z jego pomocą szybko znajdziesz dane dotyczące adresów IPv4, IPv6, bramy domyślnej, maski podsieci i nie tylko. W tym przypadku w wierszu poleceń „traceroute”/„tracert” zamieniasz na ipconfig /all. Komenda ta działa w przypadku komputerów z systemem Windows. W przypadku MacOS użyć do tego można bliźniaczej ifconfig. Obie wersje doskonale sprawdzają się w przypadku diagnozowania problemów z połączeniem internetowym.