traceroute

(Tracert szócikkből átirányítva)
Ez a közzétett változat, ellenőrizve: 2024. március 30.


A traceroute egy számítógép-hálózati diagnosztikai eszköz, az internetprotokoll (IP) hálózaton áthaladó Csomagok útvonalának (path) meghatározására, és az átviteli késleltetés mérésére.

traceroute kimenet, az érintett útvonalválasztók listája egyszerű szövegként, az időzítési információkkal feltüntetve.

A traceroute a legtöbb operációs rendszeren elérhető. A Microsoft Windows operációs rendszereken tracert-nek nevezik. A Windows NT alapú operációs rendszerek biztosítják a PathPing szolgáltatást is, amely hasonló funkcióval bír. Ennek változatai is elérhetőek, mint a Linux alatt található tracepath. Az Internet Protocol Version 6 (IPv6) alatt használható eszközt időnként traceroute6 néven is említik.

Implementáció

szerkesztés

A traceroute egy csomagsorozatot küld az Internet Control Message Protocol-t (ICMP) felhasználva a célállomásra. A köztes útvonalválasztók (router) módosítják a time-to-live (TTL) értéket, vagyis az Internet Protocol ugrás limitjét (hop limit). Ez általában 128 (Windows) vagy 64 (Linux), és a routerek csökkentik, mikor a csomag áthalad rajtuk. Ha a TTL értéke eléri a nullát, a csomagot eldobják, és egy ICMP hibaüzenetet kapunk vissza (ICMP Time Exceeded). A traceroute működése során a TTL értéket növeli minden egyes csomagsorozat sikeres küldése után. Az első sorozat küldésekor a hop limit értéke 1, arra számítván hogy az első router így nem továbbítja azt. A következő sorozat hop limit értéke 2, így a második útvonalválasztó küldi a hibaüzenetet. Ez a folyamat ismétlődik addig, amíg a célállomás nem fogadja a csomagokat, és nem küldi vissza az ICMP Echo Reply üzenetet. A traceroute a kapott ICMP üzeneteket az útvonalválasztók listájának létrehozására használja, amelyeken a csomagok áthaladtak. Az időbélyeg érték mutatja meg a késleltetés mértékét (latency), amely általában minden csomagnál milliszekundum nagyságrendű.

Hop 192.168.1.2 Depth 1
    Probe status: unsuccessful
    Parent: ()
    Return code: Label-switched at stack-depth 1
    Sender timestamp: 2008-04-17 09:35:27 EDT 400.88 msec
    Receiver timestamp: 2008-04-17 09:35:27 EDT 427.87 msec
    Response time: 26.99 msec
    MTU: Unknown
    Multipath type: IP
      Address Range 1: 127.0.0.64 ~ 127.0.0.127
    Label Stack:
      Label 1 Value 299792 Protocol RSVP-TE

A forrásállomás a választ meghatározott számú másodpercig várja. Ha a csomagot nem fogadják az adott idő alatt, egy kettőskereszt jelenik meg a listában. Az állomások felhasználhatják azokat a csomagokat is, amelyek nem a sajátjuk. Az Internet Protokoll nem igényli, hogy a csomagok a két állomás között ugyanazon az útvonalon haladjanak. Érdemes tudni, hogyha egy állomás nem válaszol a TTL N értékénél, az a kimenetben át lesz ugorva. Az Unix-szerű operációs rendszereken a traceroute alkalmazás alapértelmezetten a User Datagram Protocol (UDP) datagramjait használja a 33434 és 33534 célállomás-portszámok között. A traceroute eszköznek általában van egy opciója, amellyel inkább az ICMP válaszüzeneteit használhatjuk (8-as típus), hasonlóan a Windows tracert alkalmazásához. Ha a hálózat tűzfallal védett, és egyaránt tartalmaz Windows és Unix-szerű rendszereket, mindkét protokollnak engedélyezettnek kell lennie a tűzfalon. Néhány traceroute változat a TCP csomagokat használja, ilyen a tcptraceroute, vagy negyedik rétegbeli traceroute. A Windows NT-ben megjelenő PathPing alkalmazás ötvözi a ping és traceroute funkciókat. Az my traceroute egy fejlesztett verziója az ICMP alapú traceroute eszközöknek, mely elérhető Unix-szerű és Windows rendszereken is. A traceroute összes változata az ICMP (11-es típus) csomagok küldésére támaszkodik. A traceroute változataival rendelkező Linux, FreeBSD, NetBSD, DragonFly BSD és Mac OS X rendszerek rendelkeznek a lehetőséggel, hogy ICMP Echo csomagokat ( -l ) használjanak, vagy más önálló protokollt, mint például az UDP, TCP, ICMP vagy GRE.

Használata

szerkesztés

A legtöbb változat biztosan tartalmazza az ugrásonként küldött kérelmek számának meghatározhatóságát, a várakozási idő beállításainak lehetőségét, a hop limit és a porthasználat beállításának lehetőségét. A traceroute megjeleníti az opciókat ha csak önmagában hívjuk meg, míg a man traceroute megosztja a többi részletet is, ide értve a hibajelzéseket is. Egy egyszerű linuxos példa:

traceroute -w 3 -q 1 -m 16   example.com

Csak 3 másodpercet vár - 5 helyett -, ugrásonként egyetlen kérelmet küld - 3 helyett -, az ugrások maximális számát 16-ra korlátozza - 30 helyett - az example.com nevű célállomás irányában. Ez segíthet beazonosítani a hibás irányítótábla definíciókat vagy tűzfalakat, amelyek blokkolják az ICMP forgalmat, vagy a magas UDP-t a portokon a UNIX ping folyamata során. Fontos megjegyezni, hogy a tűzfalon engedélyezzük az ICMP csomagokat, míg a többi protokoll csomagjait nem kell külön jóváhagyni. A traceroute használt eszköz a behatolási tesztek során is, információ gyűjthető vele a hálózati infrastruktúráról, és az állomás körüli IP tartományról. Ugyancsak felhasználható adatok letöltése közben, ha több tükörszerveren is elérhető az adott állomány egy darabja; megállapítható vele, hogy a tükörszerverek közül melyik használata a leggyorsabb.

Biztonsági kockázat

szerkesztés

Az Internet-éra korai napjaiban az útvonalakra vonatkozó részletes információ kényelmesnek és elfogadhatónak számított, azonban később megkérdőjelezhető lett titoktartási és biztonsági szempontokból. A traceroute információi gyakorta használtak hackerek által, hogy így gyűjtsenek fontos információkat egy vállalat hálózati architektúrájáról. A traceroute parancs használatával egy hacker gyorsan feltérképezheti a közte, és a belső ismert állomások között elhelyezkedő útvonalválasztókat. Emiatt, míg a traceroute korlátlanul használható volt az Internet-korszak elején, manapság már a legtöbb hálózat blokkolja, vagy megfosztja prioritásától az ICMP időtúllépési üzeneteket, amelyek fontosak a visszajelzési idő (Round-trip delay time) megállapításához. Bárhogy is legyen; a forgalom szűrése a hálózati végpontok felé vitatott gyakorlat.

A traceroute használati útmutatója szerint az eredeti traceroute programot Van Jacobson írta 1987-ben Steve Deering javaslatára, és C. Philip Wood, Tim Seaver továbbá Ken Adelman rábeszélésére. A ping program alkotója, Mike Muuss azt állítja weboldalán, hogy a traceroute eredetileg kerneles ICMP támogatással készült, s ezt használta fel korai kódjai során, hogy engedélyezze a nyers ICMP csatlakozókat, még a ping alkalmazás megírásának elején.[1]

  1. Archivált másolat. [2011. május 14-i dátummal az eredetiből archiválva]. (Hozzáférés: 2011. szeptember 4.)

További információk

szerkesztés