Како да користите Traceroute и MTR за да дијагностицирате проблеми со мрежата


Вовед

Важен дел од администрирањето на серверите е следењето на мрежното поврзување.

Постојат неколку алатки кои се едноставни за употреба, но вредни да се знаат. Во ова упатство, ќе разговараме за тоа како да се користи алатка наречена traceroute за да се дијагностицира каде може да се случи мрежен проблем.

Ќе разгледаме и алатка наречена mtr која комбинира голем дел од функционалноста на ping и traceroute во еден интерфејс.

Како да се користи Traceroute

traceroute е едноставна алатка за прикажување на патеката до оддалечен сервер. Ова може да биде што било од веб-локација што се обидувате да ја посетите, до печатач на вашата локална мрежа.

Програмата traceroute е стандардно инсталирана на речиси секоја дистрибуција на Linux, така што не треба да ја инсталирате.

За да го наречеме, едноставно треба да обезбедиме веб-страница или IP адреса што би сакале да ја истражиме:

  1. traceroute google.com

Ќе добиете излез сличен на следново:

Output
traceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets 1 192.241.160.253 (192.241.160.253) 0.564 ms 0.539 ms 0.525 ms 2 192.241.164.241 (192.241.164.241) 0.487 ms 0.435 ms 0.461 ms 3 xe-3-0-6.ar2.nyc3.us.nlayer.net (69.31.95.133) 1.801 ms 1.802 ms 1.762 ms 4 144.223.28.73 (144.223.28.73) 0.583 ms 0.562 ms 0.550 ms 5 144.232.1.21 (144.232.1.21) 1.044 ms 1.048 ms 1.036 ms 6 74.125.49.212 (74.125.49.212) 0.494 ms 0.688 ms 0.643 ms 7 209.85.248.180 (209.85.248.180) 0.650 ms 209.85.248.178 (209.85.248.178) 0.621 ms 0.625 ms 8 72.14.236.208 (72.14.236.208) 0.618 ms 72.14.236.206 (72.14.236.206) 0.898 ms 72.14.236.208 (72.14.236.208) 0.872 ms 9 72.14.239.93 (72.14.239.93) 7.478 ms 7.989 ms 7.466 ms 10 72.14.232.73 (72.14.232.73) 20.002 ms 19.969 ms 19.975 ms 11 209.85.248.228 (209.85.248.228) 30.490 ms 72.14.238.106 (72.14.238.106) 34.463 ms 209.85.248.228 (209.85.248.228) 30.707 ms 12 216.239.46.54 (216.239.46.54) 42.502 ms 42.507 ms 42.487 ms 13 216.239.46.159 (216.239.46.159) 76.578 ms 74.585 ms 74.617 ms 14 209.85.250.126 (209.85.250.126) 80.625 ms 80.584 ms 78.514 ms 15 72.14.238.131 (72.14.238.131) 80.287 ms 80.560 ms 78.842 ms 16 209.85.250.228 (209.85.250.228) 171.997 ms 173.668 ms 170.068 ms 17 66.249.94.93 (66.249.94.93) 238.133 ms 235.851 ms 235.479 ms 18 72.14.233.79 (72.14.233.79) 233.639 ms 239.147 ms 233.707 ms 19 sin04s01-in-f9.1e100.net (173.194.38.137) 236.241 ms 235.608 ms 236.843 ms

Првата линија ни ги кажува условите под кои работи traceroute:

Output
traceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets

Го дава наведениот хост, IP адресата што ја враќа DNS за тој домен, максималниот број на скокови што треба да се проверат и големината на пакетот што ќе се користи.

Максималниот број на скокови може да се прилагоди со знамето -m. Ако домаќинот до кој се обидувате да насочите е оддалечен преку 30 скокови, можеби ќе треба да наведете поголема вредност овде. Максималната вредност што можете да ја поставите е 255.

  1. traceroute -m 255 obiwan.scrye.net

Можете да ја прилагодите големината на пакетот што се испраќа до секој скок со давање на цел број по името на домаќинот:

  1. traceroute google.com 70

Ќе го видите излезот вака:

Output
traceroute to google.com (173.194.38.128), 30 hops max, 70 byte packets 1 192.241.160.254 (192.241.160.254) 0.364 ms 0.330 ms 0.319 ms 2 192.241.164.237 (192.241.164.237) 0.284 ms 0.343 ms 0.321 ms

По првата линија, секоја следна линија претставува \hop\ или среден хост низ кој мора да помине вашиот сообраќај за да стигне до компјутерот претставен од домаќинот што го наведовте.

Секоја линија го има следниот формат:

Output
hop_number host_name (IP_address) packet_round_trip_times

Еве пример на хоп што може да го видите:

Output
3 nyk-b6-link.telia.net (62.115.35.101) 0.311 ms 0.302 ms 0.293 ms

Еве што значи секое поле:

  • hop_number: Секвенцијално броење на бројот на степени на одвојување што домаќинот е од вашиот компјутер. Сообраќајот од домаќините со поголем број треба да помине низ повеќе компјутери за да се насочи.
  • име_домаќин: ова поле го содржи резултатот од обратно пребарување на DNS на IP адресата на домаќинот, доколку е достапна. Ако не се вратат информации од обратното барање DNS, се дава самата IP адреса.
  • IP_адреса: ова поле ја содржи IP адресата за овој мрежен скок.
  • packet_round_trip_times: Остатокот од линијата ги дава времињата за повратно патување за пакет до домаќинот и повторно назад. Стандардно, три пакети се испраќаат до секој домаќин и секој обид се додава на крајот од линијата.

Ако сакате да го промените бројот на пакети што се тестираат со секој домаќин, можете да наведете број со опцијата -q, вака:

  1. traceroute -q1 google.com

Ако сакате да се откажете од обратното пребарување на DNS за да ја забрзате трагата, можете да го пренесете знамето -n:

  1. traceroute -n google.com

Ќе добиете излез вака:

Output
traceroute to google.com (74.125.235.7), 30 hops max, 60 byte packets 1 192.241.160.253 0.626 ms 0.598 ms 0.588 ms 2 192.241.164.241 2.821 ms 2.743 ms 2.819 ms 3 69.31.95.133 1.470 ms 1.473 ms 1.525 ms

Ако вашиот тракерут се раствори во некои ѕвездички (*), има проблем со маршрутата до домаќинот.

Output
... 15 209.85.248.220 (209.85.248.220) 121.809 ms 72.14.239.12 (72.14.239.12) 76.941 ms 209.85.248.220 (209.85.248.220) 78.946 ms 16 72.14.239.247 (72.14.239.247) 101.001 ms 92.478 ms 92.448 ms 17 * * 209.85.250.124 (209.85.250.124) 175.083 ms 18 * * * 19 * * *

Што значи проблем со рутата?

Ако вашиот обид за тракерут запре на одреден скок или јазол и не може да најде пат до домаќинот, имате проблем.

Иако скокот каде што маршрутата не се враќа може да биде локацијата на проблемот со мрежата, не е секогаш така лесно да се дијагностицира.

Поради фактот што секој пинг претставува пакет за повратен пат, и ситуацијата кога пакетите често користат различни патеки во која било насока, тоа може да укаже на проблем на сосема поинаква, можеби поблиска рута.

Исто така, може да се случи проблемот да е со скокот директно по последниот скок што го гледате. Тешко е да се дијагностицира точната локација на проблемот, освен ако не можете да добиете повратен тракерут од тој специфичен скок. Ова обично не е можно надвор од вашата сопствена мрежа.

Како да се користи MTR

Динамична алтернатива на програмата traceroute е mtr. Комбинирајќи ја функционалноста на ping и traceroute, mtr ви овозможува постојано да анкетирате оддалечен сервер и да видите како латентноста и перформансите се менуваат со текот на времето.

За разлика од traceroute, mtr не е стандардно инсталиран на повеќето системи. Можете да го добиете со внесување на следните команди.

Ubuntu/Debian:

  1. sudo apt-get install mtr

CentOS/Fedora:

  1. yum install mtr

Арх:

  1. pacman -S mtr

Откако ќе се инсталира, можете да го повикате со пишување:

  1. mtr google.com

Ќе добиете излез вака:

Output
My traceroute [v0.80] traceroute (0.0.0.0) Tue Oct 22 20:39:42 2013 Resolver: Received error response 2. (server failure)er of fields q uit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 192.241.160.253 0.0% 371 0.4 0.6 0.1 14.3 1.0 2. 192.241.164.241 0.0% 371 7.4 2.5 0.1 37.5 4.8 3. xe-3-0-6.ar2.nyc3.us. 2.7% 371 3.6 2.6 1.1 5.5 1.1 4. sl-gw50-nyc-.sprintli 0.0% 371 0.7 5.0 0.1 82.3 13.1

Иако излезот може да изгледа слично, големата предност во однос на traceroute е тоа што излезот постојано се ажурира. Ова ви овозможува да акумулирате трендови и просеци, а исто така ви овозможува да видите како перформансите на мрежата варираат со текот на времето.

Ако сте истрчале тракерут, постои можност пакетите што биле испратени до секој скок да го направат патувањето без инциденти, дури и во ситуација кога рутата страда од периодично губење на пакети. Услужната алатка mtr ви овозможува да ја следите оваа ситуација со собирање податоци во поширок временски опсег.

Исто така, можно е да се изврши mtr со опцијата --report, која ги враќа резултатите од испраќањето 10 пакети на секој скок.

  1. mtr --report google.com

Извештајот изгледа вака:

Output
HOST: traceroute Loss% Snt Last Avg Best Wrst StDev 1.|-- 192.241.160.254 0.0% 10 1.5 0.9 0.4 1.5 0.4 2.|-- 192.241.164.237 0.0% 10 0.6 0.9 0.4 2.7 0.7 3.|-- nyk-b6-link.telia.net 0.0% 10 0.5 0.5 0.2 0.7 0.2 4.|-- nyk-bb2-link.telia.net 0.0% 10 67.5 18.5 0.8 87.3 31.8

Ова може да биде корисно кога не мора да сакате да мерите во реално време, но сакате поголем опсег на податоци отколку што обезбедува traceroute.

Заклучок

Со traceroute и mtr, можете да разберете кои сервери на вашиот пат до одреден домен или адреса предизвикуваат проблеми. Ова може да биде корисно при решавање проблеми на внатрешна мрежа, а исто така и кога се обидувате да обезбедите информации за поддршка на членовите или интернет провајдерите кога имате проблеми со мрежата.