TRACEROUTE(8) traceroute pentru Linux TRACEROUTE(8) NUME traceroute - afieaza traseul pachetelor direcionate catre gazda din reea SINOPSIS traceroute [-46dFITUnreAV] [-f primul-ttl] [-g poarta-acces,...] [-i dispozitiv] [-m max-ttl] [-p port] [-s adresa-sursa] [-q numar-sondari] [-N sondari-simultane] [-t tos] [-l eticheta-flux] [-w timpul-de-ateptare] [-z ateptare-trimitere-sondare] [-UL] [-D] [-P protocol] [--sport=port] [-M metoda] [-O opiuni-mod] [--mtu] [--back] gazda [lungime-pachet] traceroute6 [opiuni] DESCRIERE traceroute urmarete traseul pachetelor luate dintr-o reea IP in drumul lor catre o anumita gazda. Utilizeaza campul TTL (,,time to live", timp de validitate) al protocolului IP i incearca sa obina un raspuns ICMP TIME_EXCECEEDED de la fiecare poarta de acces de pe traseul catre gazda. traceroute6 este echivalent cu traceroute -6. Singurul parametru necesar este numele sau adresa IP a destinaiei gazda . Parametrul opional lungime-pachet este dimensiunea totala a pachetului de sondare (implicit 60 de octei pentru IPv4 i 80 pentru IPv6). Dimensiunea specificata poate fi ignorata in anumite situaii sau poate fi marita pana la o valoare minima. Acest program incearca sa urmareasca traseul pe care un pachet IP l-ar urma pana la o anumita gazda de internet prin lansarea de pachete sonda cu un ttl (,,time to live", timp de validitate) mic, apoi prin ascultarea unui raspuns ICMP ,,time exceeded" (timp depait) de la o poarta de acces. Incepem sondajele cu un ttl de unu i cretem cu cate unul pana cand primim un ICMP ,,port unreachable" (port inaccesibil) sau ,,TCP reset" (reiniializare TCP), ceea ce inseamna ca am ajuns la ,,gazda", sau am atins un maxim (care este implicit de 30 de salturi). Se trimit trei sondaje (in mod implicit) la fiecare valoare a ttl i se imprima o linie care arata valoarea ttl, adresa porii de acces i timpul de calatorie dus-intors al fiecarui sondaj. La cerere, adresa poate fi urmata de informaii suplimentare. In cazul in care raspunsurile sondajelor provin de la pori de acces diferite, se va imprima adresa fiecarui sistem care raspunde. In cazul in care nu exista niciun raspuns intr-un anumit interval de timp, se imprima un ,,*" (asterisc) pentru sondajul respectiv. Dupa expirarea timpului de calatorie, pot fi imprimate unele adnotari suplimentare: !H, !N sau !P (gazda, reea sau protocol imposibil de atins), !S (ruta sursa a euat), !F (este necesara fragmentarea), !X (comunicarea este interzisa din punct de vedere administrativ), !V (incalcarea precedenei gazdei), !C (precedena este interzisa) sau ! ( cod ICMP inaccesibil). In cazul in care aproape toate sondajele au ca rezultat un fel de inaccesibilitate, <> va renuna i va iei. Nu dorim ca gazda de destinaie sa proceseze pachetele de sondaj UDP, aa ca portul de destinaie este stabilit la o valoare improbabila (o putei modifica cu ajutorul opiunii -p). Nu exista o astfel de problema pentru urmarirea rutelor ICMP sau TCP (pentru TCP folosim tehnica half-open, care impiedica ca sondarile noastre sa fie vazute de aplicaiile de pe gazda de destinaie). In mediul de reea modern, metodele tradiionale de urmarire a rutelor nu pot fi intotdeauna aplicabile, din cauza utilizarii pe scara larga a paravanelor de protecie. Aceste paravane de protecie filtreaza porturile UDP ,,improbabile" sau chiar ecourile ICMP. Pentru a rezolva aceasta problema, sunt implementate cateva metode suplimentare de urmarire a rutelor (inclusiv tcp), a se vedea LISTA METODELOR DISPONIBILE de mai jos. Astfel de metode incearca sa utilizeze un anumit protocol i un anumit port sursa/destinaie, pentru a ocoli paravanele de protecie (pentru a fi vazute de catre paravanele de protecie doar ca un inceput de tip permis al unei sesiuni de reea). OPIUNI --help Afieaza informaiile de ajutor i iese. -4, -6 Foreaza in mod explicit urmarirea traficului IPv4 sau IPv6. In mod implicit, programul va incerca sa rezolve numele dat i va alege automat protocolul corespunzator. Daca rezolvarea unui nume de gazda returneaza atat adrese IPv4, cat i IPv6, traceroute va utiliza IPv4. -I, --icmp Utilizeaza ICMP ECHO pentru sondare -T, --tcp Utilizeaza TCP SYN pentru sondare -d, --debug Activeaza depanarea la nivel de soclu (atunci cand nucleul Linux accepta acest lucru) -F, --dont-fragment Nu fragmenteaza pachetele de sondare; (pentru IPv4, activeaza, de asemenea, bitul DF, care indica router-ilor intermediari sa nu fragmenteze la distana). Variind dimensiunea pachetului de sondare cu ajutorul parametrului de linie de comanda lungime-pachet, putei obine manual informaii despre MTU al fiecarui salt de reea. Opiunea --mtu (a se vedea mai jos) incearca sa faca acest lucru in mod automat. Reinei ca funciile non-fragmentate (cum ar fi -F sau --mtu) funcioneaza corect doar incepand cu nucleul Linux 2.6.22. Inainte de aceasta versiune, IPv6 era intotdeauna fragmentat, iar IPv4 putea utiliza doar mtu-ul final descoperit o data (din memoria cache a rutelor), care poate fi mai mic decat mtu-ul real al unui dispozitiv. -f primul-ttl, --first=primul-ttl Specifica cu ce TTL trebuie sa se inceapa. Valoarea implicita este 1. -g poarta-acces, --gateway=poarta-acces Ii indica lui <> sa adauge o opiune de direcionare la sursa IP la pachetul de ieire, care indica reelei sa direcioneze pachetul prin poarta-de-acces specificata (majoritatea routerelor au direcionarea la sursa dezactivata din motive de securitate). In general, sunt permise mai multe pori-de-acces (separate prin virgule). Pentru IPv6, este permisa forma numar,adresa,adresa..., unde numar este un tip de antet de ruta (implicit este tipul 2). Reinei ca antetul de ruta de tip 0 este acum depait (rfc5095). -i interfaa, --interface=interfaa Specifica interfaa prin care traceroute trebuie sa trimita pachete. In mod implicit, interfaa este selectata in funcie de tabelul de direcionare. -m max-ttl, --max-hops=max-ttl Specifica numarul maxim de salturi (valoarea maxima a ,,time to live", timpului de validitate) ce traceroute va sonda. Valoarea implicita este 30. -N sondari-simultane, --sim-queries=sondari-simultane Specifica numarul de pachete de sondare trimise simultan. Trimiterea simultana a mai multor sondaje poate accelera considerabil traceroute. Valoarea implicita este 16. Reinei ca unele routere i gazde pot utiliza limitarea ratei ICMP. Intr-o astfel de situaie, specificarea unui numar prea mare poate duce la pierderea unor raspunsuri. -n Nu incearca sa asocieze adresele IP cu numele de gazda atunci cand le afieaza. -p port, --port=port Pentru urmarirea UDP, specifica portul de destinaie de baza pe care il va utiliza traceroute (numarul portului de destinaie va fi incrementat la fiecare sondare). Pentru urmarirea ICMP, specifica valoarea iniiala a secvenei ICMP (incrementata de fiecare sondare in parte). Pentru TCP i altele, se specifica doar portul de destinaie (constant) pentru conectare. -t tos, --tos=tos Pentru IPv4, stabilete tipul de serviciu (,,Type of Service": TOS) i valoarea precedenei. Valorile utile sunt 16 (intarziere redusa) i 8 (randament ridicat). Reinei ca, pentru a utiliza unele valori de precedena TOS, trebuie sa fii superutilizator. Pentru IPv6, stabilete valoarea de control al traficului. -l eticheta-flux, --flowlabel=eticheta-flux Utilizeaza eticheta-de-flux specificata pentru pachetele IPv6. -w max[,aici,aproape], --wait=max[,aici,aproape] Determina cat timp trebuie sa se atepte un raspuns la o sondare. Exista trei (in general) valori in virgula mobila, separate de o virgula (sau de o bara oblica). max specifica timpul maxim (in secunde, implicit 5,0) de ateptare, in orice caz. Implementarea traceroute tradiionala a ateptat intotdeauna max secunde intregi pentru orice sondare. Dar daca avem deja cateva raspunsuri de la acelai salt, sau chiar de la un urmator salt, putem folosi timpul de calatorie dus-intors al unui astfel de raspuns ca un indiciu pentru a determina timpul real rezonabil de ateptare. Parametrul opional aici (valoare implicita 3.0) specifica un factor de multiplicare a timpului de calatorie dus-intors al unui raspuns deja primit de la acelai salt. Valoarea rezultata este utilizata ca timp de ateptare pentru sondare, in loc de (dar nu mai mult de) max. Parametrul opional aproape (implicit 10,0) specifica un factor similar pentru un raspuns de la un anumit salt urmator; (in ambele cazuri se utilizeaza timpul primului rezultat gasit). In primul rand, cautam saltul acelai (al sondarii care va fi afiata prima de acum inainte). Daca nu se gasete nimic, atunci se cauta un salt urmator. Daca nu se gasete nimic, se folosete max.Daca aici i/sau aproape au valori zero, calculul corespunzator este sarit. aici i aproape sunt intotdeauna fixate la zero daca se specifica doar max (pentru compatibilitate cu versiunile anterioare). -q numar-sondari, --queries=numar-sondari Stabilete numarul de pachete de sondare pe salt. Valoarea implicita este 3. -r Ocolete tabelele normale de direcionare i trimite direct catre o gazda dintr-o reea ataata. Daca gazda nu se afla intr-o reea direct ataata, se returneaza o eroare. Aceasta opiune poate fi utilizata pentru a trimite un ping unei gazde locale printr-o interfaa care nu are nicio ruta prin ea. -s adresa-sursa, --source=adresa-sursa Alege o adresa sursa alternativa. Reinei ca trebuie sa selectai adresa uneia dintre interfee. In mod implicit, se utilizeaza adresa interfeei de ieire. -z ateptare-trimitere-sondare, --sendwait=ateptare-trimitere-sondare Interval de timp minim intre sondaje (implicit 0). Daca valoarea este mai mare de 10, atunci se specifica un numar in milisecunde, in caz contrar este un numar de secunde (sunt permise i valori cu virgula flotanta). Utila atunci cand unele routere folosesc limitarea vitezei pentru mesajele ICMP. -e, --extensions Afieaza extensiile ICMP (rfc4884). Forma generala este CLASS/TYPE: urmata de o valoare hexazecimala. Valoarea MPLS (rfc4950) este afiata analizata, sub urmatoarea forma: MPLS:L=label,E=exp_use,S=stack_bottom,T=TTL ( mai multe obiecte separate prin / ). Informaiile privind interfaa (rfc5837) sunt prezentate analizate i ele, sub urmatoarea forma: {INC|SUB|OUT|NXT}:index,adresa-IP,"nume",mtu=MTU (toate cele patru campuri pot lipsi). -A, --as-path-lookups Efectueaza cautari de trasee AS in registrele de direcionare i imprima rezultatele direct dupa adresele corespunzatoare. -V, --version Afieaza versiunea i iese. Exista opiuni suplimentare destinate utilizarii avansate (cum ar fi metode alternative de urmarire etc.): --sport=port Alege portul sursa care urmeaza sa fie utilizat. Implica -N 1 -w 5 . In mod normal, porturile sursa (daca este cazul) sunt alese de sistem. --fwmark=marcaj Stabilete marcajul paravanului de protecie pentru pachetele de ieire (incepand cu nucleul Linux 2.6.25). -M metoda, --module=nume Utilizeaza metoda specificata pentru operaiile traceroute. Metoda tradiionala implicita udp are numele default, icmp (-I) i tcp (-T) au numele icmp i, respectiv, tcp. Opiunile specifice metodei pot fi transmise prin -O . Majoritatea metodelor au scurtaturi simple (-I inseamna -M icmp, etc.). -O opiune, --options=opiuni Specifica o opiune specifica unei metode. Mai multe opiuni se separa prin virgule (sau se utilizeaza mai multe -O in linia de comanda). Fiecare metoda poate avea propriile opiuni specifice, sau multe nu le au deloc. Pentru a imprima informaii despre opiunile disponibile, utilizai -O help. -U, --udp Utilizeaza UDP la un anumit port de destinaie pentru urmarirea traseului (in loc sa mareasca portul pentru fiecare sondare). Portul implicit este 53 (dns). -UL Utilizeaza UDPLITE pentru urmarirea traseului (portul implicit este 53). -D, --dccp Utilizeaza cereri DCCP pentru sondare. -P protocol, --protocol=protocol Utilizeaza pachetul brut al protocolului specificat pentru urmarirea traseului. Protocolul implicit este 253 (rfc3692). --mtu Descopera MTU de-a lungul traseului care este urmarit. Implica -F -N 1. Noul mtu este afiat o singura data sub forma F=NUMAR la prima sondare a unui salt care necesita un astfel de mtu pentru a fi atins; (de fapt, mesajul icmp ,,frag needed" (fragment necesar) corespunzator este trimis in mod normal de catre saltul anterior). Reinei ca unele routere pot stoca in memoria cache o singura data informaiile vazute despre o fragmentare. Astfel, putei primi mtu final de la un salt mai apropiat. Incercai sa specificai un tos neobinuit prin -t , acest lucru poate ajuta pentru o singura incercare (apoi aceasta poate fi pusa in cache de asemenea acolo). Pentru mai multe informaii, consultai opiunea -F. --back Afieaza numarul de salturi inapoi atunci cand pare diferit faa de direcia inainte. Acest numar este calculat in ipoteza ca salturile la distana trimit pachete de raspuns cu ttl iniial fixat la 64, 128 sau 255 (ceea ce pare a fi o practica obinuita). Este afiat ca o valoare negativa sub forma ,,-NUMAR". LISTA DE METODE DISPONIBILE In general, este posibil ca o anumita metoda de <> sa trebuiasca sa fie aleasa de -M numele-metodei, dar majoritatea metodelor au opiuni simple in linia de comanda (le putei vedea dupa numele metodei, daca sunt prezente). default Metoda tradiionala, veche, de urmarire a traseelor. Utilizata in mod implicit. Pachetele de sondare sunt datagrame udp cu aa-numitele porturi de destinaie ,,improbabile". Portul ,,improbabil" al primei sondari este 33434, apoi, pentru fiecare sondare urmatoare, este marit cu unu. Deoarece se ateapta ca porturile sa fie nefolosite, gazda de destinaie returneaza in mod normal ,,icmp unreach port" (port icmp inaccesibil) ca raspuns final; (totui, nimeni nu tie ce se intampla atunci cand o aplicaie asculta pentru astfel de porturi). Aceasta metoda este permisa pentru utilizatorii neprivilegiai. icmp -I Metoda cea mai uzuala deocamdata, care utilizeaza pachete icmp echo pentru sondari. Daca putei trimite un ping(8) la gazda de destinaie, se poate aplica i urmarirea traseului prin icmp. Aceasta metoda poate fi permisa pentru utilizatorii neprivilegiai incepand cu nucleul 3.0 (IPv4, pentru IPv6 incepand cu 3.11), care suporta noile socluri dgram icmp (sau ,,ping"). Pentru a permite astfel de socluri, administratorul de sistem ar trebui sa furnizeze intervalul sysctl net/ipv4/ping_group_range pentru a se potrivi cu orice grup al utilizatorului. Opiuni: raw Utilizeaza numai socluri brute (metoda tradiionala). Acest mod este incercat mai intai in mod implicit (din motive de compatibilitate), apoi se incearca sa se foloseasca noile socluri ,,dgram icmp" ca soluie de rezerva. dgram Utilizeaza numai socluri cu datagrame icmp. tcp -T Metoda moderna bine cunoscuta, destinata sa ocoleasca paravanele de protecie. Utilizeaza portul de destinaie constant (portul implicit este 80, http). In cazul in care exista filtre pe traseul de reea, atunci cel mai probabil orice port udp ,,improbabil" (ca in cazul metodei default) sau chiar ecourile icmp (ca in cazul metodei icmp) sunt filtrate, iar intreaga urmarire a traseului se va opri la un astfel de paravan de protecie. Pentru a ocoli un filtru de reea, trebuie sa se foloseasca doar combinaiile protocol/port permise. Daca urmarim un server de pota electronica, sa zicem, atunci cel mai probabil -T -p 25 poate ajunge la el, chiar daca -I nu poate. Aceasta metoda utilizeaza binecunoscuta ,,tehnica <>", care impiedica aplicaiile de pe gazda de destinaie sa vada sondarile noastre. In mod normal, se trimite o sincronizare tcp ,,tcp syn". Pentru porturile care nu sunt ascultate, primim ,,tcp reset" i totul este facut. Pentru porturile cu ascultare activa primim ,,tcp syn+ack", dar raspundem prin ,,tcp reset" (in loc de raspunsul ,,tcp ack" ateptat), in acest fel sesiunea tcp la distana este abandonata chiar i fara ca aplicaia sa sesizeze vreodata. Exista cateva opiuni pentru metoda tcp: syn,ack,fin,rst,psh,urg,ece,cwr Stabilete fanioanele tcp specificate pentru pachetul de sondare, in orice combinaie. flags=numar Stabilete numarul de fanioane al campului din antetul tcp exact la numar. ecn Trimite un pachet syn cu fanioanele tcp ECE i CWR (pentru Notificare explicita de congestie, rfc3168). sack,timestamps,window_scaling Utilizeaza opiunea de antet tcp corespunzatoare in pachetul de sondare transmis. sysctl Utilizeaza valorile actuale ale sysctl (/proc/sys/net/*) pentru opiunile antetului tcp de mai sus i ecn. Definita intotdeauna in mod implicit, daca nu se specifica nimic altceva. fastopen Utilizeaza opiunea fastopen tcp (cand syn), numai pentru negocierea iniiala a cookie-urilor. mss=[numar] Utilizeaza valoarea lui numar (sau nu este modificata) pentru opiunea de antet maxseg tcp (cand syn) i descopera fixarea acesteia de-a lungul traseului urmarit. Noul mss modificat este afiat o singura data sub forma M=NUMAR la prima sondare pe care a fost detectat. Reinei ca unele routere pot returna un fragment original prea scurt in mesajul de depaire a timpului, ceea ce face imposibila verificarea. In afara de aceasta, raspunsurile pot veni intr-o ordine diferita. Toate acestea pot duce la o plasare mai tarzie a raportului (utilizarea -N 1 poate ajuta pentru ordine). info Afieaza fanioanele tcp i opiunile acceptate ale raspunsurilor tcp finale atunci cand este atinsa gazda inta. Permite sa se determine daca o aplicaie asculta portul i alte lucruri utile. Opiunile tcp acceptate sunt toate cele care pot fi definite de -T -O, adica mss, sack, timestamps, window_scaling i fastopen, cu un format de ieire similar (o valoare pentru mss i doar prezena pentru celelalte). Opiunile implicite sunt syn,sysctl. tcpconn O implementare iniiala a metodei tcp, simpla, folosind apelul connect(2), care face deschiderea completa a sesiunii tcp. Nu este recomandata pentru o utilizare normala, deoarece o aplicaie de destinaie este intotdeauna afectata (i poate fi confuza). udp -U Utilizeaza datagrama udp cu port de destinaie constant (implicit 53, dns). Destinata sa ocoleasca de asemenea paravanul de protecie. Reinei ca, spre deosebire de metoda tcp, aplicaia corespondenta de pe gazda de destinaie intotdeauna primete sondarile noastre (cu date aleatorii) i poate fi uor derutata de acestea. In cele mai multe cazuri, aceasta nu va raspunde totui la pachetele noastre, astfel incat nu vom vedea niciodata saltul final din traseu; (din fericire, se pare ca cel puin serverele dns raspund cu ceva enervant). Aceasta metoda este permisa pentru utilizatorii neprivilegiai. udplite -UL Utilizeaza datagrama udplite pentru sondare (cu port de destinaie constant, implicit 53). Aceasta metoda este permisa pentru utilizatorii neprivilegiai. Opiuni: coverage=numar Stabilete acoperirea trimiterii udplite la numar. dccp -D Utilizeaza pachetele de cerere DCCP pentru sondare (rfc4340). Aceasta metoda utilizeaza aceeai ,,tehnica de deschidere pe jumatate, <>" ca i cea utilizata pentru TCP. Portul de destinaie implicit este 33434. Opiuni: service=numar Stabilete codul serviciului DCCP la numar (valoarea implicita este 1885957735). raw -P protocol Trimite un pachet brut al protocolului protocol. Nu se utilizeaza niciun antet specific protocolului, ci doar antetul IP. Implica -N 1 -w 5 . Opiuni: protocol=protocol Utilizeaza protocolul IP protocol (implicit 253). NOTE Pentru a accelera funcionarea, in mod normal, se trimit mai multe sondari simultan. Pe de alta parte, se creeaza o ,,furtuna de pachete", in special in direcia de raspuns. Routerele pot limita rata raspunsurilor icmp, iar unele dintre raspunsuri pot fi pierdute. Pentru a evita acest lucru, micorai numarul de sondari simultane, sau chiar setai-l la 1 (ca in implementarea iniiala a <>), adica -N 1. Gazda finala (inta) poate renuna la unele dintre sondarile simultane i poate chiar sa raspunda doar la cele mai recente. Acest lucru poate duce la salturi suplimentare ,,pare ca a expirat" in apropierea saltului final. Noi folosim un algoritm inteligent pentru a detecta automat o astfel de situaie, dar daca nu va poate fi de ajutor in cazul dumneavoastra, utilizai i -N 1. Pentru o stabilitate i mai mare, putei incetini activitatea programului cu ajutorul opiunii -z, de exemplu, utilizai -z 0,5 pentru o pauza de o jumatate de secunda intre sondari. Pentru a evita o ateptare suplimentara, folosim un algoritm adaptiv pentru timpii de ateptare (a se vedea opiunea -w pentru mai multe informaii). Aceasta poate duce la expirarea prematura (in special atunci cand timpii de raspuns difera in anumite momente) i la imprimarea lui ,,*" in loc de un timp. Intr-un astfel de caz, dezactivai acest algoritm, specificand -w doar cu timpul de ateptare dorit (de exemplu, -w 5). In cazul in care unele salturi nu raporteaza nimic pentru fiecare metoda, ultima ansa de a obine ceva este utilizarea comenzii ping -R (IPv4, i numai pentru cele mai apropiate 8 salturi). CONSULTAI I ping(8), ping6(8), tcpdump(8), netstat(8) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . traceroute 11 octombrie 2006 TRACEROUTE(8)