Traceroute - Linux Command - Komanda Unix

traceroute - shtypni paketat e drejtimit që marrin në rrjetin pritës

përmbledhje

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 ]

host [ paketë ]

Përshkrim

Interneti është një grumbullim i madh dhe kompleks i pajisjeve të rrjetit, të lidhur së bashku nga porta. Ndjekja e paketave të rrugës (ose gjetja e portës së gabuar që po hedh paketimet) mund të jetë e vështirë. Traceroute përdor skedën "koha për të jetuar" të protokollit IP dhe përpiqet të nxjerrë një përgjigje ICMP TIME_EXCEEDED nga çdo portë përgjatë rrugës për disa host.

I vetmi parametër i detyrueshëm është emri i hostit të destinacionit ose numri i IP . Gjatësia e datagramit të sondës së parazgjedhur është 40 bytes , por kjo mund të rritet duke specifikuar një gjatësi pakete (në bytes) pas emrit të hostit të destinacionit.

Mundësitë e tjera janë:

-f

Vendosni kohën fillestare për të jetuar të përdorur në paketën e parë të sondës së daljes.

-F

Vendosni "mos fragment" bit.

-d

Aktivizo debugging level socket.

-G

Specifikoni një portë të rrugës burim të lirshme (maksimumi 8).

-i

Specifikoni një ndërfaqe rrjeti për të marrë adresën IP të burimit për paketat e provës dalëse. Kjo zakonisht është e dobishme vetëm në një host shumë-homed. (Shihni flamurin -s për një mënyrë tjetër për ta bërë këtë.)

-I

Përdorni ICMP ECHO në vend të datagrameve të UDP.

-M

Vendosni maksimumin e kohës për të jetuar (numrin maksimal të HOPS) që përdoren në paketat e provës dalëse. Parazgjedhja është 30 hops (e njëjta parazgjedhje e përdorur për lidhjet TCP).

-N

Print hop adresat numerikisht dhe jo simbolike dhe numerike (kursen një emër-adresë për-emër lookup për çdo portë gjetur në rrugë).

-p

Caktoni numrin bazë të portës UDP të përdorur në hetime (default është 33434). Traceroute shpreson se asgjë nuk po dëgjon në portet e UDP bazëbazën + nhops - 1 në hostin e destinacionit (kështu që një mesazh ICMP PORT_UNREACHABLE do të kthehet për të përfunduar gjurmimin e rrugës). Nëse diçka po dëgjon në një port në rangun e parazgjedhur, ky opsion mund të përdoret për të zgjedhur një sasi portesh të papërdorur.

-r

Anashkaloni tavolinat e drejtimit normal dhe dërgoni drejtpërdrejt në një host në një rrjet të lidhur. Nëse host nuk është në një rrjet të lidhur direkt, një gabim është kthyer. Ky opsion mund të përdoret për të pinguar një host lokal nëpërmjet një ndërfaqeje që nuk ka rrugë përmes saj (p.sh., pasi ndërfaqja u hodh poshtë nga rruga (8C)).

-s

Përdorni adresën IP të mëposhtme (e cila zakonisht jepet si një numër IP, jo një emër host) si adresa burimore në paketat e provës dalëse. Në hostët me shumë vende (ato me më shumë se një adresë IP), ky opsion mund të përdoret për të detyruar adresën e burimit të jetë diçka tjetër përveç adresës IP të ndërfaqes që pakoja e sondës është dërguar. Nëse adresa IP nuk është një nga adresat e ndërfaqes së kësaj makine, një gabim është kthyer dhe asgjë nuk është dërguar. (Shih flamurin -i për një mënyrë tjetër për ta bërë këtë.)

-T

Vendosni llojin e shërbimit në paketat e sondës në vlerën e mëposhtme (parazgjedhja zero). Vlera duhet të jetë një numër i plotë decimal në rangun 0 deri në 255. Ky opsion mund të përdoret për të parë nëse llojet e ndryshme të shërbimit të rezultojnë në shtigje të ndryshme. (Nëse nuk po ecni 4.4bsd, kjo mund të jetë akademike pasi që shërbimet normale të rrjetit si telnet dhe ftp nuk ju lejojnë të kontrolloni TOS). Jo të gjitha vlerat e TOS janë ligjore ose kuptimplote - shih spekulimin IP për përkufizime. Vlerat e dobishme janë ndoshta " -t 16 " (vonesa e ulët) dhe " -t 8 " (shpejtësia e lartë).

-V

Prodhimi i bollshëm. Janë shënuar pako të pranuara ICMP përveç TIME_EXCEEDED dhe UNREACHABLEs.

-w

Vendosni kohën (në sekonda) për të pritur një përgjigje ndaj një sonde (default 5 sec.).

-X

Toggle checksums ip. Normalisht, kjo parandalon traceroute nga llogaritja e checksums ip. Në disa raste, sistemi operativ mund të mbishkruajë pjesët e paketës që po largohet, por nuk rillogaritet checksum (kështu që në disa raste default është që të mos llogaritet checksums dhe duke përdorur -x shkakton që ato të jenë të llogaritura). Vini re se checksums janë zakonisht të nevojshme për hop e fundit kur përdoren ICMP ECHO probe ( -I ). Pra, ato llogariten gjithmonë kur përdorin ICMP.

-Z

Caktoni kohën (në millisekonda) për të ndaluar midis sondave (default 0). Disa sisteme të tilla si Solaris dhe routers si Cisco kufizojnë mesazhet e ICMP limit. Një vlerë e mirë për t'u përdorur me këtë është 500 (p.sh. 1/2 sekondë).

Ky program përpiqet të ndjek gjurmët e një pako IP që do të ndiqte në disa host të internetit duke nisur paketat e hetimit të UDP me një ttl të vogël (koha për të jetuar), pastaj duke dëgjuar për një përgjigje nga një gateway "koha e tejkaluar" e ICMP. Ne fillojmë hetimet tona me një ttl të një dhe rrisim nga një derisa të marrim një ICMP "port unreachable" (që do të thotë që ne kemi marrë për të "host") ose goditi një max (i cili defaults to 30 hop & mund të ndryshohet me -m flamur). Tre sondat (ndryshimi me flamurin -q ) dërgohen në çdo vendosje të ttl dhe shtypet një rresht që tregon ttl, adresën e portës dhe kohën e udhëtimit të çdo sonde. Nëse përgjigjet e hetimit vijnë nga porta të ndryshme, adresa e secilit sistem që përgjigjet do të shtypet. Nëse nuk ka përgjigje brenda 5 sekondës. ndërprerja e kohës (e ndryshuar me flamurin -w ), një "*" shtypet për atë hetim.

Ne nuk duam që hosti i destinacionit të përpunojë paketat e hetimit të UDP, kështu që porti i destinacionit është caktuar në një vlerë të pamundur (nëse disa kllofë në destinacion po e përdorin atë vlerë, mund të ndryshohet me flamurin -p ).

Një përdorim dhe prodhim i mostrës mund të jetë:

[Shpija 71]% traceroute nis.nsf.net. traceroute në nis.nsf.net (35.1.1.48), 30 hops max, 38 byte pako 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

Vini re se vijat 2 dhe 3 janë të njëjta. Kjo është për shkak të një kerneli buggy në sistemin e dytë hop - lbl-csam.arpa - që përcjell paketat me një ttl zero (një bug në versionin e shpërndarë të 4.3BSD). Vini re se duhet të mendosh se në cilën rrugë paketat po marrin ndër-vend pasi që NSFNet (129.140) nuk furnizon përkthime adresë-emër për NSS-të e saj.

Një shembull më interesant është:

[Jak 72]% traceroute allspice.lcs.mit.edu. traceroute të 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

Vini re se portat 12, 14, 15, 16 & 17 largohen ose nuk dërgojnë mesazhe ICMP "tejkaluar kohën" ose dërgojnë ato me një ttl tepër të vogël për të na arritur. 14 - 17 janë duke përdorur kodin MIT C Gateway që nuk dërgon "kohë të tejkaluar". Perëndia e di vetëm se çfarë po ndodh me 12.

Porta e heshtur 12 në sipër mund të jetë rezultat i një gabimi në kodin e rrjetit BSD 4. (23) dhe derivateve të tij: 4.x (x <= 3) dërgon një mesazh të paarritshëm duke përdorur cilindo ttl që mbetet në origjinal Datagram. Meqenëse, për portat, ttl e mbetur është zero, ICMP "tejkalon kohën" është e garantuar që të mos e kthejë atë tek ne. Sjellja e këtij bug është pak më interesant kur shfaqet në sistemin e destinacionit:

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 Znj ! 39 ms! 39 ms!

Vini re se ka 12 "porta" (13 është destinacioni përfundimtar) dhe pikërisht gjysma e fundit e tyre janë "të zhdukur". Ajo që ndodh me të vërtetë është se rip (Sun-3 running Sun OS3.5) po përdor ttl nga datagrami ynë që vjen si ttl në përgjigjen e saj ICMP. Pra, përgjigjja do të marrë kohë në rrugën e kthimit (pa njoftim dërguar personit pasi ICMP nuk janë dërguar për ICMP) derisa ne të hetuar me një ttl që është të paktën dy herë në gjatësinë e rrugës. Dmth, shqyej është me të vërtetë vetëm 7 hapa larg. Një përgjigje që kthehet me një ttl të 1 është një çelës ky problem ekziston. Traceroute printon një "!" pas kohës nëse ttl është <= 1. Meqë shitësit dërgojnë një shumë të vjetër (DEC's Ultrix, Sun 3.x) ose softuer jo-standard (HPUX), presin ta shohin këtë problem shpesh dhe / ose të kujdesen për të zgjedhur objektivin mbajnë sondat tuaja.

Shënimet e tjera të mundshme pas kohës janë: H , N ose P (host, rrjet ose protokoll i paarritshëm), S (rruga burimore dështuar), F- (fragmentimi i nevojshëm - vlera e zbulimit RFU1191 Path MTU shfaqet) ! X (komunikim i ndaluar administrativisht) ,! V (shkelja e precedentit të hostit) ,! C (ndërprerja e përparësisë në fuqi), ose ! (Kodi i paarritshëm i ICMP). Këto janë përcaktuar nga RFC1812 (i cili zëvendëson RFC1716). Nëse pothuajse të gjitha provat rezultojnë në një lloj të paarritshëm, traceroute do të heqë dorë dhe do të dalë.

Ky program është menduar për përdorim në testimin, matjen dhe menaxhimin e rrjetit. Duhet të përdoret kryesisht për izolimin manual të fajit. Për shkak të ngarkesës që mund të imponojë në rrjet, nuk është e mençur të përdoret traceroute gjatë operacioneve normale ose nga skripta të automatizuara.

Shiko gjithashtu

pathchar (8), netstat (1), ping (8)