TRACEROUTE(8) TRACEROUTE(8)
NAME
traceroute - vypise cestu k zadanemu pocitaci
SYNOPSIS
traceroute [ -dFInrvx ] [ -f prvni ttl ] [ -g brana ] [ -i iface ]
[ -m max ttl ] [ -p port ] [ -q nqueries ]
[ -s src_addr ] [ -t tos ] [ -w cekaci cas ]
host [ delka paketu ]
DESCRIPTION
Internet je velke komplexni seskupeni sitoveho hardware, spojeneho
dohromady branami (routery). Zjistovani cesty, po ktere pakety chodi
(nebo nalezeni brany, ktera odmita vase pakety) muze byt obtizne.
Traceroute vyuziva moznosti polozky TTL (Time To Live) v hlavicce IP
datagramu a pokousi se vyvolat u kazde brany na ceste k cili odezvu
ICMP TIME_EXCEEDED (tj. hlaseni o chybe, resp. o vyprseni TTL).
Jediny povinny parametr je jmeno nebo IP adresa ciloveho pocitace.
Standardni delka datagramu je 40 bytu, ale da se zvysit udanim jine
hodnoty (v bytech) za adresou cile.
Dalsi mozne parametry:
-f Nastaveni pocatecni hodnoty TTL pro prvni vysilany datagram.
-F Nastav priznak "Don't fragment".
-d Zapni ladeni na urovni socketu.
-g Prima specifikace routeru na ceste (max 8).
-i Urceni sitoveho rozhrani, ze ktereho budou datagramy vysilany
(tj. urceni zdrojove IP adresy). Lze pouzit pouze na pocitaci s
vice sitovymi rozhranimi (viz take parametr -s).
-I Misto UDP datagramu pouzij datagramy ICMP ECHO.
-m Nastaveni maximalniho TTL pouzivaneho v odchazejicich data-
gramech. Standardne je pouzita hodnota 30 (stejne jako u TCP
spojeni).
-n Adresy bran jsou vypisovany cisly, neni provaden prevod na DNS
jmena (pouziva se pro urychleni vystupu nebo pokud DNS nefun-
guje).
-p Nastaveni cisla UDP portu pouzivaneho pro traceroute (standardne
je 33434). Traceroute predpoklada, ze na cilovych UDP portech
od cisla port do cisla port + pocet_hopu - 1 na trase k cili nic
nenasloucha (takze se zpet vrati zprav ICMP PORT_UNREACHABLE).
Pokud na nekterem z portu nasloucha nejaka aplikace, lze timto
parametrem urcit pocatek nepouzivaneho rozsahu portu.
-q Pocet vyslanych datagramu pro kazdou hodnotu TTL (tj. pro kazdou
branu).
-r Preskoc normalni routovaci tabulky a vysilej primo na pripojene
site. Pokud cil v primo pripojene siti nelezi, je vracena
chyba. Tento parametr muze byt pouzit pro pinknuti na localhost
pres rozhrani, pres ktere nevede zadna cesta (napriklad, pote co
bylo rozhrani vypnuto pomoci routed (8C)).
-s Pouzij nasledujici IP adresu (zadanou jako cislo nebo jako
jmeno) jako zdrojove adresy pro odchazejici datagramy. Na
pocitacich s vice sitovymi rozhranimi (tj. s vice nez jednou IP
adresou), muze byt tento parametr pouzit k nastaveni jine zdro-
jove IP, nez jaka je na odesilajicim sitovem rozhrani. Pokud IP
adresa nepatri mezi adresy rozhrani tohoto pocitace, je vracena
chyba a nic se nevysle (viz take parametr -i).
-t Nastaveni TOS (Type-Of-Service) v odesilanych paketech (stan-
dardne nula). Cislo musi byt cele v rozsahu od 0 do 255. Tento
parametr lze pouzit pro zjisteni, zda ruzne typy sluzeb jsou
smerovany ruznymi cestami (pokud mate 4.4bsd, je to jen aka-
demicke, protoze u normalnich sitovych sluzbach jako telnet a
ftp neni TOS mozne nastavit... Ne vsechny hodnoty jsou legalni
nebo vyznamne - (viz specifikaci IP). Pouzitelne hodnoty jsou:
'-t 16' (kratka doba odezvy) a '-t 8' (vysoky prutok).
-v Rozsireny vystup. Jsou vypsany jine prichozi datagramy, nez ICMP
TIME_EXCEEDED a UNREACHABLE.
-w Cas (v sekundach) cekani pro odezvu na vyslane datagramy (stan-
dardne 5 sec.).
-x Prepinani kontrolnich souctu. Obvykle jsou kontrolni soucty
timto parametrem vypnuty. V nekterych pripadech muze operacni
system prepsat casti odchazejicich datagramu, ale neprepocitat
kontrolni soucet (tj. v nekterych pripadech se standardne kon-
trolni soucty nepocitaji a pouziti tohoto parametru zpusobi
jejich pocitani). Nezapomente ze kontrolni soucty jsou obvykle
potreba pro posledni preskok kdyz se pouziva ICMP ECHO. (-I).
Tento program se pokousi zobrazit cestu, kterou vykona IP datagram k
cilovemu pocitaci tak, ze vysila zamerne UDP datagramu s malymi hodno-
tami TTL (Time To Live) a pak ceka, zda prijde od brany (routeru) ICMP
zprava "Cas vyprsel" (Time Exceeded). Zacina se s vyslanim datagramu s
TTL nastavenym na hodnotu 1 a pak se TTL postupne zvysuje, dokud neni
prijat datagram se ICMP zpravou "Port Unreachable" (coz znamena, ze
jsme u cile) nebo pokud se dosahne maximalni hodnoty TTL (ktera je
standardne 30 skoku a muze byt zmenena pomoci parametru -m). Pro
kazdou hodnotu TTL jsou vyslany tri datagramy (lze zmenit pomoci
parametru -q) a pak je vypsan radek s hodnotou TTL, jmenem brany a
dobami odezvy kazdeho vyslaneho datagramu. Prijdou-i odpovedi z ruznych
bran, jsou vsechny vypsany. Pokud neprijde zadna odezva do peti vterin
(lze zmenit pomoci parametru -w) je vypsan znak "*".
Je potreba, aby cilovy pocitac nezpracovaval UDP vyzvy, a tak je cilovy
port nastaven na nepravdepodobnou hodnotu (pokud nejaky program na
cilovem pocitaci tento port pouziva, muzete ho zmenit pomoci parametru
-p).
Priklad pouziti a nasledneho vystupu:
[yak 71]% traceroute nis.nsf.net.
traceroute to nis.nsf.net (35.1.1.48), 30 hops max, 38 byte packet
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-nerif22.Berkeley.EDU (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
Vsimnete si, ze radky 2 a 3 obsahuji stejna jmena i IP adresy pocitacu,
coz zpusobuje chybne 4.3 BSD jadro na druhem preskoku (lbl-csam.arpa),
ktere preposila datagramy s nulovym TTL. Ve spodni casti nejsou uve-
deny jmena pocitacu, protoze NFSNet (129.140) nema v DNS zavedeny
prislusne reverzni zaznamy.
Dalsi priklad:
[yak 72]% traceroute allspice.lcs.mit.edu.
traceroute to 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
Brany 12, 14, 15, 16 a 17 neposilaji ICMP zpravy "Time Exceeded" nebo
je posilaji s prilis malou hodnotou TTL a proto se k nam nedostanou.
Ztichla brana 12 muze byt zpusobena chybou v sitovem kodu 4.[23] BSD (a
jeho odvozeniny): 4.x (x <= 3) posilaji odpoved s pouzitim TTL, ktere
bylo v prichozim datagramu, proto odpoved nedojde. Tato chyba se pro-
jevi zajimaveji, pokud ji ma cilovy pocitac:
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 ms ! 39 ms ! 39 ms !
Ve vystupu je videt 12 bran (routeru), trinacty je cil a presne druha
polovina odpovedi chybi. Zpusobuje to chyba na pocitaci rip (Sun-3 se
systemem Sun OS3.5), ktery pouziva TTL v dotazech jako TTL pro ICMP
odpovedi. Proto odpoved dojde az v okamziku, kdy je TTL vetsi, nez
dvojnasobek delky zpatecni trasy. Pocitac rip je vzdalen skutecne jen
sedm hopu.
Dalsi mozne poznamky za udajem o casu jsou: !H, !N, nebo !P (cil, sit
nebo protokol nedosazitelne), !S nebo !F (zdrojova cesta chybna nebo je
potrebna fragmentace - zadna z techto chyb by se nemela nikdy objevit a
prislusna brana je v tom pripade vadna), !X (komunikace zakazana admin-
istratory), nebo !<N> (ICMP nedostupne, kod N). Pokud temer vsechny
vyzvy konci hlasenimi o nedosazitelnosti, traceroute se ukonci.
Tento program je urcen pro testovani, mereni a management siti.
Primarne by mel slouzit pro izolaci chyb. Protoze traceroute muze sit
zatizit, neni moudre ho pouzivat behem normalnich operaci a z automat-
ickych skriptu.
VIZ TAKE
pathchar(8), netstat(1), ping(8)
AUTOR
Implementoval Van Jacobson podle navrhu Steve Deeringa. Ladily tisice
lidi, zahrnuty castecne opravy a navrhy od: C. Philip Wood, Tim Seaver
and Ken Adelman.
Soucasne verze programu jsou k dispozici na anonymnim ftp:
ftp://ftp.ee.lbl.gov/traceroute.tar.Z
CHYBY
Prosim posilejte chyby na adresu traceroute@ee.lbl.gov.
PREKLAD
Martin Dostal (martin.dostal@pslib.cz), upravy textu Milan Kerslager
(kerslage@linx.cz).
4.3 Berkeley Distribution 22 Duben 1997 TRACEROUTE(8)