Traceroute - Linux команда - Unix команда

traceroute - печатете ги патеките на патот до мрежата на домаќинот

Синопсис

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g gateway ]

[ -i iface ] [ -m max_ttl] [ -p port ]

[ -q nqueries ] [ -s src_addr ] [ -t tos ]

[ -w waittime ] [ -z pausemsecs ]

домаќин [ пакуван ]

Опис

Интернетот е голема и комплексна агрегација на мрежниот хардвер, поврзан заедно со портата. Следењето на патеката што ја следат пакетите следат (или наоѓање на погрешно портал кој ги отфрла вашите пакети) може да биде тешко. Traceroute го користи IP-протоколот `Time to live 'полето и се обидува да извлече ICMP TIME_EXCEEDED одговор од секоја порта на патеката до некој домаќин.

Единствениот задолжителен параметар е името на дестинацијата на домаќинот или IP-број . Стандардната должина на датаграм на сондата е 40 бајти , но ова може да се зголеми со наведување на должината на пакетите (во бајти) по името на дестинациониот хост.

Други опции се:

-f

Поставете го првичното време-за-живеење кое се користи во првиот излезен пакет сонда.

-F

Поставете бит "не фрагмент".

-d

Овозможи дебагирање на ниво на сокет.

-g

Наведете ја портата на изворот за изворот (најмногу 8).

-i

Наведете мрежен интерфејс за да ја добиете изворната IP адреса за пакети со излезни сонди. Ова вообичаено е корисно само за мулти-домашен домаќин. (Погледнете го знакот -s за друг начин за да го направите ова.)

Користете ICMP ECHO наместо датаграм на UDP.

-m

Поставете го максималното време на живеење (максимум број на хмел) што се користи во пакетите за испис на сонда. Стандардно е 30 hops (истото стандардно се користи за TCP-врски).

-n

Верзијата за печатење адресира нумеричко, наместо симболично и нумеричко (зачувува име-адреса од адреса-по-име за секоја порта која е пронајдена на патеката).

-p

Поставете го основниот UDP број на порта што се користи во сонди (стандардно е 33434). Traceroute се надева дека ништо нема да слуша на базата на UDP портови за да основа + nhops-1 на одредишниот домаќин (па ICMP PORT_UNREACHABLE пораката ќе биде вратена за да го прекине следењето на рутата). Ако нешто се слуша на порта во стандардниот опсег, оваа опција може да се користи за да се избере опсег на неискористените портови.

-r

Одбегнувајте ги нормалните рутирачки табели и испраќајте директно до домаќинот на приложената мрежа. Ако домаќинот не е на директно поврзана мрежа, се враќа грешка. Оваа опција може да се користи за пинг локален хост преку интерфејс кој нема траса низ него (на пример, откако интерфејсот беше отфрлен со пренасочени (8C)).

Користете ја следнава IP адреса (која обично е дадена како IP број, а не името на домаќинот) како изворна адреса во пакетите за излезни сонди. На мулти-домаќини домаќини (оние со повеќе од една IP адреса), оваа опција може да се користи за да ја принуди изворната адреса да биде нешто друго освен IP адресата на интерфејсот на којшто е испратен пакетот на сонда. Ако IP адресата не е една од адресите на интерфејсот на оваа машина, се враќа грешка и ништо не се испраќа. (Види знаме -i за друг начин да го направите ова.)

Поставете го типот на услуга во пакетите со сонди на следната вредност (стандардна нула). Вредноста мора да биде децимален број од 0 до 255. Оваа опција може да се користи за да се види дали различни типови на услуги резултираат со различни патеки. (Ако не се работи со 4.4bsd, ова може да биде академско, бидејќи нормалните мрежни услуги како telnet и ftp не дозволуваат да го контролирате TOS). Не сите вредности на TOS се легални или значајни - видете ги спецификациите на IP за дефиниции. Корисни вредности се веројатно ` -t 16 '(ниско задоцнување) и` -t 8 ' (висок проток).

-v

Проверка на излез. Добиени се ICMP пакети освен TIME_EXCEEDED и не се наведени несоодветни.

-w

Поставете го времето (во секунди) да чека одговор на сонда (стандардно 5 сек.).

-x

Вклучи проверка на ip. Нормално, ова го спречува трасерот да пресметува проверка на ip. Во некои случаи, оперативниот систем може да ги пребрише делови од појдовниот пакет, но да не ја пресмета контролната сума (така што во некои случаи стандардното не е да се пресметаат контролни сумми и со користење на -x предизвикува нивно пресметување). Имајте на ум дека обично се потребни проверки за последниот хоп кога се користат ICMP ECHO сонди ( -I ). Така тие секогаш се пресметуваат кога се користи ICMP.

-z

Поставете го времето (во милисекунди) за да паузирате помеѓу сонди (стандардно 0). Некои системи како што се Solaris и рутери, како што се Ciscos стапка ги ограничуваат icmp пораките. Добра вредност за користење со ова е 500 (на пр. 1/2 секунда).

Оваа програма се обидува да ја пронајде патеката која IP-пакетот ќе ја следи на некој интернет-домаќин со пуштање на UDP-пакети со сонди со мала ttl (време за живеење), а потоа слушање на ICMP-от "времето надминато" одговорот од портата. Ние ги започнуваме нашите сонди со еден ttl од еден и се зголемуваме за еден додека не добиеме ICMP "пристаниште недостапно" (што значи дека стигнавме до "домаќин") или погодивме максимална вредност (која може да се менува со 30 hops и може да се промени со -m знаме). Три сонди (промена со -q знаме) се испраќаат при секое подесување на ttl и се отпечатоци линија која го прикажува ttl, адресата на портата и времето на кружење на секоја сонда. Ако одговорите на сондата доаѓаат од различни портали, адресата на секој одговорен систем ќе биде испечатена. Ако нема одговор во рок од 5 секунди. временскиот интервал (променет со знакот -w ), за таа сонда е отпечатен "*".

Ние не сакаме дестинациониот домаќин да ги обработи пакетите на SDP пробните патеки, така што портата за дестинација е поставена на мала веројатна вредност (ако некоја клод на дестинацијата ја користи таа вредност, може да се смени со знамето -p ).

Употребата и излезната мостра може да бидат:

[yak 71]% traceroute nis.nsf.net. traceroute на nis.nsf.net (35.1.1.48), 30 hops максимум, 38 бајт пакет 1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32. 216.1) 39 ms 39 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms 5 ccn (128.32.168.22) 39 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms 8 129.140. 70.13 (129.140.70.13) 99 ms 99 ms 80 ms 9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms 10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms 11 nic.merit.edu (35.1 .1.48) 239 ms 239 ms 239 ms

Забележете дека линиите 2 и 3 се исти. Ова се должи на грешка на кернелот на 2. хоп системот - lbl-csam.arpa - кој ги пренасочува пакетите со нула ttl (грешка во дистрибуираната верзија на 4.3BSD). Имајте на ум дека мора да се погоди која патека пакетите земаат во крос-кантри, бидејќи NSFNet (129.140) не обезбедува преводи од адреса за превод за своите NSSes.

Поинтересен пример е:

[yak 72]% traceroute allspice.lcs.mit.edu. traceroute до allspice.lcs.mit.edu (18.26.0.115), 30 hops max 1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms 5 ccn-nerif22 .Berkeley.EDU (128.32.168.22) 20 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms 8 129.140.70.13 ( 129.140.70.13) 80 ms 79 ms 99 ms 9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms 10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms 11 129.140.72.17 (129.140.72.17) 300 ms 239 ms 239 ms 12 * * * 13 128.121.54.72 (128.121.54.72) 259 ms 499 ms 279 ms 14 * * * 15 * * * 16 * * * 17 * * * 18 ALLSPICE.LCS.MIT.EDU (18.26 .0.115) 339 ms 279 ms 279 ms

Имајте на ум дека порталите 12, 14, 15, 16 и 17 од ХОП или не испраќаат ICMP "време надминати" пораки или да ги испратите со ttl премногу мали за да стигнете до нас. 14 - 17 го извршуваат кодот на MIT C Gateway кој не испраќа "пречекорување на времето". Бог знае што се случува со 12.

Тивката порта 12 во горенаведеното може да биде резултат на грешка во 4. [23] BSD мрежниот код (и неговите деривати): 4.x (x <= 3) испраќа порака недостапна користејќи го она што останува во оригиналот датаграм. Бидејќи за портата, преостанатиот ttl е нула, ICMP "времето надминато" е загарантирано да не го врати назад кај нас. Однесувањето на оваа бубачка е малку поинтересно кога се појавува на одредишниот систем:

1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1 ) 19 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms 5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms 6 csgw. Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 rip.Berkeley.EDU (128.32.131.22) 59 Госпоѓица ! 39 ms! 39 ms!

Забележете дека има 12 "портали" (13 е крајната дестинација) и токму последната половина од нив се "исчезнати". Она што навистина се случува е дека рип (Sun-3 running Sun OS3.5) го користи ttl од нашиот пристигнат датаграм како ttl во неговиот одговор од ICMP. Значи, одговорот ќе се одмине на патот за враќање (без известување испратено на никого, бидејќи ICMP не се испраќаат за ICMP), додека не испитуваме со ttl што е најмалку двапати од должината на патеката. Односно, отскокнување е навистина само 7 hops далеку. Одговорот што се враќа со ttl од 1 е доказ дека овој проблем постои. Traceroute отпечатоци "!" по време, ако ttl е <= 1. Бидејќи продавачите испраќаат многу застарени софтверски програми (DEC DEC Ultrix, Sun 3.x) или нестандардни (HPUX), очекуваат често да го видат овој проблем и / или да внимаваат да ја одберат целта домаќин на вашите сонди.

Други можни забелешки по времето се ! H ,! N , или ! P (домаќин, мрежа или протокол недостижно) ,! S (изворната рута не успеа) ,! F- (потребна е фрагментација - вредноста на RFC1191 Path MTU Discovery е прикажана) ! X (комуникација административно забранета) ,! V (прекршување на првенството на домаќинот) ,! C (ефект на прекин на првенството), или ! (ICMP недостапен код). Овие се дефинирани со RFC1812 (што ја заменува RFC1716). Ако скоро сите сонди резултираат со некој вид недостижно, traceroute ќе се откаже и ќе излезе.

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

Исто така види

патекар (8), netstat (1), пинг (8)