YOU1234DEST3ms8ms22ms45ms48mshop by hop

Traceroute

10 min citireDiagnosticare

Traceroute este instrumentul de diagnosticare care expune geografia ascunsă a Internetului. Tastați o comandă, primiți înapoi o listă cu fiecare router pe care pachetele dvs. traversează în drum spre o destinație. Funcționează din cauza unei caracteristici obscure a protocolului IP - câmpul Time To Live - și găsește probleme de rețea de treizeci de ani.

Întregul articol al articolului este oferit în limba engleză mai jos.

Traceroute dezvăluie secvența de salt între dvs. și o destinație. Fiecare linie din ieșire este un router; timpul dus-întors vă spune latența la acel router. Când ceva de pe Internet este lent sau întrerupt, traceroute este de obicei primul instrument din cutie.

Cum funcționează: trucul TTL

Efiecare pachet IP are un câmp Time To Live (TTL), menit inițial să împiedice pachetele să circule pentru totdeauna în bucla de rutare. Fiecare router scade TTL-ul cu unul. Când TTL ajunge la zero, routerul renunță la pachet și trimite înapoi un mesaj ICMP „Timp depășit” către sursă. Primul router îl reduce la 0, îl reduce și răspunde cu „Time Exceeded” — dezvăluindu-se ca hop 1.

  • Send TTL=2. Primul router scade la 1 și înainte; al doilea router scade la 0, scade, răspunde — dezvăluirea hop 2.
  • Continuați să creșteți până când ajungeți la destinație, care răspunde cu altceva (un port inaccesibil sau un răspuns real al aplicației).
  • Răspunsul destinației știe cum să opriți traceroute. Trei sonde per hop este implicită, motiv pentru care vedeți trei măsurători RTT pe linie.

    Cele trei tipuri de sonde

    Implementări diferite de traceroute trimit diferite tipuri de sonde:

    • UDP traceroute număr de pachete : trimite la porturi (clasa mare de pachete UPLZ29X). Destinația răspunde cu „port inaccesibil”. Implicit pe Linux/macOS.
    • ICMP traceroute (Windows tracert): trimite pachete ICMP Echo Request. Destinația răspunde cu Echo Reply. Se comporta mai bine prin unele firewall-uri.
    • TCP traceroute: trimite TCP SYN la un anumit port (de obicei 80 sau 443). Util atunci când o destinație scade UDP și ICMP, dar acceptă TCP pe un port cunoscut. tcptraceroute reușește adesea acolo unde traceroute eșuează.

      Citirea ieșirii

      A linie tipică:

       5 aeframple4.cder. (172.16.50.1) 18.234 ms 18.012 ms 17.998 ms

      Numărul hop, numele și IP-ul routerului, apoi trei măsurători RTT. Asteriscurile * * * înseamnă că routerul nu a răspuns — fie că a renunțat la sonda, răspunsuri ICMP cu o rată limitată, fie a fost configurat să nu se identifice. Asteriscurile sunt normale și nu înseamnă neapărat o problemă; multe routere backbone nu răspund în mod deliberat la traceroute.

      Ce vă spun hopurile

      Numele DNS ale routerelor sunt încărcate cu semnificație. ae1.cr1.fra4.de vă spune: agregare Ethernet bundle 1, core router 1, Frankfurt site 4, Germania. Inginerii de rețea pot citi aceste nume precum plăcuțele de înmatriculare și vă pot spune care operator deține calea, în ce oraș se află pachetul și chiar ce furnizor de echipamente (Cisco vs Juniper vs Arista) îl folosește operatorul. Rutarea suboptimă are loc în mod constant și nu este neapărat o problemă.

      Problema căii asimetrice

      Traceroute arată doar calea outbound. Calea de întoarcere poate fi – și adesea este – complet diferită, deoarece fiecare AS își alege propria ruta de ieșire. Un RTT ridicat pe un hop ar putea însemna o legătură lentă acolo sau ar putea însemna că legătura lentă se află pe calea de întoarcere de la acel hop. Fără traceroute de la destinație înapoi la tine, nu poți spune.

      De aceea „traceroute arată bine, dar latența mea este groaznică” este o situație comună. Sonda explorează calea pe o singură direcție.

      Alternative moderne: MTR și instrumente în stil mtr

      MTR (My Traceroute) este un traceroute continuu — emite ping la fiecare hop dintr-o buclă și afișează procente de fluctuație R, statistici de rulare, pierderi de jitter. Mult mai util pentru diagnosticarea problemelor intermitente decât un traseu one-shot. WinMTR pe Windows, mtr pe Unix, PathPing ca alternativă Windows încorporată.

      Pentru diagnosticarea unei căi pe care nu o dețineți, RIPE Atlas și serverele de oglindă operate de rețelele majore vă permit să rulați traceroute dintr-un punct de vedere la distanță - neprețuit pentru înțelegerea rutelor asimetrice.

      .h2>Limitări și ciudatenii

      MPLS ruterele care știe pot ascunde hopurile prin nedecrementarea TTL într-un nor MPLS. Rețelele cu sarcină echilibrată pot afișa diferite căi pe sonde consecutive, făcând ieșirea să pară haotică. Limitarea ratei ICMP pe routerele ocupate poate produce citiri false „slow hop” care nu reflectă performanța reală a planului de date. RTT-ul routerelor intermediare măsoară timpul până la planul de control al routerului, care este adesea mai lent decât planul de date prin același router. Folosiți traceroute ca indiciu, nu o metrică.

    Întrebări frecvente

    De ce traceroute-ul meu lovește „* * *” pentru niște hameiuri?
    Routerul există, dar nu a răspuns la sondă. Motive comune: limitarea ratei ICMP, politica de firewall care elimină răspunsurile depășite de TTL sau decizia operatorului de a face routerul invizibil. Pachetele încă trec prin; pur și simplu nu poți vedea acele hopuri.
    Funcționează traceroute printr-un VPN?
    Da, dar urmărirea începe de la ieșirea VPN, nu de la locația dvs. reală. Primele câteva hopuri pe care le-ați vedea în mod normal (routerul dvs. de acasă, ISP-ul dvs.) sunt înlocuite cu un singur hop în tunelul VPN. Urma devine o vedere a rețelei furnizorului VPN și a căii sale viitoare.
    De ce traceroute arată căi diferite de fiecare dată când îl rulez?
    Multe rețele mari echilibrează traficul pe mai multe căi cu costuri egale, iar cheia de echilibrare a încărcăturii include câmpuri de pachete. Diferite sonde se îndreaptă către diferite căi și vezi unirea. Instrumente precum Paris-traceroute mențin constantă cheia de echilibrare a sarcinii pentru a produce rezultate stabile.
    Ce înseamnă o creștere bruscă a latenței la un hop?
    Poate fi o legătură aglomerată, un plan de control lent pe acel router specific (cel mai probabil) sau cale de întoarcere asimetrică. Uită-te la hopurile ulterioare - dacă RTT-ul lor este similar, vârful este aglomerație reală; dacă RTT-ul lor scade înapoi, vârful a fost că planul de control al routerului răspunde lent.
    Există un instrument care combină traceroute și ping continuu?
    MTR (mtr pe Unix, WinMTR pe Windows). Emite un ping la fiecare hop dintr-o buclă și arată statistici de rulare — RTT mediu, procentaj de pierderi de pachete, abatere standard. Mult mai util decât traceroute de vanilie pentru probleme intermitente.
    Traceroute explicat: Cum să vezi fiecare hop pe care îl ia un pachet