Traceroute komanda tiek izmantota Linux, lai kartētu ceļojumu, ko informācijas pakete apņemas no tā avota līdz galamērķim. Viena traceroute izmantošana ir noteikt, kad datu zudumi rodas tīklā, un tas varētu nozīmēt, ka mezgls ir uz leju.
Tā kā katrs ieraksts atspoguļo jaunu serveri vai maršrutētāju starp noteikto datoru un paredzēto mērķi, traceroute skenēšanas rezultātu pārskatīšana arī ļauj noteikt lēnus punktus, kas var nelabvēlīgi ietekmēt tīkla trafiku.
Kā tas strādā
Novērtējot konkrēto maršrutu, pēc kura tiek izmantots tīkla trafiks (vai atrast miscreant vārteju, kas atbrīvo jūsu paketes), ir vairāki traucējummeklēšanas problēmas. Traceroute izmanto IP protokolu laiks dzīvot lai pieprasītu ICMP TIME_EXCEEDED atbildi no katras vārtejas gar ceļu uz galamērķa resursdatoru.
Vienīgais parametrs, kas jums jāietver, izpildot komandu traceroute, ir galamērķa resursdatora nosaukums vai IP adrese.
Traceroute sintakse un slēdži

traceroute -dFInrvx -f first_ttl -g vārteja -i iface -m max_ttl -p osta -q pieprasījumi -s src_addr -t tos -w pagaidiet laiku -z pausemsecs uzņēmēja packetlen
Lai gan iepriekš minēts, kā traceroute komandai rakstīt, lai darbotos komandrindā, komandas darbību vai izvadi var mainīt, norādot vienu vai vairākus izvēles slēdžus.
- -f: Iestatiet sākuma laiku, ko izmanto pirmajā izejošajā zondes paketē.
- -F: Iestatiet mazo fragmentu "neatšķeļ".
- -d: Iespējot ligzdas līmeņa atkļūdošanu.
- -g: Norādiet vaļēju avota maršruta vārtu (maksimums 8).
- -i: Norādiet tīkla interfeisu, lai iegūtu avota IP adresi izejošo zondi paketēm. Tas parasti ir noderīgi tikai daudzu māju saimniekam. (Skat-s karodziņš ir vēl viens veids, kā to izdarīt.)
- -I: Izmantojiet ICMP ECHO, nevis UDP datagrammas.
- -m: Iestatiet maksimālo dzīvotspēju (maksimālais apiņu skaits), ko izmanto izejošajās zondi paketēs. Noklusējums ir 30 apiņi (tas pats noklusējums tiek izmantots TCP savienojumiem).
- -n: Drukas apraides adreses drukā, nevis simboliski un skaitliski (saglabā nosaukumu adreses adreses vārdu meklēšanu katrai ceļu atrastā vārtejā).
- -p: Iestatiet pamatjoslas UDP porta numuru, ko izmanto zondēs (pēc noklusējuma ir 33434). Traceroute cer, ka nekas klausās UDP portu bāze uz bāze + nhops - 1 galamērķa uzņēmējā (tādējādi ICMP PORT_UNREACHABLE ziņa tiks atgriezta, lai pārtrauktu maršruta izsekošanu). Ja kāds klausās noklusējuma diapazona portu, šo opciju var izmantot, lai izvēlētos neizmantoto portu diapazonu.
- -r: Apietas parastās maršrutēšanas tabulas un nosūta tieši uzņēmējai pieslēgtajā tīklā. Ja resursdators nav tieši pieslēgts tīkls, tiek atgriezta kļūda. Šo opciju var izmantot, lai pingītu vietējo saimniekdatoru, izmantojot saskarni, kurai nav maršruta (piemēram, pēc tam, kad interfeiss tika izlaists maršrutēts (8C)).
- -s: Izmantojiet šādu IP adresi (ko parasti norāda kā IP numuru, nevis saimniekdatora nosaukumu) kā avota adresi izejošo zondu paketēs. Daudzstāvu saimniekiem (tiem, kuriem ir vairāk nekā viena IP adrese) šī opcija var tikt izmantota, lai piespiestu avota adresi kaut ko citu, nevis saskarnes IP adresi, uz kuru zondes pakete tiek nosūtīta. Ja IP adrese nav viena no šīs ierīces saskarnes adresēm, tiek atgriezta kļūda un nekas nav nosūtīts. (Skat-i karodziņš ir vēl viens veids, kā to izdarīt.)
- -t: Iestatiet pakalpojuma veids sūkņa paketēs uz šādu vērtību (noklusējuma nulle). Vērtībai jābūt decimālā skaitlim no 0 līdz 255. Šo opciju var izmantot, lai redzētu, vai dažādi pakalpojumu veidi rada dažādus ceļus. (Ja jūs neizmantojat 4.4bsd, tas var būt akadēmisks, jo parastie tīkla pakalpojumi, piemēram, telnet un ftp, neļauj jums kontrolēt TOS.) Ne visas TOS vērtības ir likumīgas vai jēgpilnas - skatiet definīciju IP spec. Drošas vērtības, iespējams, ir "-t 16 "(ar zemu kavēšanos) un"-t 8 "(augsta caurlaidspēja).
- -v: Verbose izeja. Ir saņemti ICMP paketes, kas nav TIME_EXCEEDED un UNREACHABLE.
- -w: Iestatiet laiku (sekundēs), lai gaidītu atbildi uz zondi (pēc noklusējuma 5 sekundes).
- -x: Pārslēgt IP kontrolsummas. Parasti tas neļauj Traceroute aprēķināt IP kontrolsummas. Dažos gadījumos operētājsistēma var pārsūtīt izejošo pakešu daļas, bet pārrēķināt kontrolsummu; tādējādi dažos gadījumos noklusējums nav aprēķināt kontrolsummas un izmantot-x liek tos aprēķināt. Ņemiet vērā, ka, izmantojot ICMP ECHO zondes, parasti ir nepieciešamas kontrolsummas pēdējam apgriezienam (-I), tāpēc tos vienmēr aprēķina, izmantojot ICMP.
- -z: Iestatiet laiku (milisekundēs), lai pārtrauktu starp zondēm (noklusējums 0). Dažas sistēmas, piemēram, Solaris un maršrutētāji no Cisco, ierobežo limitu ICMP ziņojumus. Laba vērtība ar to ir 500 (piemēram, 1/2 sekundes).
Rezultātu interpretēšana
Traceroute izklāsta ceļu, pēc kura IP paketē seko interneta resursdators, uzsākot UDP zonde paketes ar mazu TTL (laiks, lai dzīvotu), pēc tam klausoties ICMP atbildi par laika pārsniegšanu no vārtejas. Mēs sākam mūsu zondes ar TTL vienu un palielināt par vienu, līdz mēs saņemam ICMP "ports nav sasniedzams" (tas nozīmē, ka pakete ieradās galamērķī) vai sasniegtu maksimālo mēģinājumu vērtību, kas pēc noklusējuma ir 30 apiņu, un to var mainīt ar the-m karogs
Kad traceroute izpilda, tas nosūta trīs zondes katrā TTL iestatījumā un pēc tam izdrukā līniju konsolei, kurā ir redzams TTL, vārtejas adrese un katra zondes apstāšanās laiks. Ja zondes atbildes nāk no dažādiem vārtiem, tiek izdrukāta katras atbildes sistēmas adrese. Ja piecu sekunžu pārtraukuma intervālā nav atbildes (mainīts ar-w karodziņš), šim zondei tiek izdrukāts zvaigznīte.
Lai izvairītos no tā, ka galamērķa resursdators tiek pārslogots ar UDP zondeņu pakešu apstrādi, galamērķa ostā ir iestatīta vērtība, kuru, visticamāk, neizmantos šī ierīce. Ja tīkls vai pakalpojums galamērķī izmanto šo portu, mainiet vērtību, izmantojot-p karogs
Parauga izmantošana un izlaide atgriež rezultātus, kas līdzīgi šim piemēram:
jaka 71% traceroute nis.nsf.net. traceroute uz nis.nsf.net (35.1.1.48.), 30 apiņu maksimumu, 38 baitu paketi 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
Ņemiet vērā, ka otrā un trešā rinda ir vienāda. Šis rezultāts attiecas uz buggy kodolu otrajā apiņu sistēmā-lbl-csam.arpa, kas pārsūta paketes ar nulli TTL (kļūda izplatītajā 4.3 BSD versijā). Jums ir jāzina, kāds ceļš paciņas izmanto starppilsētu, jo NSFNet (129.140.) Nesniedz adresātu vārdu tulkojumus savām NSS.
Vēl interesants piemērs ir:
jaka 72% traceroute allspice.lcs.mit.edu. traceroute uz allspice.lcs.mit.edu (18.26.0.115), 30 apiņu 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
Ņemiet vērā, ka 12, 14, 15, 16 un 17 apļa vārtejas neiesniedz ICMP ziņojumu pārsniegšanas laiku vai nosūta tos ar TTL, kas ir pārāk mazs, lai to sasniegtu. No 14. līdz 17. līnijai tiek izmantots MIT C vārtejas kods, kas nesūta "pārsniegto laika" ziņojumus.
Iepriekš minētajā piemērā klusā vārteja 12 var būt kļūdas rezultāts 4. protokolā. 23 BSD tīkla kods un tā atvasinājumi: mašīnas, kurās darbojas 4.3 kods, un agrāk nosūta nepieejamu ziņojumu, izmantojot jebkādu TTL paliek sākotnējā datagrammā. Tā kā attiecībā uz vārteņiem atlikušais TTL ir nulle, ICMP "pārsniegtais laiks" ir garantēts, ka tas nenozīmē to atpakaļ mums. Šīs kļūdas uzvedība ir nedaudz vairāk interesanta, kad tā parādās galamērķa sistēmā:
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 jaunkundze ! 39 ms! 39 ms!
Ievērojiet, ka ir 12 "vārti" (13 ir galamērķis), un pēdējā no tām nav. Kas patiešām notiek, ir tas, ka serveris ir nosaukts kraķis (Sun-3, kurā darbojas Sun OS 3.5), izmantojot mūsu ienākošo datagrammu, izmantojot mūsu ICMP atbildi, izmanto TTL. Tātad, atbilde aizkavēsies no atgriešanās ceļa (bez paziņojuma nosūtīšanas nevienam, jo ICMP netiek nosūtīti ICMP), kamēr mēs pārbaudām TTL, kas ir vismaz divreiz lielāks par ceļa garumu - citiem vārdiem sakot, katram ir tikai septiņi apiņi prom.
Atbilde, kas atgriežas ar TTL 1, ir pavediens, ka šī problēma pastāv. Traceroute izdrukā "!" pēc laika, kad TTL ir mazāks vai vienāds ar 1. Tā kā pārdevēji nogādā daudz novecojušo (DEC's Ultrix, Sun 3.x) vai nestandarta (HPUX) programmatūras, sagaidīt šo problēmu bieži apskatīt un rūpēties, izvēloties mērķa saimnieks jūsu zondes.
Citas iespējamās anotācijas pēc laikaH!, ! N, vai! P (resurss, tīkls vai protokols nav sasniedzams),! S (avota maršruts neizdevās),! F- (nepieciešama fragmentācija - tiek parādīts RFC1191 ceļš MTU Discovery vērtība),! X (administratīvi aizliegta saziņa)V! (uzņēmēja prioritātes pārkāpums)! C (prioritātes pārtraukšana ir spēkā) vai! (ICMP nepieejams kods). Šie kodi ir definēti RFC1812, kas aizstāj RFC1716. Ja gandrīz visi zondes izraisa kādu nepieejamu saimniekdatoru, traceroute pamet un iziet.
Šī programma ir paredzēta izmantošanai tīkla testēšanā, mērīšanā un vadīšanā. Tas galvenokārt jāizmanto manuāla defekta izolēšanai. Sakarā ar slodzi, ko tā varētu uzlikt tīklam, parastās darbībās vai automatizētos skriptos nav ieteicams izmantot traceroute.













