A Linux traceroute paranccsal észlelheti a hálózati csomag lassú szakaszát, és elháríthatja a lassú hálózati kapcsolatokat. Megmutatjuk, hogyan!
Tartalomjegyzék
Hogyan működik a traceroute
Ha értékeli a traceroute működését, sokkal könnyebbé teszi az eredmények megértését. Minél bonyolultabb az útvonal a hálózati csomag mennyi időt kell várni a cél eléréséhez, annál nehezebb pontosan meghatározni, hol fordulhat elő lassulás.
Egy kis szervezet helyi hálózat (LAN) viszonylag egyszerű lehet. Valószínűleg lesz benne legalább egy szerver és egy-két router. A komplexitás növekszik a a nagy kiterjedésű hálózat (WAN), amely különböző helyek között vagy az interneten keresztül kommunikál. A hálózati csomag ezután sok hardverrel találkozik (és továbbítja és irányítja), például útválasztókkal és átjárók.
Az adatcsomagokon lévő metaadatok fejlécei leírják a hosszát, honnan származnak, hová tartanak, milyen protokollt használnak stb. A protokoll specifikációja határozza meg a fejlécet. Ha azonosítani tudja a protokollt, meghatározhatja a fejléc minden mezőjének elejét és végét, és elolvashatja a metaadatokat.
traceroute használja a TCP/IP protokollcsomag, és elküldi Felhasználói Datagram protokoll csomagokat. A fejléc tartalmazza a Itt az ideje élni (TTL) mező, amely nyolc bites egész értéket tartalmaz. Annak ellenére, amit a név sugall, számot jelöl, nem időtartamot.
A csomag egy útválasztón keresztül jut el az eredetétől a célállomásig. Minden alkalommal, amikor a csomag megérkezik egy útválasztóhoz, csökkenti a TTL számlálót. Ha a TTL érték valaha eléri az egyet, a csomagot fogadó útválasztó csökkenti az értéket, és észreveszi, hogy most nulla. A csomagot ezután eldobják, és nem továbbítják az út következő ugrására, mert „időtúllépése” van.
A router küld egy Internet Message Control Protocol (ICMP) Időtúllépés visszaküldi a csomag eredetét, hogy tudatja vele, hogy a csomag lejárt. A Time Exceeded üzenet tartalmazza az eredeti fejlécet és az eredeti csomag adatainak első 64 bitjét. Ennek meghatározása a hatodik oldalon található Megjegyzéskérés 792.
Tehát, ha a traceroute kiküld egy csomagot, de a TTL értéket egyre állítja, a csomag csak az első útválasztóig jut el, mielőtt eldobná. Az útválasztótól ICMP túllépési idő üzenetet kap, és rögzíteni tudja az oda-vissza út idejét.
Ezután megismétli a gyakorlatot 2-re állított TTL-lel, ami két ugrás után meghiúsul. A traceroute háromra növeli a TTL-t, és újra próbálkozik. Ez a folyamat addig ismétlődik, amíg el nem éri a célt, vagy a maximális számú ugrást (alapértelmezés szerint 30) teszteli.
Néhány router nem működik jól
Néhány routerben hibák vannak. Megpróbálják továbbítani a nullás TTL-értékkel rendelkező csomagokat, ahelyett, hogy eldobnák őket, és az ICMP-idő túllépése üzenetet emelnék ki.
Alapján Cisco, egyes internetszolgáltatók (ISP) korlátozzák az útválasztóik által továbbított ICMP-üzenetek számát.
Egyes eszközök úgy vannak beállítva, hogy soha ne küldjenek ICMP-csomagokat. Ez gyakran annak biztosítására szolgál, hogy az eszközt ne lehessen akaratlanul is rákényszeríteni, hogy részt vegyen a elosztott szolgáltatásmegtagadás, mint egy törpe támadás.
A traceroute-nak van egy alapértelmezett időkorlátja a válaszokhoz öt másodperc. Ha nem kap választ ezen az öt másodpercen belül, a kísérlet félbeszakad. Ez azt jelenti, hogy a rendszer figyelmen kívül hagyja a nagyon lassú útválasztók válaszait.
Traceroute telepítése
A traceroute már telepítve volt a Fedora 31-re, de telepíteni kell a Manjaro 18.1-re és az Ubuntu 18.04-re. A traceroute Manjaro-ra történő telepítéséhez használja a következő parancsot:
sudo pacman -Sy traceroute
A traceroute Ubuntu telepítéséhez használja a következő parancsot:
sudo apt-get install traceroute
A traceroute használata
Ahogy fentebb említettük, a traceroute célja, hogy választ kiváltson az útválasztótól minden egyes ugráskor a számítógépről a célállomásra. Lehet, hogy egyesek szűkszavúak, és nem adnak semmit, míg mások valószínűleg kétségbeesés nélkül kiöntik a babot.
Példaként egy nyomkövetési útvonalat fogunk futtatni a Blarney kastély weboldal Írországban, a híres otthonában Blarney Stone. A legenda szerint, ha megcsókolja a Blarney-követ, akkor a „gab ajándékával” lesz megáldva. Reméljük, hogy az útválasztók, amelyekkel útközben találkozunk, megfelelően beszédesek.
A következő parancsot írjuk be:
traceroute www.blarneycastle.ie
Az első sor a következő információkat tartalmazza:
A cél és annak IP-címe.
A komlószámot a traceroute megpróbálja, mielőtt feladná.
Az általunk küldött UDP-csomagok mérete.
Az összes többi sor az egyik komlóról tartalmaz információt. Mielőtt azonban belemélyednénk a részletekbe, láthatjuk, hogy 11 ugrás van a számítógépünk és a Blarney Castle webhelye között. A 11-es komló is elárulja, hogy célba értünk.
Az egyes ugrássorok formátuma a következő:
Az eszköz neve, vagy ha az eszköz nem azonosítja magát, az IP-cím.
Az IP-cím.
Az oda-vissza út időtartama mindhárom teszt esetében. Ha itt van egy csillag, az azt jelenti, hogy nem érkezett válasz a tesztre. Ha az eszköz egyáltalán nem válaszol, három csillag jelenik meg, és nem lesz eszköznév vagy IP-cím.
Tekintsük át az alábbiakat:
1. ugrás: Az első hívási port (nem szójáték) a DrayTek Vigor Router a helyi hálózaton. Így hagyják el UDP-csomagjaink a helyi hálózatot és kerülnek az internetre.
2. ugrás: Ez az eszköz nem válaszolt. Talán úgy volt beállítva, hogy soha ne küldjön ICMP-csomagokat. Vagy talán válaszolt, de túl lassú volt, így a traceroute időtúllépést okozott.
3. ugrás: Egy eszköz válaszolt, de nem kaptuk meg a nevét, csak az IP-címet. Vegye figyelembe, hogy ebben a sorban van egy csillag, ami azt jelenti, hogy nem kaptunk választ mindhárom kérésre. Ez csomagvesztésre utalhat.
4. és 5. komló: Még több névtelen ugrás.
6. ugrás: Sok szöveg van itt, mert egy másik távoli eszköz kezelte mind a három UDP-kérésünket. Az egyes eszközök (meglehetősen hosszú) nevei és IP-címei ki lettek nyomtatva. Ez akkor fordulhat elő, ha egy „dúsan lakott” hálózattal találkozik, amelyen sok hardver található a nagy forgalom kezelésére. Ez az ugrás az Egyesült Királyság egyik legnagyobb internetszolgáltatóján belül található. Tehát kisebb csoda lenne, ha ugyanaz a távoli hardver kezelné a három csatlakozási kérésünket.
7. ugrás: Ez az a ugrás, amelyet az UDP-csomagjaink készítettek, amikor elhagyták az internetszolgáltatók hálózatát.
Hop 8: Ismét kapunk egy IP-címet, de nem az eszköz nevét. Mindhárom teszt sikeresen megtörtént.
9. és 10. komló: Még két névtelen ugrás.
11. ugrás: Megérkeztünk a Blarney Castle weboldalára. A kastély az írországi Corkban található, de a szerint IP-cím földrajzi helymeghatározása, a weboldal Londonban található.
Szóval vegyes táska volt. Egyes eszközök labdáztak, mások válaszoltak, de nem mondták el a nevüket, mások pedig teljesen névtelenek maradtak.
A célhoz azonban eljutottunk, tudjuk, hogy 11 ugrásra van, és az oda-vissza út ideje 13,773 és 14,715 ezredmásodperc volt.
Eszköznevek elrejtése
Amint láttuk, az eszköznevek feltüntetése néha zsúfolt képernyőhöz vezet. Az adatok könnyebb áttekintése érdekében használhatja az -n (nincs leképezés) opciót.
Ehhez a példánkkal a következőket írjuk be:
traceroute -n blarneycastle.ie
Ez megkönnyíti a nagy számok kiválasztását az oda-vissza utazásokhoz, amelyek szűk keresztmetszetet jelezhetnek.
A Hop 3 kezd egy kicsit gyanúsnak tűnni. Legutóbb csak kétszer válaszolt, ezúttal pedig csak egyszer. Ebben a forgatókönyvben ez természetesen kívül esik az irányításunkon.
Ha azonban vállalati hálózatát vizsgálja, érdemes lenne egy kicsit mélyebbre ásni a csomópontban.
A nyomkövetési időkorlát beállítása
Talán ha meghosszabbítjuk az alapértelmezett időtúllépési időt (öt másodperc), több választ kapunk. Ehhez a -w (várakozási idő) kapcsolóval hét másodpercre változtatjuk. (Megjegyzés: ez egy lebegőpontos szám.)
A következő parancsot írjuk be:
traceroute -w 7.0 blarneycastle.ie
Ez nem sokat változott, így a válaszok valószínűleg időzítést vesznek igénybe. Valószínűleg a névtelen komló szándékosan titkolózik.
A tesztek számának beállítása
Alapértelmezés szerint a traceroute három UDP-csomagot küld minden ugrásra. A -q (lekérdezések száma) opcióval ezt felfelé vagy lefelé állíthatjuk.
A traceroute teszt felgyorsítása érdekében a következőket írjuk be, hogy az általunk küldött UDP-próbacsomagok számát egyre csökkentsük:
traceroute -q 1 blarneycastle.ie
Ez egyetlen szondát küld minden ugrásra.
A kezdeti TTL érték beállítása
Beállíthatjuk a TTL kezdeti értékét egytől eltérőre, és kihagyhatunk néhány ugrást. Általában a TTL értékek egyre vannak beállítva az első tesztkészlethez, kettőre a következő tesztkészlethez, és így tovább. Ha ötre állítjuk, az első teszt megkísérli elérni az ötös ugrást, és kihagyja az ugrást egytől négyig.
Mivel tudjuk, hogy a Blarney Castle webhely 11 ugrásnyira van ettől a számítógéptől, a következőket írjuk be, hogy egyenesen a Hop 11-hez ugorjunk:
traceroute -f 11 blarneycastle.ie
Ez egy szép, tömör jelentést ad a célhoz való kapcsolat állapotáról.
Légy tapintatos
A traceroute nagyszerű eszköz a hálózati útválasztás kivizsgálására, a kapcsolati sebesség ellenőrzésére vagy a szűk keresztmetszetek azonosítására. A Windowsnak van egy tracert parancsa is, amely hasonlóan működik.
Azonban nem akarja az ismeretlen eszközöket UDP-csomagok özönével bombázni, és óvakodjon attól, hogy a traceroute-ot szkriptekbe vagy felügyelet nélküli munkákba foglalja.
A hálózaton elhelyezett terhelési nyomkövetési útvonal hátrányosan befolyásolhatja annak teljesítményét. Hacsak nem „javítsd meg most” típusú helyzetben, érdemes lehet a normál munkaidőn kívül is használni.