A traceroute parancsot Linuxon használják, hogy feltérképezzék az információcsomag által a forrásból a cél felé irányuló utazást. A traceroute egyik felhasználási módja az, ha az adatvesztés az egész hálózaton keresztül történik, ami csomópontot jelenthet.
Mivel a rekord minden egyes hopja új kiszolgálót vagy útválasztót tükröz a kiinduló számítógép és a célcím között, a traceroute-vizsgálat eredményeinek áttekintése lehetővé teszi a lassú pontok azonosítását, amelyek hátrányosan érinthetik a hálózati forgalmat.
Hogyan működik
A hálózati forgalmat követõ konkrét útvonal (vagy a hibás átjáró megtalálása, amely eldobja a csomagokat) számos hibaelhárítási kihívást jelent. A Traceroute az IP protokollt használja itt az ideje élni mezőt, hogy kérjen ICMP TIME_EXCEEDED választ minden egyes átjárótól a célállomás elérési útján.
Az egyetlen paraméter, amelyet a traceroute parancs végrehajtása során fel kell tüntetni, a célállomás gazdája vagy IP címe.
Traceroute szintaxis és kapcsolók
traceroute -dFInrvx -f first_ttl -g átjáró -én szembesülök -m max_ttl -p kikötő -q nqueries -s src_addr -t tos -w várakozási idő -z pausemsecs házigazda packetlen
Míg a fentiek szerint a traceroute parancsot ki kell írni, hogy a parancssorban dolgozhasson, a parancs teljesítményét vagy kimenetét egy vagy több opcionális kapcsoló megadásával lehet megváltoztatni.
- -f: Állítsa be az első kimenő szonda csomagban használt kezdeti időt.
- -F: Állítsa be a "nem töredezett" bitet.
- -d: Az aljzatszintű hibakeresés engedélyezése.
- -g: Adja meg a laza forrásút átjárót (max. 8).
- -én: Adja meg a hálózati felületet, hogy megkapja a kimenő szonda csomagok forrás IP-címét. Ez általában csak egy többszörös házigazdában használható. (Lásd a-s zászlót más módon erre.)
- -ÉN: Használjon ICMP ECHO helyett UDP datagramokat.
- -m: Állítsa be a kimenő mérőcsomagok maximális időtartamát (maximális számú komló). Az alapértelmezett érték 30 komló (ugyanaz az alapértelmezés a TCP kapcsolatokhoz).
- -n: Nyomtasson a hop-címeket numerikusan, nem pedig szimbolikusan és numerikusan (mentse a névszerver cím-név szerinti keresést az elérési útvonalon található minden egyes átjáróra).
- -p: Állítsa be a szondákban használt alap UDP port számát (alapértelmezett: 33434). A Traceroute reméli, hogy semmi sem hallgat az UDP-portokon bázis nak nek bázis + foglalkozások - 1 (tehát az ICMP PORT_UNREACHABLE üzenet visszakerül az útvonal nyomon követéséhez). Ha valami az alapértelmezett tartományban lévő porton hallgat, akkor ezt az opciót használhatjuk egy nem használt porttartomány kiválasztására.
- -r: Bypass a normál útválasztási táblázatok és küldje közvetlenül a gazdagép egy csatolt hálózaton. Ha a gazdagép nincs közvetlenül csatlakoztatott hálózaton, hibaüzenetet kap. Ezt az opciót használhatja arra, hogy egy helyi gazdagépet olyan felületen pingezze le, amelyen nincs útvonal (pl. vezetékrendszerek (8C)).
- -s: Használja a következő IP-címet (amely általában IP-számként, nem gazdanévként van megadva), mint a forráskód a kimenő szonda csomagokban. Több címzett házon (több IP-cím esetén) ez a lehetőség arra szolgál, hogy a forráscímet másnak kell tekinteni, mint az interfész IP címét, amelyre a szonda csomagot küldi. Ha az IP-cím nem tartozik a készülék interfészcímek közé, hibaüzenet jelenik meg, és semmit sem küldenek. (Lásd a-én zászlót más módon erre.)
- -t: Állítsa be type-of-service a szonda csomagokban a következő értékre (alapértelmezett nulla). Az értéknek decimális egész számnak kell lennie a 0-tól 255-ig terjedő tartományban. Ezzel az opcióval lehet ellenőrizni, hogy a különböző típusú szolgáltatások eredményesek-e különböző utakon. (Ha nem futtatod a 4.4bsd-t, ez lehet tudományos, hiszen a normál hálózati szolgáltatások, mint a telnet és az ftp, nem engedik Önnek a TOS vezérlését.) A TOS nem minden értéke jogi vagy értelmes - lásd a meghatározások IP specifikációját. Hasznos értékek valószínűleg `-t 16 '(alacsony késleltetés) és `-t 8 "(nagy áteresztőképességű).
- -v: Verbose kimenet. A TIME_EXCEEDED és az UNREACHABLE-tól eltérő, fogadott ICMP-csomagok szerepelnek.
- -w: Állítsa be az időt (másodpercben), hogy várjon a szondára adott válaszra (alapértelmezett 5 másodperc).
- -x: Az IP-ellenőrzőösszegek átváltása. Normális esetben ez megakadályozza a traceroute kiszámítását az IP-ellenőrző összegekből. Bizonyos esetekben az operációs rendszer felülírhatja a kimenő csomag egyes részeit, de nem tudja újraszámolni az ellenőrző összeget; így bizonyos esetekben az alapértelmezés az, hogy nem számolják le a ellenőrző összegeket és a felhasználást-x számítja ki őket. Ne feledje, hogy az ICMP ECHO próbák használatakor az utolsó ugráshoz szükség van ellenőrző összegekre (-ÉN), így az ICMP használatakor mindig kiszámításra kerülnek.
- -z: Állítsa be az időt (milliszekundumban) a szondák közötti szüneteltetéshez (alapértelmezett 0). Egyes rendszerek, mint például a Solaris és a routerek a Cisco-ból, a sebességkorlátozó icmp üzeneteket. Ennek megfelelő értéket 500 (például 1/2 másodperc) használhat.
Az eredmények értelmezése
A Traceroute körvonalazza azt az utat, amelyen az IP-csomag az internetes fogadóhoz vezet, ha UDP-próbacsomagokat indít el egy kis TTL-lel (élettartamra), majd hallgatja az ICMP "átfutásos" válaszát egy átjárótól. A próbákat egy TTL-lel kezdjük, és egyenként növeljük, amíg egy ICMP "port nem érhető el" (vagyis a csomag érkezik a rendeltetési helyre), vagy elérjük a maximális komfortértéket, amely alapértelmezés szerint 30 komló, és megváltoztatható a-m zászló.
Amikor a traceroute végrehajtja, minden TTL beállításnál három próbát küld, majd kinyomtat egy sort a konzolra, amely a TTL-t, az átjáró címét és az egyes szondák menetrendjét mutatja. Ha a szonda válaszai különböző átjárókból származnak, akkor minden válaszadó rendszernek ki kell nyomtatnia. Ha öt másodperces időtúllépési időn belül nincs válasz (megváltoztatva a-w zászló), egy csillagot kinyomtatnak erre a szondára.
Annak megakadályozására, hogy a célállomás ne legyen túlterhelt UDP-érzékelő csomag-feldolgozással, a cél portot olyan értékre állítja be, amelyet valószínűleg nem használ az eszköz. Ha a rendeltetési helyen lévő hálózat vagy szolgáltatás használja ezt a portot, módosítsa az értéket a-p zászló.
A mintahasználat és a kimenet a következő példához hasonló eredményeket jelenít meg:
yak 71% traceroute nis.nsf.net. traceroute a nis.nsf.net-hez (35.1.1.48), maximum 30 komló, 38 bájtos csomag 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
Ne feledje, hogy a második és a harmadik sor azonos. Ez az eredmény egy második hibakód-lbl-csam.arpa buggy kernelére vonatkozik, amely zéró TTL-vel (a 4.3 BSD elosztott verziójában hibát) küldött csomagokat továbbítja. Meg kell találnod, hogy a csomagok milyen úton haladnak át országon, mivel az NSFNet (129.140) nem szolgáltat cím-nevét fordításokat az NSS-ek számára.
Érdekesebb példa:
yak 72% traceroute allspice.lcs.mit.edu. traceroute to allspice.lcs.mit.edu (18.26.0.115), 30 komló maximum 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
Ne feledje, hogy a 12., 14., 15., 16. és 17. helyen lévő átjárók vagy nem küldenek ICMP "túllépett" üzeneteket, vagy túl kicsi ahhoz, hogy eljussanak hozzánk. A 14-17. Sorok az MIT C átjáró kódot futtatják, amely nem küld "idő túllépte" üzeneteket.
A fenti példában szereplő 12 csendes átjáró a 4. 23 BSD hálózati kód és annak származékai hibájának eredménye lehet: A 4.3 kódot futtató gépek és a korábban egy elérhetetlen üzeneteket küldünk, ha bármilyen TTL marad az eredeti datagramban. Mivel az átjárók esetében a fennmaradó TTL nulla, az ICMP "idő túllépése" garantáltan nem teszi vissza a számunkra. Ennek a hibának a viselkedése valamivel érdekesebb, ha megjelenik a célrendszeren:
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 Kisasszony ! 39 ms! 39 ms!
Vegye figyelembe, hogy 12 "átjáró" van (13 a végső cél), és az utolsó fél hiányzik. Ami tényleg történik, az a szerver neve Nyugodj békében (a Sun-3 futó Sun OS 3.5) az ICMP válaszában a TTL-t a beérkező datagramról használja. Tehát a válasz időtúllépni fog a visszatérési útvonalon (anélkül, hogy bárki elküldte volna, miután az ICMP-t nem küldték az ICMP-k számára), amíg egy olyan TTL-vel nem próbálkozunk, amely legalább kétszer annyi hosszú, más szóval a rip valóban csak hét ugrott el.
A válasz, amely 1 TTL-értékkel tér vissza, arra utal, hogy ez a probléma létezik. A Traceroute kinyomtatja a "!" ha a TTL kisebb vagy egyenlő 1. Mivel a gyártók sok elavultt (DEC's Ultrix, Sun 3.x) vagy nem szabványos (HPUX) szoftvert szállítanak, gyakran várják ezt a problémát, és gondoskodnak a a próbatervek célgazdája.
Egyéb lehetséges feljegyzések az idő leteltével! H, ! N, vagy! P (a fogadó, a hálózat vagy a protokoll elérhetetlen),! S (forrásút sikertelen),! F- (töredezettség szükséges - megjelenik az RFC1191 Path MTU Discovery értéke),!X (közigazgatásilag tiltott kommunikáció),! V (host elsőbbségi jogsértés),! C (hatályos prefixum), vagy! (ICMP elérhetetlen kód). Ezeket a kódokat az RFC1812 határozza meg, amely hatályon kívül helyezi az RFC1716-at. Ha szinte minden szondat valamilyen elérhetetlen fogadóhoz vezetnek, a traceroute feladja és kilép.
Ez a program a hálózati teszteléshez, méréshez és felügyelethez használható. Ezt elsősorban a kézi hibaelhárításhoz kell használni. A terhelés miatt, amelyet a hálózatra kényszeríthet, nem célszerű a traceroute használatát normál műveletek vagy automatikus parancsfájlok használatakor.