L'output di traceroute è corretto per quanto riguarda il percorso effettivo verso un target


3

Il pagina man per traceroute dice "traceroute tiene traccia dei pacchetti di route presi da una rete IP sulla loro strada verso un determinato host." , ma mentre facevo ricerche sull'argomento non ero in grado di trovare alcun dato statistico / scientifico su quanto fosse preciso Traceroute in realtà se il percorso visualizzato fosse effettivamente percorso (forse i diversi pacchetti usano percorsi completamente diversi) e quale errore margine è, e se sarebbe possibile, a causa di diversi protocolli di routing, un ping di Traceroute potrebbe visualizzare un percorso completo diverso da una successiva richiesta TCP o anche i pacchetti di ping effettivi prenderebbero.

L'unico lavoro che ho trovato, implicando che un tracciamento del Ping potrebbe non essere perfetto è il documentazione su scamper che dice "il ping è utile per misurare il ritardo end-to-end e perdita, ricerca di indirizzi IP reattivi e classificazione del comportamento degli host esaminando il modo in cui rispondono alle sonde. "e (per quanto ho capito) utilizza il traceroute di MDA per il rilevamento dei percorsi, il che implica che l'utilizzo di PING potrebbe non avere il risultato desiderato.

Quindi la mia domanda è: Quanto è affidabile il rilevamento dei percorsi con Traceroute (anche perché)? Apprezzerei molto i link che entrano nei dettagli su quell'argomento, ma una spiegazione generale perché o perché no sarebbe anche sufficiente.


Ci sono alcune buone informazioni sull'effetto dei load balancer a paris-traceroute.net . (Questo è uno strumento che afferma di essere superiore al normale traceroute di fronte ai loadbalancer).
Duncan Jones

Risposte:


3

La cosa più importante da ricordare è quella le rotte non sono statiche . In base alla progettazione, i percorsi su Internet pubblico stanno cambiando in continuazione. A volte i percorsi cambiano a causa del bilanciamento del carico; a volte cambiano perché un nodo scende; a volte cambiano perché i router decidono letteralmente a caso di cambiare le regole di routing (solo per scuotere le cose).

Dal punto di vista di un utente finale che non ha accesso a livello di amministratore di sistema a ogni singolo router e hub Internet intermedio tra l'origine e la destinazione di un pacchetto, è necessario trattarlo come il Principio di incertezza di Heisenberg.

Cose da considerare:

  1. Sulla base della "destinazione" IP dichiarata nel pacchetto, i router intermedi potrebbero decidere di indirizzarti diversamente . Pertanto, se un traceroute è un tentativo di mappare in sequenza i router tra origine e destinazione, un traceroute può essere gettato via fuori rotta avendo percorsi che seguono percorsi diversi a seconda del nodo che si sta tentando di raggiungere.

  2. Non tutti i router ascolteranno i ping ICMP o UDP. Possono scegliere di ignorare silenziosamente questo traffico e semplicemente rilasciarlo alla NIC (spesso per aiutare a combattere DDoS). Questo può frustrare il tuo tentativo di mappare una rotta.

  3. Anche se si esegue correttamente il mapping di una rotta e tutti i nodi intermedi rispondono ai ping e non tentano di giocare con il tentativo di associazione, la rotta potrebbe cambiare per i pacchetti successivi inviati utilizzando un protocollo "reale" (o anche se si tenta di un traceroute una seconda volta).

  4. QoS può causare reti di normale comportamento per indirizzare il traffico in modo diverso. Ad esempio, il VoIP o lo streaming video possono richiedere un percorso, mentre la normale navigazione sul Web potrebbe richiedere un altro.

  5. Il genere del traffico può causare differenze nel routing. Ad esempio, anche senza considerare QoS, potresti ottenere un percorso diverso per FTP rispetto a quello per SSH. I nodi intermedi possono esercitare qualsiasi discrezione (qualsiasi cosa, da una selezione di percorsi completamente casuale, a un tentativo malevolo di rallentare il traffico, a un onesto tentativo di rendere più veloce la connessione effettuando il routing al nodo con il minimo carico) nel determinare dove indirizzare il traffico da ciascun hop.

  6. In teoria, i router intermedi potrebbero anche, se lo desiderano, trasformare il tentativo di traceroute in un ciclo infinito: il nodo A punta al nodo B, il nodo B punta al nodo C e il nodo C punta indietro al nodo A. Non c'è nulla che fermi il i router non lo fanno (non sono sicuro del motivo per cui sceglierebbero, ma è una possibilità) per i pacchetti rilevati come "traceroutes" (ping ICMP o UDP). Può fare questo per tentare di sventare i tuoi sforzi, o per qualsiasi altra ragione.

L'algoritmo di individuazione multipath è utile, ma non può superare questi limiti teorici.

Fondamentalmente, per determinare un percorso, devi inviare uno o più pacchetti. Questi pacchetti possono essere instradati in qualsiasi modo i nodi intermedi lo ritengano opportuno. Ma non appena si invia un altro pacchetto, non c'è assolutamente nulla che impedisca ai router di cambiare il percorso. Questa è una sorta di analogia di rete del principio di indeterminazione di Heisenberg.

I percorsi sono effimero e transitorio . Non si deve fare affidamento sulle informazioni ricevute da un traceroute per qualcosa di importante, se non per diagnosticare un problema di connettività su una rete in cui si ha già una profonda conoscenza della topologia (ad esempio su una LAN aziendale complicata) e può controllare il comportamento del nodi partecipanti. Se uno qualsiasi dei nodi partecipanti non è "tuo" (se non è possibile accedere con privilegi di amministratore di sistema), i risultati del traceroute sono effettivamente arbitrari.

D'altra parte, se tutti i nodi partecipanti siamo il tuo, puoi, come amministratore, controllare il comportamento esatto di ciascun nodo. Ad esempio, è possibile abilitare ICMP e configurare statico percorsi (percorsi che non cambiano). Puoi quindi essere sicuro che il tuo traceroute sia accurato. Ma se metti un bilanciatore di carico nel mezzo, dovrai essere consapevole del comportamento del bilanciamento del carico e del modo in cui può cambiare percorso quasi come necessario (anche se generalmente non è casuale e generalmente non tenta di ti ingannano apposta).


1
Grazie per questa risposta completa e dettagliata che fornisce una grande spiegazione sulle proprietà teoriche del traceroute. Ma riguardo alla tua conclusione ho (solo) imbattuto in "[Y. Zhang, V.Paxson e S.Shenker," La stazionarietà delle proprietà del percorso Internet: Routing, perdita e velocità ", nel rapporto tecnico ACIRI, maggio 2000.] che afferma che la maggior parte delle rotte sembrano essere stabili almeno per un giorno in relazione a più corse di traceroute, anche se non affronta la QoP e gli altri punti presi da voi riguardo ai protocolli "reali".
Sim

1
È un documento interessante (non ho letto tutto) e i risultati potrebbero essere empiricamente corretti, ma tieni presente che la carta è dell'anno 2000 ; Internet è cambiato molto da allora. I loro risultati potrebbero non essere più validi.
allquixotic

di causa, volevo solo menzionarlo qui per ulteriori informazioni. Purtroppo questo è il documento più aggiornato che ho trovato finora
Sim
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.