Polecenie tracert (albo traceroute na systemach Linux) to jedno z podstawowych narzędzi diagnostycznych w sieciach komputerowych. Pozwala ono na śledzenie trasy, jaką pakiet IP pokonuje od komputera źródłowego do wskazanego hosta docelowego. To bardzo przydatne, gdy próbujesz zdiagnozować, gdzie na trasie pojawiają się opóźnienia czy utraty pakietów. Z technicznego punktu widzenia tracert wykorzystuje pole TTL (Time To Live) w nagłówku pakietu IP. Każdy kolejny pakiet wysyłany przez tracert ma zwiększany TTL, co powoduje, że po drodze routery odsyłają pakiety ICMP „Time Exceeded”, a my widzimy każdy kolejny przeskok (hop). To taka swoista mapa przejścia pakietu przez wszystkie routery pośrednie. Moim zdaniem umiejętność korzystania z tracert to absolutna podstawa dla każdego administratora czy nawet zwykłego technika sieciowego. W praktyce często przydaje się, gdy ktoś mówi, że 'internet nie działa' – szybko można sprawdzić, na którym etapie coś się psuje, czy problem jest lokalny czy globalny. W wielu firmach, zwłaszcza tych z rozproszoną infrastrukturą, codziennie korzysta się z takich narzędzi, żeby wykryć błędy routingu albo nieprawidłową konfigurację routerów. Dla ciekawych: w standardzie IPv6 polecenie funkcjonuje analogicznie, chociaż czasem są drobne różnice w obsłudze ICMPv6. Z mojego doświadczenia – niejedną zagadkową awarię udało mi się wytropić właśnie z pomocą tracert. Warto pamiętać, że nie wszystkie routery odpowiadają na te pakiety – czasem widać gwiazdki, ale to już inna historia związana z politykami bezpieczeństwa.
Wielu osobom wydaje się, że skoro polecenia takie jak ping, ifconfig czy ipconfig są często używane w diagnozowaniu sieci, to automatycznie pozwalają na śledzenie trasy pakietu. Ale to jednak nie do końca tak działa. Ping jest podstawowym narzędziem do testowania osiągalności hosta w sieci. Wysyła proste pakiety ICMP Echo Request i sprawdza, czy otrzyma odpowiedź – czyli czy dany adres jest aktywny i jak szybko odpowiada. Jednak nie pokazuje absolutnie żadnych informacji o trasie, przez które przechodzą pakiety. To takie narzędzie do sprawdzenia 'czy tam coś żyje', a nie 'jak tam dojść'. Z kolei ifconfig oraz ipconfig są narzędziami konfiguracyjnymi – służą do wyświetlania i ustawiania parametrów interfejsów sieciowych, adresów IP, masek sieciowych czy bram domyślnych. Moim zdaniem częsty błąd polega na tym, że myli się narzędzia do konfiguracji i podstawowej diagnostyki z narzędziem typowo trasującym. ifconfig jest obecnie coraz rzadziej używany na rzecz polecenia ip, głównie na Linuksie, natomiast ipconfig używany jest w Windowsie i nie daje żadnych informacji o przebiegu pakietów przez kolejne routery w sieci. W praktyce nie da się za ich pomocą stwierdzić, gdzie na trasie pojawia się opóźnienie lub awaria – do tego służy właśnie tracert albo traceroute. Typowy błąd myślowy polega na przekonaniu, że każde narzędzie mające coś wspólnego z siecią umożliwia pełny wgląd w zachowanie pakietów. W rzeczywistości odpowiedni dobór narzędzia to podstawa skutecznej diagnostyki sieciowej – warto znać różnice w ich zastosowaniu i wyniki, które zwracają. Z mojego doświadczenia wynika, że błędne użycie takich narzędzi prowadzi do jeszcze większego zamieszania, bo nie daje odpowiedzi na właściwe pytania. Dlatego warto wiedzieć, do czego służy każde z tych poleceń – efektywność pracy w IT bardzo na tym zyskuje.