Kuidas kasutada Linuxis käsku traceroute

Mida teada

  • Ainus parameeter, mille peate traceroute käsuga kaasama, on sihtkoha hostinimi või IP-aadress.
  • Alustage proove TTL-iga üks ja suurendage ühe võrra, kuni saate ICMP-pordi "puudumatu" või saavutate katsete maksimaalse väärtuse.

See artikkel hõlmab Linuxi masinate jaoks kohaldatavat traceroute'i teavet ja käskude lülitite selgitusi ning teavet tulemuste tõlgendamise kohta. Traceroute on kasutatakse Windowsis erinevalt.

Kuidas Traceroute töötab

Käsk traceroute kaardistab teekonna, mille teabepakett läbib selle allikast sihtkohta. Üks traceroute'i kasutusvõimalus on määrata kindlaks, millal kogu võrgus toimub andmete kadu, mis võib viidata sõlmele, mis on maas.

Sest iga hüpe kirjes peegeldab uut serverit või ruuterit lähtearvuti ja kavandatava vahel sihtmärk, tuvastab traceroute'i skannimise tulemuste ülevaatamine aeglased punktid, mis võivad teie võrku kahjustada liiklust.

Traceroute'i tõrkeotsing

Konkreetse marsruudi hindamine, mida võrguliiklus järgib (või teie paketid kõrvale heitva vale lüüsi leidmine), tekitab mitmeid tõrkeotsingu väljakutseid. Traceroute kasutab IP-protokolli

aeg elada väljale, et küsida ICMP TIME_EXCEEDED vastust igalt lüüsilt, mis on teel sihthostini.

Ainus parameeter, mille peate traceroute käsu täitmisel kaasama, on sihtkoha hostinimi või IP-aadress.

Traceroute'i süntaks ja lülitid

Ekraanipilt traceroute'i süntaksist Ubuntus
Traceroute'i süntaks Ubuntus.

Traceroute järgib järgmist üldist süntaksit:

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g gateway ] [ -i iface ] [ -m max_ttl ] [ -p port ] [ -q nqueries ] [ -s src_addr ] [ -t tos ] [ -w ooteaeg ] [ -z pausemsecs ] host [ packetlen ] 

Saate muuta käsu jõudlust või väljundit, määrates ühe või mitu valikulist lülitit.

Traceroute'i käsulülitid
Lüliti Selgitus
-f Määrake esialgne eluiga, mida kasutatakse esimeses väljuvas proovipaketis.
-F Määrake bitt "Ära killusta".
-d Luba pesa tasemel silumine.
-g Määrake lahtine allika marsruudi lüüs (maksimaalselt 8).
-i Väljuvate proovipakettide IP-aadressi allika hankimiseks määrake võrguliides. See on tavaliselt kasulik ainult mitme koduga hosti puhul. (Vaata -s liputage selleks muul viisil.)
- Mina Kasutage selle asemel ICMP ECHO-d UDP andmegrammid.
-m Määrake väljaminevates proovipakettides kasutatav maksimaalne kasutusaeg (maksimaalne hüpete arv). Vaikimisi on 30 hüpet (sama vaikeväärtus, mida kasutatakse TCP-ühenduste puhul).
-n Prindihüppe aadressid numbriliselt, mitte sümboolselt ja numbriliselt (salvestab nimeserveri aadressist nimeni otsingu iga teelt leitud lüüsi jaoks).
-lk Määrake proovides kasutatav UDP-pordi põhinumber (vaikimisi on 33434). Traceroute loodab, et UDP-portides ei kuula midagi alus juurde alus + nhops - 1 sihthostis (nii saadetakse marsruudi jälgimise lõpetamiseks sõnum ICMP PORT_UNREACHABLE). Kui midagi vaikevahemikus asuvas pordis kuulab, saab seda valikut kasutada kasutamata pordivahemiku valimiseks.
-r Minge mööda tavalistest marsruutimistabelitest ja saatke otse ühendatud võrgu hostile. Kui host ei ole otseselt ühendatud võrgus, tagastatakse tõrketeade. Seda suvandit saab kasutada kohaliku hosti pingimiseks liidese kaudu, millel puudub marsruut selle kaudu (nt pärast liidese katkestamist suunatakse(8C)).
-s Kasutage väljuvates proovipakettides lähteaadressina järgmist IP-aadressi (mis tavaliselt antakse IP-numbrina, mitte hostinimena). Mitme koduga hostidel (nendel, millel on rohkem kui üks IP-aadress) saab seda suvandit kasutada selleks, et sundida lähteaadressi olema midagi muud kui selle liidese IP-aadress, millele proovipakett saadetakse. Kui IP-aadress ei ole üks selle masina liidese aadressidest, tagastatakse tõrketeade ja midagi ei saadeta. (Vaata -i liputage selleks muul viisil.)
-t Määrake teenuse tüüp proovipakettides järgmise väärtuseni (vaikimisi null). Väärtus peab olema kümnendtäisarv vahemikus 0 kuni 255. Seda suvandit saab kasutada selleks, et näha, kas eri tüüpi teenuste tulemuseks on erinevad teed. (Kui te ei kasuta versiooni 4.4bsd, võib see olla akadeemiline, kuna tavalised võrguteenused nagu telnet ja ftp ei lase teil TOS-i juhtida.) Kõik TOS-i väärtused pole seaduslikud ega tähenduslikud – vaadake IP-spetsifikatsiooni määratlused. Kasulikud väärtused on tõenäoliselt `-t16" (väike viivitus) ja "-t8' (kõrge läbilaskevõime).
-v Paljusõnaline väljund. Loetletud on vastuvõetud ICMP-paketid peale TIME_EXCEEDED ja UNREACHABLE.
-w Määrake aeg (sekundites), mille jooksul oodatakse sondile vastust (vaikimisi 5 sekundit).
-x Lülitage IP kontrollsummad. Tavaliselt takistab see traceroute'il IP-kontrollsummasid arvutamast. Mõnel juhul on operatsioonisüsteem saab väljamineva paketi osi üle kirjutada, kuid ei arvuta kontrollsummat ümber; seega on mõnel juhul vaikimisi kontrollsummade arvutamata jätmine ja kasutamine -x põhjustab nende arvutamise. Pange tähele, et ICMP ECHO sondide kasutamisel nõutakse tavaliselt viimase hüppe jaoks kontrollsummasid (- Mina), nii et need arvutatakse alati ICMP kasutamisel.
-z Määrake proovide vahelise pausi aeg (millisekundites) (vaikeväärtus 0). Mõned süsteemid, nagu Solaris ja Cisco ruuterid, piiravad icmp-teateid. Hea väärtus selle kasutamiseks on 500 (nt 1/2 sekundit).

Tulemuste tõlgendamine

Traceroute kirjeldab teed, mida IP-pakett järgib Interneti-hostini, käivitades väikese TTL-iga UDP-proovipaketid ja kuulates seejärel lüüsist ICMP-vastust "aja ületamine". Alustage sonde TTL-iga üks ja suurendage ühe võrra, kuni saate ICMP porti, mis ei ole kättesaadav (mis tähendab, et pakett jõudis sihtkohta) või saavutab katsete maksimumväärtuse, mis on vaikimisi 30 hüpet ja mida saab muuta koos -m lipp.

Kui traceroute käivitub, saadab see iga TTL-i seadistusel kolm sondi ja seejärel prindib konsooli rea, mis näitab TTL-i, lüüsi aadressi ja iga sondi edasi-tagasi aega. Kui sondi vastused pärinevad erinevatest lüüsidest, prinditakse iga reageeriva süsteemi aadress. Kui traceroute ei saa viie sekundi jooksul vastust (muudetud -w lipp), prindib see selle sondi jaoks tärni.

Et UDP-proovipakettide töötlemine ei koormaks sihthosti, määrab traceroute sihtpordi väärtusele, mida seade tõenäoliselt ei kasuta. Kui sihtkoha võrk või teenus kasutab seda porti, muutke väärtust nupuga -lk lipp.

Traceroute'i tulemuste näited

Näidiskasutus ja väljund tagastavad sellele näitele sarnased tulemused:

[jakk 71]% traceroute nis.nsf.net.
traceroute to nis.nsf.net (35.1.1.48), max 30 hüpet, 38-baidine pakett
1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms
2 lilla-dmc. Berkeley. EDU (128.32.216.1) 39 ms 39 ms 19 ms
3 lilla-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

Teine ja kolmas rida on samad. See tulemus on seotud vigase tuumaga teises hüppesüsteemis – lbl-csam.arpa –, mis saadab paketid edasi null-TTL-iga (viga 4.3 BSD hajutatud versioonis). Peate ära arvama, millist teed paketid riigiüleselt liiguvad, kuna NSFNet (129.140) ei paku oma NSS-ide jaoks aadressist nimeni tõlkeid.

Vaikse lüüsi näide

Huvitavam näide on:

[jakk 72]% traceroute allspice.lcs.mit.edu.
traceroute aadressile allspice.lcs.mit.edu (18.26.0.115), max 30 humalat
1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
2 lilla-dmc. Berkeley. EDU (128.32.216.1) 19 ms 19 ms 19 ms
3 lilla-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

Pange tähele, et 12, 14, 15, 16 ja 17 hüppe kaugusel asuvad lüüsid kas ei saada ICMP ületatud aja sõnumeid või saadavad need meieni jõudmiseks liiga väikese TTL-iga. Ridadel 14–17 käitatakse MIT C Gateway koodi, mis ei saada ületatud aja sõnumeid.

Ülaltoodud näites olev vaikne lüüs 12 võib olla 4.[23]BSD võrgukoodi ja selle vea tagajärg. tuletised: masinad, mis kasutavad koodi 4.3 ja varasemat versiooni, saadavad kättesaamatu sõnumi, kasutades mis tahes TTL-i, mis jääb algne datagramm. Lüüside puhul on järelejäänud TTL null, ICMP "aeg ületatud" on garanteeritud, et see ei jõua meile tagasi.

Sihtkohasüsteemi vaikse lüüsi näide

Selle vea käitumine on veidi huvitavam, kui see kuvatakse sihtsüsteemis:

1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
2 lilla-dmc. Berkeley. EDU (128.32.216.1) 39 ms 19 ms 39 ms
3 lilla-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 rebimine. Berkeley. EDU (128.32.131.22) 59 ms! 39 ms! 39 ms!

Pange tähele, et on olemas 12 "lüüsi" (13 on lõppsihtkoht) ja viimane pool neist puudub. Mis tegelikult toimub, on see, et server sai nime Puhka rahus (Sun-3, milles töötab Sun OS 3.5) kasutab meie saabuva datagrammi TTL-i TTL-ina oma ICMP vastuses. Seega aegub vastus tagasiteel (kellelegi ei saadeta märguannet, kuna ICMP-de jaoks ei saadeta ICMP-sid) kuni me proovime TTL-iga, mis on vähemalt kaks korda pikem – teisisõnu, rippimine on tegelikult ainult seitse hüpet ära.

Vastus, mille TTL on 1, viitab selle probleemi olemasolule. Traceroute prindib a! pärast aja möödumist, kui TTL on väiksem kui 1 või sellega võrdne. Kuna müüjad tarnivad palju vananenud (DEC Ultrix, Sun 3.x) või mittestandardset (HPUX) tarkvara, eeldage, et näete seda probleemi sageli ja valite hoolikalt oma sondide sihtrühma.

Muud võimalikud märkused pärast aega on !H, !N, või !P (host, võrk või protokoll kättesaamatu), !S (allika marsruut ebaõnnestus), !F- (vajalik killustatus – kuvatakse RFC1191 Path MTU Discovery väärtus), !X (suhtlus halduslikult keelatud), !V (hosti prioriteedi rikkumine), !C (kehtib ülimuslikkuse piirang) või ! (ICMP kättesaamatu kood). Need koodid on määratletud RFC1812-ga, mis asendab RFC1716. Kui peaaegu kõigi sondide tulemuseks on mingi kättesaamatu host, loobub traceroute ja väljub.

See programm on mõeldud kasutamiseks võrgu testimisel, mõõtmisel ja haldamisel. Seda tuleks kasutada peamiselt käsitsi rikkeisolatsiooniks. Kuna see võib võrgule avaldada koormust, pole traceroute'i kasutamine tavatoimingute või automatiseeritud skriptide puhul mõistlik.