Traceroute-komentoa käytetään Linuxissa kartoittamaan matka, jonka pakettitieto sitoutuu lähteestään kohteeseen. Yksi käyttö traceroute: iin on etsiä, kun datan häviäminen tapahtuu koko verkossa, mikä voi merkitä solmua, joka on alaspäin.
Koska jokainen tallennustila heijastaa uutta palvelinta tai reititintä alkuperäisen PC: n ja aiotun kohteen välillä, traceroute-skannauksen tulosten avulla voit myös tunnistaa hitaita pisteitä, jotka voivat vaikuttaa haitallisesti verkkoliikenteeseen.
Kuinka se toimii
Tietyn reitin arvioiminen, jota verkkoliikenne seuraa (tai löytää vääränlainen yhdyskäytävä, joka hylkää paketit), tuo esiin useita vianmäärityshaasteita. Traceroute käyttää IP-protokollaa aika elää kenttä pyytää ICMP: n TIME_EXCEEDED-vastausta kullekin yhdyskäytävälle polku kohti kohde-isäntä.
Ainoa parametri, joka sinun on syötettävä traceroute-komennon suorittamiseen, on vastaanottajan isäntänimi tai IP-osoite.
Tracerouten syntaksi ja kytkimet
traceroute -dFInrvx -f first_ttl -g portti -i minä kohtaan -m max_ttl -p portti -q nqueries -S src_addr -t tos -W odotusaika -z pausemsecs isäntä packetlen
Vaikka edellä on, miten traceroute-komento on kirjoitettava komentorivin työskentelyyn, komennon suorituskykyä tai tuottoa voidaan muuttaa määrittämällä yksi tai useampi valinnainen kytkin.
- -f: Aseta ensimmäinen lähtevä anturi-paketti ensimmäistä aikaväliä kohden.
- -F: Aseta "Älä fragmentaatiota".
- -d: Ota pistorasian virheenkorjaus käyttöön.
- -g: Määritä irrallisena lähdelaitteen yhdyskäytävä (enintään 8).
- -i: Määritä verkkoliitäntä saadaksesi lähdepisteen IP-osoite lähteville koetinkäskyille. Tämä on tavallisesti hyödyllistä vain monen kotikäyttäjän palvelimelle. (Katso-S lippu toista tapaa tehdä tämä.)
- -I: Käytä ICMP ECHOa UDP-datagrammien sijaan.
- -m: Määritä lähtevien anturipakettien enimmäislähetys-aika (suurin humalan määrä). Oletusarvo on 30 humalaa (sama oletusarvo TCP-yhteyksissä).
- -n: Tulosta hop-osoitteet numeerisesti pikemminkin kuin symbolisesti ja numeerisesti (tallentaa nimipalvelimen osoitekohtaisen haun kullekin reitille löydettävälle yhdyskäytävälle).
- -p: Määritä anturissa käytettävän pohjaisen UDP-portin numero (oletusarvo on 33434). Traceroute toivoo, ettei mikään kuuntele UDP-portteilla pohja että base + työpajat - 1 (siis ICMP PORT_UNREACHABLE -viesti palautetaan reitin jäljittämisen lopettamiseksi). Jos jotain kuuntelee porttia oletusalueella, tätä asetusta voidaan käyttää valitsemaan käyttämätön porttialue.
- -r: Ohita normaalit reititystaulut ja lähetä suoraan isäntään liitetyssä verkossa. Jos isäntä ei ole suoraan liitetyssä verkossa, virhe palautetaan. Tätä vaihtoehtoa voidaan käyttää paikallisen isännän pingoittamiseen rajapinnan kautta, jolla ei ole reittiä sen läpi (esim. reititetään (8C)).
- -S: Käytä seuraavassa IP-osoitteessa (joka yleensä annetaan IP-numerona, ei isäntänimenä) lähdesignaalina lähtevissä koettimissa. Usean kotikäyttäjän (joilla on useampi kuin yksi IP-osoite), tätä vaihtoehtoa voidaan käyttää pakottamaan lähdeosoite muuksi kuin rajapinnan IP-osoite, johon koetinpaketti lähetetään. Jos IP-osoite ei ole tämän laitteen käyttöliittymän osoitteita, virhe palautetaan, eikä mitään lähetetä. (Katso-i lippu toista tapaa tehdä tämä.)
- -T: Aseta tyyppi-of-service koetinpaketeissa seuraavaan arvoon (oletusarvo nolla). Arvon on oltava desimaaliluku 0 - 255. Tämän vaihtoehdon avulla voidaan nähdä, ovatko erilaiset palvelutyypit eri polkuja. (Jos et käytä 4.4bsd: tä, tämä voi olla akateeminen, koska tavalliset verkkopalvelut, kuten telnet ja ftp, eivät anna sinun hallita TOS: ää.) Kaikki TOS: n arvot ovat laillisia tai merkityksellisiä - katso määrittelyjen IP-spec. Hyödyllisiä arvoja ovat todennäköisesti `-t 16 '(pieni viive) ja `-t 8 "(suuri läpäisykyky).
- -v: Verbose output. Vastaanotetut ICMP-paketit, jotka ovat muita kuin TIME_EXCEEDED ja UNREACHABLE ovat luettelossa.
- -W: Määritä aika (sekunteina) odottaa vastausta anturiin (oletus 5 sekuntia).
- -x: Vaihda IP-tarkistussummat. Normaalisti tämä estää tracerouten laskemasta IP-tarkistussummia. Joissakin tapauksissa käyttöjärjestelmä voi korvata lähtevän paketin osia, mutta ei laske tarkistussummaa uudelleen; Näin ollen joissakin tapauksissa oletusarvo ei ole laskea tarkistussummia ja käyttöä-x aiheuttaa niiden laskemisen. Huomaa, että tarkistussummat vaativat tavallisesti viimeistä hopia käytettäessä ICMP ECHO-koettimia (-I), joten ne lasketaan aina ICMP: n käytön aikana.
- -z: Aseta aika (millisekunteina) keskeyttämään koettimet (oletusarvo 0). Jotkin järjestelmät, kuten Solaris ja Ciscon reitittimet, nopeusrajoitukset icmp -viestejä. Hyvä arvo tässä käytettäväksi on 500 (esim. 1/2 sekunti).
Tulosten tulkinta
Traceroute hahmotellaan tietä, jonka IP-paketti seuraa Internet-isäntänä käynnistämällä UDP-koetinpaketit pienellä TTL: llä (aika elää) ja sitten kuuntelemalla ICMP: n "aika ylitetty" vastaus yhdyskäytävästä. Aloitamme koettelemme yhden TTL: n kanssa ja kasvatamme yhdellä, kunnes saamme ICMP: n "portin, joka ei ole tavoitettavissa" (mikä tarkoittaa, että paketti saapui määränpäähän) tai lyö yrityksiä, joiden oletusarvo on 30 humalaa ja jotka voidaan muuttaa-m lippu.
Kun traceroute suoritetaan, se lähettää kolme koetinta jokaiselle TTL-asetukselle ja tulostaa sitten rivin konsoliin, joka näyttää TTL: n, yhdyskäytävän osoitteen ja jokaisen koettimen kierrosmatkan. Jos koettimen vastaukset tulevat eri yhdyskäytäväistä, kunkin vastaavan järjestelmän osoite tulostuu. Jos viiden sekunnin aikakatkaisun aikana ei ole vastausta (vaihdetaan painikkeella-W lippu), tähti on painettu kyseiselle koettimelle.
Jotta estettäisiin, että kohde-isäntä joutuu UDP-koetinpakettien käsittelyyn, kohdeportti asetetaan arvoon, jota tämä laite ei todennäköisesti käytä. Jos verkko tai palvelu määränpäässä käyttää tätä porttia, muuta arvoa käyttäen-p lippu.
Näytteen käyttö ja tuotos palauttavat vastaavanlaiset tulokset kuin tässä esimerkissä:
yak 71% traceroute nis.nsf.net. traceroute osoitteeseen nis.nsf.net (35.1.1.48), 30 hops max, 38 tavun paketti 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
Huomaa, että toinen ja kolmas rivi ovat samat. Tämä tulos liittyy toiseen hop-järjestelmään (lbl-csam.arpa) olevaan bugiseen ytimeen, joka lähettää paketit nolla TTL: llä (bugi jaetun version 4.3 BSD: ssä). Sinun on arvata, mitä pakettia polku kulkee rajat ylittäviä maita, koska NSFNet (129.140) ei toimita NSS-osoitteita osoitekirjaan.
Mielenkiintoisempi esimerkki on:
Jak 72% traceroute allspice.lcs.mit.edu. traceroute allspice.lcs.mit.edu (18.26.0.115), 30 hopia 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
Huomaa, että yhdyskäytävät 12, 14, 15, 16 ja 17: ssa eivät pääse lähettämään ICMP: n "ylittämättömiä" viestejä tai lähetä ne TTL: llä, joka on liian pieni tavoittamaan meidät. Rivit 14 - 17 ovat käynnissä MIT C Gateway -koodissa, joka ei lähetä "ylittyneitä" viestejä.
Yllä olevassa esimerkissä oleva hiljainen yhdyskäytävä 12 voi olla BSD-verkko-koodin ja sen johdannaisten 4. 23 -virheestä johtuvat virheet: Koneet, joissa on 4.3-koodi ja aiemmin lähettävät saavuttamatonta viestiä käyttäen mitä tahansa TTL: ää on jäljellä alkuperäisessä datagrammissa. Koska yhdyskäytävien kohdalla jäljellä oleva TTL on nolla, ICMP: n "aika ylittyy" takaa, että se ei palauta meille. Tämän virheen käyttäytyminen on hieman mielenkiintoisempaa, kun se näkyy kohdetietokoneessa:
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.131.22) 39 ms 59 ms 39 ms 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 rip.Berkeley.EDU (128.32.131.22) 59 neiti ! 39 ms! 39 ms!
Huomaa, että on olemassa 12 "yhdyskäytäviä" (13 on lopullinen määräpaikka), ja viimeinen puolisko puuttuu. Tosiasiassa tapahtuu, että palvelin on nimetty lepää rauhassa (Sun-3-käynnissä oleva Sun OS 3.5) käyttää tulevaa datagrammiaan TTL: n TTL: nä ICMP-vastauksessaan. Joten, vastaus kestää paluureittiä (ilman ilmoitusta lähetetään kenellekään, koska ICMP: itä ei lähetetä ICMP: lle), kunnes me tutkimme TTL: llä, joka on vähintään kaksinkertainen polun pituuteen eli toisin sanoen vain seitsemän hoppu pois.
Vastaus, joka palaa TTL: llä 1, on merkki siitä, että tämä ongelma on olemassa. Traceroute tulostaa "!" sen jälkeen, kun TTL on pienempi tai yhtä suuri kuin 1. Koska toimittajat lähettävät paljon vanhentuneita (DEC: n Ultrix, Sun 3.x) tai epätyypillisiä (HPUX) -ohjelmistoja, he odottavat näkevän tämän ongelman usein ja huolehtivat siitä, kohdeta isäntä teidän koettimia.
Muut mahdolliset merkinnät ajan kuluttua! H, ! N, tai! P (isäntä, verkko tai protokolla saavuttamatta),! S (lähdereitti epäonnistui),! F- (fragmentoituminen tarvitaan - RFC1191-polun MTU Discovery -arvo näkyy),! X (viestintä hallinnollisesti kielletty),! V (vastaanottajan etusija -rikkomus),! C (etusija rajaus voimassa), tai! (ICMP tavoittamaton koodi). Nämä koodit määritellään RFC1812: llä, joka korvaa RFC1716: n. Jos lähes kaikki koettimet johtavat jonkinlaiseen saavuttamattomaan isäntään, traceroute luopuu ja poistuu.
Tämä ohjelma on tarkoitettu käytettäväksi verkon testauksessa, mittauksessa ja hallinnassa. Sitä tulisi käyttää ensisijaisesti manuaaliseen vikasietoon. Kuorman takia se voisi asettaa verkkoon, on viisasta käyttää traceroutea tavanomaisten toimintojen tai automaattisten komentosarjoiden aikana.