"Traceroute" komanda yra naudojama Linux, kad būtų suplanuota kelionė, kurios metu informacijos paketas perduodamas iš jo šaltinio į paskirties vietą. "Traceroute" naudojamas vienas būdas nustatyti, ar duomenų praradimas atliekamas tinkle, o tai gali reikšti, kad mazgas yra žemyn.
Kadangi kiekvienas įrašo įrašas atspindi naują serverį arba maršrutizatorių tarp kilmės kompiuterio ir numatyto taikinio, peržiūrint traceroute nuskaitymo rezultatus taip pat galite nustatyti lėtesnius taškus, kurie gali pakenkti jūsų tinklo srautui.
Kaip tai veikia
Vertinant konkretų maršrutą, kurį einantis tinklas eina (arba rasti klaidingą vartai, kuris pašalina jūsų paketus), pateikiamos kelios trikčių šalinimo problemos. "Traceroute" naudoja IP protokolą laikas gyventi laukas, norint gauti ICMP TIME_EXCEEDED atsakymą iš kiekvieno vartai išilgai kelio į paskirties kompiuterį.
Vienintelis parametras, kurį turite įtraukti, kai vykdote komandą traceroute, yra paskirties vietos kompiuterio pavadinimas arba IP adresas.
Traceroute sintaksė ir jungikliai
Traceroute -dFInrvx -f first_ttl -g vartai -i Aš susiduriu -m max_ttl -p uostas -q užklausos -s src_addr -t tos -w laukti laiko -z pausemsecs priimančioji Packetlen
Nors pirmiau aprašyta, kaip traceroute komanda turi būti išrašyta, kad būtų galima dirbti komandinėje eilutėje, komandos veikimas ar išėjimas gali būti pakeisti, nurodant vieną ar daugiau neprivalomų jungiklių.
- -f: Nustatykite pradinį laiką, kurį naudosite pirmajam išeinančiam zondo paketui.
- -F: Nustatykite bitų "ne fragmentą".
- -d: Įgalinti lizdo lygio derinimą.
- -g: Nurodykite prarastą šaltinio maršruto šliuzą (maks. 8).
- -i: Nurodykite tinklo sąsają, kad gautumėte išeinančių zondų paketų šaltinio IP adresą. Paprastai tai naudinga tik daugiabučiams šeimininkams. (Žr-s pažymėkite kitą būdą tai padaryti.)
- -I: Naudokite ICMP ECHO, o ne UDP datagramas.
- -m: Nustatykite maksimalų laiką (didžiausią apynių skaičių), naudojamą išeinantys zondo paketai. Numatytasis yra 30 apynių (tas pats numatytasis naudojamas TCP jungtys).
- -n: Spausdinkite apgyvendinimo adresus skaitmenimis, o ne simbolinėmis ir skaitmenimis (išsaugo vardų prieglobos adreso adresą kiekvienam keliu rastų vartuvui).
- -p: Nustatykite zonduose naudojamą pagrindinį UDP prievado numerį (pagal nutylėjimą yra 33434). "Traceroute" tikisi, kad UDP uostuose nieko nebus klausoma bazė į bazė + nhops - 1 paskirties priimančioje (taigi ICMP PORT_UNREACHABLE pranešimas bus grąžintas nutraukti maršruto atsekimą). Jei kas nors klausosi numatytojo diapazono uoste, ši parinktis gali būti naudojama norint pasirinkti nenaudojamą uosto diapazoną.
- -r: Aplenkite įprastus maršrutų lenteles ir tiesiogiai siunčiamės prie prijungto tinklo šeimininko. Jei priimamasis nėra tiesiogiai prijungtame tinkle, grąžinama klaida. Ši parinktis gali būti naudojama ping vietinio kompiuterio per sąsają, kuri nėra per ją maršrutą (pvz., Po to, kai sąsaja buvo panaikinta nukreiptas (8C)).
- -s: Naudokitės tokiu IP adresu (kuris dažniausiai pateikiamas kaip IP numeris, o ne prieglobos vardas) kaip šaltinio adresą išeinantys zondų paketai. Daugelio namų kompiuteriuose (turintiems daugiau nei vieną IP adresą) ši parinktis gali būti naudojama norint, kad šaltinio adresas būtų kažkas kita nei sąsajos IP adresas, kuriuo siunčiamas zondo paketas. Jei IP adresas nėra vienas iš šio kompiuterio sąsajos adresų, grąžinama klaida ir niekas neišsiunčiamas. (Žr-i pažymėkite kitą būdą tai padaryti.)
- -t: Nustatyti paslaugos tipas į zondų paketus iki tokios vertės (numatytasis nulis). Vertė turi būti dešimtainis sveikasis skaičius nuo 0 iki 255. Ši parinktis gali būti naudojama norint sužinoti, ar skirtingų paslaugų tipai lemia skirtingus kelius. (Jei neturite 4.4bsd, tai gali būti akademinė, nes įprastos tinklo paslaugos, pvz., Telnet ir ftp, neleidžia jums valdyti TOS.) Ne visos TOS vertės yra teisėtos ar prasmingos - žr. Apibrėžimų IP specifikaciją. Galbūt naudingos reikšmės yra "-t 16 "(nedidelis vėlavimas) ir"-t 8 "(didelė našumas).
- -v: Verbose išvestis. Išvardyti įteikiami ICMP paketai, išskyrus TIME_EXCEEDED ir UNREACHABLE.
- -w: Nustatykite laiką (sekundėmis), kad lauktumėte atsakymo į zondą (pagal nutylėjimą - 5 sek.).
- -x: Įjunkite kontrolinių sumų IP. Paprastai tai neleidžia traceroute apskaičiuoti IP kontrolinių sumų. Kai kuriais atvejais operacinė sistema gali perrašyti siunčiamo paketo dalis, bet neperkvalifikuoti kontrolinės sumos; taigi kai kuriais atvejais numatytasis terminas yra nekoncentruoti sumų ir naudoti-x todėl jas reikia apskaičiuoti. Atkreipkite dėmesį, kad dažniausiai reikalaujama, kad kontrolinės sumos būtų naudojamos paskutiniam perkėlimui naudojant ICMP ECHO zondus (-I), todėl jie visada skaičiuojami naudojant ICMP.
- -z: Nustatykite laiko tarpą (milisekundėmis) tarp zondų (numatytasis 0). Kai kurios sistemos, tokios kaip "Solaris" ir maršrutizatoriai iš "Cisco", nustato limito ICMP pranešimus. Gera verte naudoti su tuo yra 500 (pvz., 1/2 sekundės).
Rezultatų interpretavimas
"Traceroute" apibūdina kelią, iš kurio internetinis kompiuteris seka IP paketą, paleidžiant UDP zondo paketus su mažu TTL (laikas gyventi), tada klausytis ICMP atsakymo laiko viršijimo iš vartai. Mes pradedame savo zondus su TTL vienu ir padidiname vieną, kol mes gauname ICMP "uostas nepasiekiamas" (tai reiškia, kad paketas atvyko į paskirties vietą) arba pasiekė maksimalią bandymų vertę, kuri pagal nutylėjimą yra 30 apynių ir gali būti pakeista su as-m vėliava
Kai traceroute vykdo, jis siunčia tris zondus kiekviename TTL nustatyme ir tada spausdina liniją prie konsolės, kurioje rodomas TTL, vartai ir kiekvieno zondo ištisinis laikas. Jei zondas atsako iš skirtingų šliuzų, atspausdinamas kiekvienos atsakomosios sistemos adresas. Jei per penkių sekundžių trukmės intervalą (pasikeitus su-w vėliava), zondas spausdinamas zondu.
Siekiant užkirsti kelią tam, kad paskirties kompiuteris būtų priblokštas apdorojant UDP zondų paketą, paskirties prievadas yra nustatytas kaip vertė, kuriai mažai tikėtina, kad šis įrenginys bus naudojamas. Jei tinklas ar paslauga paskirties vietoje naudoja šį prievadą, pakeiskite vertę naudodami-p vėliava
Mėginio naudojimas ir išvestis parodys rezultatus, panašius į šį pavyzdį:
jak 71% traceroute nis.nsf.net. traceroute į nis.nsf.net (35.1.1.48), 30 apynių maksimalus, 38 baitų paketas 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
Atkreipkite dėmesį, kad antroji ir trečioji eilutės yra tos pačios. Šis rezultatas yra susijęs su antrojo apynių sistemos lagamio branduoliu-lbl-csam.arpa, kuris perduoda paketus su nuline TTL (klaida paskirstytą versiją 4.3 BSD). Turite prisiminti, kokį kelią paketai imasi kitose šalyse, nes NSFNet (129.140) nepateikia adresatų sąrašo vertimų savo NSS.
Pats įdomus pavyzdys yra:
jak 72% traceroute allspice.lcs.mit.edu. traceroute į allspice.lcs.mit.edu (18.26.0.115), 30 hop 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
Atkreipkite dėmesį, kad 12, 14, 15, 16 ir 17 apsisukimų vartai neišsiųsti ICMP laiko viršijimo pranešimų arba siųsti juos su TTL per maža, kad pasiektų mus. Nuo 14 iki 17 linijos veikia "MIT C Gateway" kodas, kuris nesiunčia "laiko viršijimo" pranešimų.
Pirmiau pateiktame pavyzdyje esantis tylus vartai 12 gali būti klaidos, gautos iš 4. 23 BSD tinklo kodo ir jo išvestinių rezultatų: mašinos, kuriose veikia 4.3 kodas, ir anksčiau siunčia nepasiekiamą pranešimą naudodamiesi bet kokia TTL lieka originalioje datagramoje. Kadangi dėl vartuose likęs TTL yra nulis, ICMP "laikas viršytas" yra garantuotas, kad negrąžinsime mums. Šios klaidos elgesys yra šiek tiek įdomesnis, kai jis pasirodo paskirties sistemoje:
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!
Atkreipkite dėmesį, kad yra 12 "vartai" (13 yra galutinė paskirties vieta), o paskutinė jų dalis trūksta. Kas iš tikrųjų vyksta, yra serverio vardas supjaustyti ("Sun-3" su "Sun OS 3.5") naudoja TTL iš mūsų atvykusios datagramos kaip TTL savo ICMP atsakyme. Taigi, atsakymas užtruktų iš grįžimo kelio (be jokio pranešimo, kuris bus siunčiamas kam nors, nes ICMP nepasiųstas ICMP), kol mes bandysime su TTL, kuris yra bent du kartus ilgio kelio, kitaip tariant, kopija yra tik septyni apyniai toli.
Atsakymas, kuris grįžta su 1 TTL, yra raktas, kad ši problema egzistuoja. "Traceroute" atspausdina "!" po laiko, kai TTL yra mažesnis arba lygus 1. Kadangi pardavėjai siunčia daug pasenusią (DEC's Ultrix, Sun 3.x) arba nestandartinę (HPUX) programinę įrangą, tikimasi, kad dažnai pastebėsite šią problemą ir pasirenkate nukreipkite savo zondus į savo kompiuterį.
Kiti galimi komentarai po laikoH!, ! N, arba! P (priegloba, tinklas ar protokolas nepasiekiamas),! S (šaltinio maršrutas nepavyko)! F- (reikalingas suskaidymas - rodomas RFC1191 maršrutas "MTU Discovery"),! X (administraciniu požiūriu draudžiama)V! (pažeidimas priimančiojo viršenybei),! C (ankstesnio sumažinimo efektas), arba! (ICMP nepasiekiamas kodas). Šie kodai yra apibrėžti RFC1812, kuris pakeičia RFC1716. Jei beveik visi zondai sukelia tam tikrą nepasiekiamą kompiuterį, traceroute atsisakys ir išeis.
Ši programa skirta naudoti tinklo testavimui, matavimui ir valdymui. Jis turėtų būti naudojamas pirmiausia rankinio gedimo izoliacijai. Dėl apkrovos, kurią ji gali įtakoti tinkle, neteisinga naudoti traceroute normaliomis operacijomis ar automatiniais scenarijais.