Analiza ruchu sieciowego w Linuksie z mtr
Narzędzie diagnostyczne mtr (My Traceroute) łączy w jednym programie funkcjonalność aplikacji traceroute i ping. Może zostać uruchomiony w wierszu poleceń jako program ncurses lub jako graficzny program GTK+. mtr opracowała holenderska firma BitWizard B.V.
Sposób funkcjonowania
Program uruchomiany jest w CLI z hostem jako parametrem. Jako host rozumiana jest nazwa danego hosta lub jego adres IP, do którego ma zostać skontrolowane połączenie:
mtr www.google.com
Po zamianie symbolicznej nazwy w przynależny adres IP (usługa DNS) mtr wysyła kilka ICMP echo requests (ping-ów) do tego adresu IP. Jest przy tym określane w pakiecie IP TTL (Time to live). Pierwszy ma TTL o wartości 1, następny request ma TTL o wartości 2 itd. Przez ograniczenie TTL pakiet IP jest porzucany już przy pierwszym, drugim itd. hop-ie (routerze). Każdy router odpowiada na to wiadomością ICMP Time-to-live exceeded. mtr otrzymuje od każdego routera taką wiadomość i wie dzięki temu, jaki router znajduje się na drodze do hosta.
TTL jest tak długo zwiększane, aż host zostanie osiągnięty. Wtedy mtr zaczyna od początku. Dzięki temu po pewnym czasie mtr może określić w ten sposób średnie wartości Best-Case/Worst-Case.
Instalacja
mtr znajduje się domyślnie w większości dystrybucji Linuksa. Może zostać zainstalowany poprzez odpowiedni manager pakietów pod następującą nazwą pakietu:
- Red Hat/CentOS/Fedora/SuSE: mtr (CLI), mtr-gtk (wersja graficzna)
- Debian/Ubuntu: mtr-tiny (CLI), mtr (wersja graficzna)
Przykłady
Następujące przykłady pokazują zapytania mtr. Pierwsze 3 hop-sy są przy tym zawsze anonimowe.
Interaktywny wynik
Następujący wynik pokazuje zapytanie:
mtr www.google.com
My traceroute [v0.75] tpw (0.0.0.0) Tue Sep 8 13:26:54 2009 Keys: Help Display mode Restart statistics Order of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. XXXXXXXXXXXXXX 0.0% 201 0.8 1.0 0.8 5.3 0.8 2. XXXXXXXXXXXXXX 0.0% 201 3.4 8.0 2.5 248.7 21.4 3. XXXXXXXXXXXXXX 0.0% 201 6.0 10.8 4.9 98.8 13.2 4. 195.3.118.50 0.0% 200 18.5 22.5 17.2 113.5 13.1 5. 72.14.198.241 0.0% 200 21.7 22.2 17.1 90.2 11.7 6. 209.85.255.176 0.0% 200 17.5 23.0 17.3 131.0 15.2 7. 209.85.248.182 0.0% 200 30.3 27.9 24.0 82.5 7.5 8. 64.233.175.246 0.0% 200 29.1 30.0 26.8 73.7 6.1 9. 72.14.239.197 0.0% 200 39.4 29.9 27.4 57.1 3.0 72.14.239.199 10. 209.85.255.110 0.0% 200 29.8 34.7 27.5 52.7 5.1 209.85.255.98 209.85.255.102 209.85.255.106 11. ew-in-f147.google.com 0.0% 200 30.2 30.0 27.4 42.3 2.2
Report
mtr może być również wykonany w trybie report (-r
). Ilość zapytań jest określana z parametrem -c
. Za pośrednictwem -w
można zapewnić, że zostanie podana kompletna nazwa hosta i nie zostanie skrócona:
[root@tpw ~]# mtr -r -w -c 10 www.google.com HOST: tpw Loss% Snt Last Avg Best Wrst StDev 1. XXXXXXXXXXXXXX 0.0% 10 0.8 0.8 0.8 1.0 0.1 2. XXXXXXXXXXXXXX 0.0% 10 3.1 3.5 2.6 4.4 0.7 3. XXXXXXXXXXXXXX 0.0% 10 6.2 6.9 5.5 12.7 2.1 4. 195.3.118.50 0.0% 10 23.2 24.7 17.5 64.0 14.5 5. 72.14.198.241 0.0% 10 20.1 19.6 17.5 28.3 3.2 6. 209.85.255.176 0.0% 10 19.2 18.4 17.5 20.9 1.0 7. 209.85.248.182 0.0% 10 26.4 30.0 24.5 58.6 10.2 8. 64.233.175.246 0.0% 10 27.2 28.7 27.2 32.1 1.7 9. 72.14.239.199 0.0% 10 28.1 29.4 28.1 31.3 1.0 10. 209.85.255.98 0.0% 10 33.1 33.8 29.0 40.6 4.6 11. ew-in-f147.google.com 0.0% 10 28.1 29.0 27.5 30.7 1.0 [root@tpw ~]#
Graficzna wersja
Graficzna wersja uruchamiana jest poleceniem xmtr:
xmtr www.google.com
Analiza
W przypadku bardziej oddalonych stron można przez round trip time rozpoznać, pomiędzy którymi hop-sami (routerami) znajdują się podmorskie kable telekomunikacyjne (np. przez Atlantyk). Podczas analizy połączenia do www.areca.com.tw jest to np. bardzo dobrze widoczne:
[root@tpw ~]# mtr -r -w -c 10 www.areca.com.tw HOST: tpw Loss% Snt Last Avg Best Wrst StDev 1. XXXXXXXXXXXXXX 0.0% 10 0.8 0.8 0.8 1.0 0.1 2. XXXXXXXXXXXXXX 0.0% 10 3.7 4.6 2.6 6.7 1.4 3. XXXXXXXXXXXXXX 0.0% 10 9.3 14.0 6.4 54.5 15.9 4. iix10-aux11.highway.telekom.at 0.0% 10 8.8 7.1 5.0 8.8 1.1 5. 193.159.227.13 0.0% 10 7.0 7.0 5.1 10.1 1.6 6. 217.239.40.34 0.0% 10 110.7 108.6 107.2 110.7 1.4 7. 192.205.34.149 0.0% 10 106.6 107.5 105.4 111.1 2.2 8. cr1.n54ny.ip.att.net 0.0% 10 175.1 175.4 173.9 177.2 0.9 9. cr2.cgcil.ip.att.net 0.0% 10 175.4 175.7 174.3 176.6 0.8 10. cr1.cgcil.ip.att.net 0.0% 10 175.6 175.7 174.4 178.0 1.2 11. cr2.dvmco.ip.att.net 0.0% 10 175.7 175.3 174.7 176.2 0.6 12. cr1.slkut.ip.att.net 0.0% 10 179.6 176.6 174.9 179.6 1.4 13. cr2.la2ca.ip.att.net 0.0% 10 192.3 192.4 190.7 194.4 1.2 14. gar2.lsnca.ip.att.net 0.0% 10 175.9 176.7 173.7 182.6 2.5 15. 12.118.42.38 0.0% 10 214.4 183.1 175.5 214.4 14.6 16. 202.39.93.53 0.0% 10 196.9 192.8 189.1 198.1 2.9 17. la-c12r11.usa-la.router.hinet.net 0.0% 10 175.2 226.2 174.4 408.5 80.4 18. r32-fo.ty.hinet.net 10.0% 10 317.6 319.3 316.2 323.4 2.2 19. ty-fo-crs12.router.hinet.net 10.0% 10 310.1 309.1 308.5 310.1 0.6 20. ch-c2-c12r12.router.hinet.net 10.0% 10 310.2 312.6 310.2 320.4 3.2 21. tc-c12r12.router.hinet.net 10.0% 10 314.3 313.7 311.0 331.2 6.6 22. tcwh-c76r2.router.hinet.net 10.0% 10 313.3 312.8 311.3 316.8 1.8 23. tc-fy-c12r2.router.hinet.net 10.0% 10 311.0 313.5 311.0 321.0 3.0 24. 203-69-42-38.hihosting.hinet.net 10.0% 10 311.1 311.6 309.7 314.5 1.8 [root@tpw ~]#
Przy zapytaniach między następującymi routerami łącze przebiega najwidoczniej przez dłuższy podmorski kabel telekomunikacyjny:
- między hop 5 i 6
- między hop 17 i 18
Dalsze informacje
- Informacje o traceroute w Linuksie: Analiza sieci w Linuksie z traceroute