Które polecenie jest stosowane w unixowych systemach operacyjnych w celu określenia trasy do hosta docelowego w sieci Internet?
Polecenie traceroute jest właściwe, bo w systemach unixowych, czyli np. Linux, BSD czy macOS, służy do sprawdzania trasy pakietów do hosta docelowego. Narzędzie działa przez stopniowe zwiększanie wartości TTL w nagłówku IP. Każdy router po drodze zmniejsza TTL, a gdy wartość spadnie do zera, odsyła komunikat ICMP Time Exceeded. Dzięki temu traceroute potrafi pokazać kolejne przeskoki, czyli routery pośredniczące między Twoim komputerem a serwerem. W praktyce wpisuje się np. traceroute wp.pl albo traceroute 8.8.8.8, żeby zobaczyć, gdzie pojawia się opóźnienie albo gdzie ruch się urywa. W unixach klasyczny traceroute często korzysta z pakietów UDP na wysokie porty, choć można używać też ICMP, np. opcją -I. Moim zdaniem to jedno z podstawowych narzędzi diagnostyki sieci, zaraz obok ping i ip route. Dobra praktyka jest taka, żeby wynik interpretować ostrożnie: gwiazdki nie zawsze oznaczają awarię, czasem router albo zapora po prostu nie odpowiada na ICMP. Przy IPv6 spotyka się traceroute -6 albo traceroute6, zależnie od systemu.
W tym pytaniu łatwo pomylić narzędzia, bo wszystkie kojarzą się jakoś z siecią, ale nie każde służy do określania trasy do hosta w unixowym systemie operacyjnym. windump jest narzędziem do przechwytywania i analizy pakietów, podobnym w idei do tcpdump, częściej kojarzonym ze środowiskiem Windows. Przydaje się, gdy chcemy zobaczyć ramki i pakiety, porty, adresy źródłowe, docelowe albo konkretne protokoły, ale samo z siebie nie wyznacza kolejnych routerów na trasie do serwera. tracert brzmi bardzo podobnie do traceroute i faktycznie pełni podobną funkcję, jednak jest typową komendą systemu Windows. W pytaniu jest wyraźnie mowa o systemach unixowych, więc najlepszą odpowiedzią jest traceroute, a nie jego windowsowy odpowiednik. ping też bywa mylący, bo pozwala sprawdzić, czy host odpowiada i jaki jest przybliżony czas RTT, ale nie pokazuje pełnej ścieżki przez sieć. Typowy błąd polega na tym, że ktoś widzi narzędzie diagnostyczne i zakłada, że każde z nich bada trasę. A to nie tak działa. ping odpowiada głównie na pytanie czy jest łączność, windump pomaga analizować ruch, tracert jest dla Windows, a traceroute w unixach pokazuje kolejne przeskoki z użyciem mechanizmu TTL i komunikatów ICMP. W administracji sieciowej to rozróżnienie jest ważne, bo od wyboru narzędzia zależy, czy diagnoza będzie szybka i sensowna, czy trochę po omacku.