Analiza ruchu sieciowego w Linuksie z mtr

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

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
Polecenie xmtr uruchamia z wiersza poleceń graficzną wersję mtr (My traceroute)


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

Powiązane artykuły

Analiza sieci w Linuksie z traceroute
Pomiar wydajności TCP i UDP w sieci za pomocą Iperf