Traceroute - Linux Command - Unix Command

traceroute - i-print ang mga packet ng ruta sa network host

Buod

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 [ packetlen ]

Paglalarawan

Ang Internet ay isang malaking at kumplikadong pagsasama-sama ng hardware ng network, na konektado sa pamamagitan ng mga gateway. Ang pagsubaybay sa ruta ng mga packet na sinundan (o paghahanap ng maling gateway na nagtatapon ng iyong mga packet) ay maaaring maging mahirap. Ang Traceroute ay gumagamit ng field ng IP protocol `oras upang mabuhay 'at nagtatangkang makamit ang isang ICMP TIME_EXCEEDED na tugon mula sa bawat gateway sa landas patungo sa ilang host.

Ang tanging ipinag-uutos na parameter ay ang destination host name o IP number . Ang default na datagram na haba ng proyektong ito ay 40 bytes , ngunit ito ay maaaring tumaas sa pamamagitan ng pagtukoy ng isang haba ng packet (sa mga byte) pagkatapos ng pangalan ng patutunguhan ng host.

Iba pang mga pagpipilian ay:

-f

Itakda ang unang oras-to-live na ginamit sa unang palabas na packet ng probe.

-F

Itakda ang "hindi fragment" bit.

-d

Paganahin ang pag-debug sa antas ng socket.

-g

Tukuyin ang isang maluwag na source ruta gateway (8 maximum).

-i

Tukuyin ang isang network interface upang makuha ang pinagmulan ng IP address para sa mga papalabas na packet ng probe. Ito ay karaniwang kapaki-pakinabang sa isang multi-homed host. (Tingnan ang -s flag para sa isa pang paraan upang gawin ito.)

-I

Gumamit ng ICMP ECHO sa halip ng UDP datagrams.

-m

Itakda ang max time-to-live (max na bilang ng mga hops) na ginagamit sa mga papalabas na packet ng probe. Ang default ay 30 hops (ang parehong default na ginagamit para sa mga koneksyon sa TCP).

-n

I-print ang mga address ng hop sa numerically sa halip na sa simbolo at ayon sa bilang (sine-save ang isang nameserver address-to-name lookup para sa bawat gateway na matatagpuan sa landas).

-p

Itakda ang base UDP port number na ginagamit sa probes (default ay 33434). Inaasahan ng Traceroute na walang nakikinig sa mga UDP port base sa base + nhops - 1 sa destination host (kaya ibabalik ang isang mensahe ng ICMP PORT_UNREACHABLE upang wakasan ang ruta ng pagsubaybay). Kung ang isang bagay ay nakikinig sa isang port sa hanay ng default, ang pagpipiliang ito ay maaaring magamit upang pumili ng hindi ginagamit na hanay ng port.

-r

Bypass ang normal na mga talahanayan ng routing at direktang ipadala sa isang host sa isang nakalakip na network. Kung ang host ay wala sa direktang naka-attach na network, ang isang error ay ibinalik. Maaaring magamit ang pagpipiliang ito upang magpadilipat ng isang lokal na host sa pamamagitan ng isang interface na walang ruta sa pamamagitan nito (hal., Matapos ang interface ay bumaba sa pamamagitan ng routed (8C)).

-s

Gamitin ang sumusunod na IP address (na karaniwan ay ibinibigay bilang isang IP number, hindi isang hostname) bilang source address sa mga papalabas na packet ng probe. Sa mga multi-homed host (mga may higit sa isang IP address), ang pagpipiliang ito ay maaaring gamitin upang pilitin ang source address na maging isang bagay maliban sa IP address ng interface na ipapadala ang probe packet. Kung ang address ng IP ay hindi isa sa mga address ng interface ng makina, ang isang error ay ibinalik at walang ipapadala. (Tingnan ang -i flag para sa isa pang paraan upang gawin ito.)

-t

Itakda ang uri-ng-serbisyo sa mga packet ng probe sa sumusunod na halaga (default zero). Ang halaga ay dapat isang decimal integer sa saklaw ng 0 hanggang 255. Ang pagpipiliang ito ay maaaring magamit upang makita kung ang iba't ibang uri ng serbisyo ay nagreresulta sa iba't ibang mga landas. (Kung hindi ka tumatakbo 4.4bsd, maaaring ito ay akademiko dahil ang mga normal na serbisyo sa network tulad ng telnet at ftp ay hindi nagpapahintulot sa iyo na makontrol ang TOS). Hindi lahat ng mga halaga ng TOS ay legal o makabuluhan - tingnan ang IP spec para sa mga kahulugan. Ang mga kapaki-pakinabang na halaga ay marahil ` -t 16 '(mababang pagkaantala) at` -t 8 ' (mataas na throughput).

-v

Maliwanag na output. Nakatanggap ang mga packet ng ICMP bukod sa TIME_EXCEEDED at UNREACHABLEs.

-w

Itakda ang oras (sa mga segundo) upang maghintay para sa isang tugon sa isang probe (default 5 sec.).

-x

I-toggle ang mga ip checksum. Karaniwan, pinipigilan nito ang traceroute mula sa pagkalkula ng mga ip checksum. Sa ilang mga kaso, maaaring i-overwrite ng operating system ang mga bahagi ng papalabas na packet ngunit hindi muling kalkulahin ang checksum (kaya sa ilang mga kaso ang default ay hindi kalkulahin ang mga checksums at paggamit -x ang nagiging sanhi ng mga ito na calcualted). Tandaan na ang mga checksums ay karaniwang kinakailangan para sa huling hop kapag gumagamit ng ICMP ECHO probes ( -I ). Kaya lagi silang kinakalkula kapag gumagamit ng ICMP.

-z

Itakda ang oras (sa milliseconds) upang i-pause sa pagitan ng probes (default 0). Ang ilang mga sistema tulad ng Solaris at mga routers tulad ng Ciscos rate limit icmp na mga mensahe. Ang isang mahusay na halaga upang gamitin sa mga ito na ito ay 500 (eg 1/2 segundo).

Sinusubukan ng programang ito na sumubaybay sa ruta ang isang IP packet ay susunod sa ilang host ng internet sa pamamagitan ng paglulunsad ng mga packet ng UDP probe na may maliit na ttl (oras upang mabuhay) at pagkatapos ay nakikinig para sa isang ICMP "oras lumampas" na sagot mula sa isang gateway. Simulan namin ang aming mga probes sa isang ttl ng isa at dagdagan ng isa hanggang sa makuha namin ang isang ICMP "port unreachable" (na nangangahulugan na nakuha namin ang "host") o pindutin ang isang max (na default sa 30 hops & maaaring mabago sa -m bandila). Tatlong probes (palitan ng -q flag) ay ipinadala sa bawat setting ng ttl at isang linya ay naka-print na nagpapakita ng ttl, address ng gateway at round trip na oras ng bawat probe. Kung ang mga sagot ng probe ay nagmumula sa iba't ibang mga gateway, ang address ng bawat sistema ng tumutugon ay ipi-print. Kung walang tugon sa loob ng 5 segundo. timeout interval (binago gamit ang -w flag), isang "*" ay naka-print para sa probe na iyon.

Hindi namin gusto ang patutunguhang host na iproseso ang mga packet ng UDP probe upang ang destination port ay nakatakda sa isang hindi posibleng halaga (kung ang ilang clod sa patutunguhan ay gumagamit ng halaga na iyon, maaari itong mabago gamit ang -p flag).

Ang isang sample na paggamit at output ay maaaring:

[yak 71]% traceroute nis.nsf.net. traceroute sa 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

Tandaan na ang mga linya 2 at 3 ay pareho. Ito ay dahil sa isang buggy kernel sa 2nd hop system - lbl-csam.arpa - na nagpapasa ng mga packet na may zero ttl (isang bug sa ibinahagi na bersyon ng 4.3BSD). Tandaan na dapat mong hulaan kung anong landas ang tinatanggap ng mga packet sa cross-country dahil ang NSFNet (129.140) ay hindi nagbibigay ng address-to-name na pagsasalin para sa NSSes nito.

Ang isang mas kawili-wiling halimbawa ay:

[yak 72]% traceroute allspice.lcs.mit.edu. traceroute sa 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 (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

Tandaan na ang mga gateway 12, 14, 15, 16 at 17 hops ang layo ay hindi nagpapadala ng ICMP "oras na lumampas" na mga mensahe o ipadala ang mga ito sa isang ttl masyadong maliit upang maabot sa amin. 14 - 17 ay tumatakbo ang MIT C Gateway code na hindi nagpapadala ng "oras na lumagpas" s. Alam lamang ng Diyos kung ano ang nangyayari sa 12.

Ang tahimik na gateway 12 sa itaas ay maaaring resulta ng isang bug sa 4. [23] BSD network code (at derivatives nito): 4.x (x <= 3) ay nagpapadala ng isang hindi maabot na mensahe gamit ang anumang ttl nananatili sa orihinal datagram. Dahil, para sa mga gateway, ang natitirang ttl ay zero, ang ICMP na "oras na lumampas" ay ginagarantiyahan na hindi ibalik ito sa amin. Ang pag-uugali ng bug na ito ay bahagyang mas kawili-wiling kapag lumilitaw ito sa destination system:

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!

Pansinin na may 12 "gateway" (13 ang huling destination) at eksakto ang huling kalahati ng mga ito ay "nawawala". Ang tunay na nangyayari ay ang rip (isang Sun-3 na tumatakbo na Sun OS3.5) ay gumagamit ng ttl mula sa aming darating na datagram bilang ttl sa tugon ng ICMP nito. Kaya, sumagot ang sagot sa landas ng pagbalik (na walang abiso na ipinadala sa kaninuman dahil hindi ipinadala ang ICMP para sa ICMP) hanggang sa usapan natin ang isang ttl na hindi bababa sa dalawang beses sa haba ng landas. Ibig sabihin, ang rip ay talagang 7 hops lamang. Ang isang tugon na babalik na may ttl ng 1 ay isang palatandaan na ang problemang ito ay umiiral. Nag-print ng "Traceroute" ang isang "!" pagkatapos ng oras kung ang ttl ay <= 1. Dahil ang mga vendor ay nagpadala ng maraming mga lipas na (DEC's Ultrix, Sun 3.x) o non-standard (HPUX) na software, inaasahan na makita ang problemang ito nang madalas at / o mag-ingat sa pagpili ng target host ng iyong probes.

Iba pang mga posibleng annotation matapos ang oras ! H ,! N , o ! P (host, network o protocol na hindi maabot),! S (nabigo ang pinagmumulan ng ruta),! F- (kinakailangan ng fragmentation - ang RFC1191 Path MTU Discovery value ay ipinapakita), ! X (pang-administratibo na pinagbawalan administratibo) ,! V (host precedence paglabag),! C (precedence cutoff sa epekto), o ! (ICMP unreachable code). Ang mga ito ay tinukoy ng RFC1812 (na supersedes RFC1716). Kung halos lahat ng probes ay nagreresulta sa ilang uri ng hindi maabot, ang traceroute ay magbibigay at mag-exit.

Ang programang ito ay inilaan para gamitin sa pagsubok, pagsukat, at pamamahala ng network. Dapat itong gamitin lalo na para sa manu-manong pagkakabukod ng kasalanan. Dahil sa pag-load na maaaring ipataw sa network, hindi maalam ang paggamit ng traceroute sa panahon ng normal na operasyon o mula sa mga awtomatikong script.

Tingnan din

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