Traceroute - Comando Linux - Comando Unix

traceroute - imprimir os paquetes de ruta para o servidor de rede

Sinopse

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g gateway ]

[ -i iface ] [ -m max_ttl] [ -p port ]

[ -q nqueries ] [ -s src_addr ] [ -t tos ]

[ -w waittime ] [ -z pausemsecs ]

host [ packetlen ]

Descrición

Internet é unha gran e complexa agregación de hardware de rede, conectados por pasarelas. Seguindo a ruta que segue os paquetes (ou atopando a porta de entrada maliciosa que está a descartar os paquetes) pode ser difícil. Traceroute utiliza o campo `tempo para vivir 'do protocolo IP e intenta obter unha resposta ICIME TIME_EXCEEDED de cada pasarela ao longo da ruta a algún servidor.

O único parámetro obrigatorio é o nome do servidor de destino ou o número de IP . A lonxitude do datagrama da sonda predeterminada é de 40 bytes , pero isto pódese aumentar especificando unha lonxitude de paquete (en bytes) despois do nome do servidor de destino.

Outras opcións son:

-f

Establece o tempo de espera inicial utilizado no primeiro paquete sonda saínte.

-F

Establecer o bit "non fragmentar".

-d

Habilitar a depuración de nivel de socket.

-g

Especifique unha porta de ruta de fonte solta (8 máximo).

-i

Especifique unha interface de rede para obter o enderezo IP fonte para os paquetes de sonda saíntes. Isto normalmente só é útil nun host multi-homed. (Vexa a bandeira -s para outra forma de facelo.)

-I

Use ICMP ECHO en lugar de datagramas UDP.

-m

Estableza o tempo máximo para vivir (número máximo de saltos) usado en paquetes de sonda saíntes. O valor predeterminado é de 30 lúpulo (o mesmo estándar usado para conexións TCP).

-n

Imprime as direccións de salto numéricamente en lugar de simbólicamente e numéricamente (garda unha procura de enderezo de nome de nome para cada porta de entrada que se atopa na ruta).

-p

Estableza o número de porto UDP básico usado nas sondas (por defecto é 33434). Traceroute espera que nada estea escoitando na base de portos UDP a base + nhops - 1 no servidor de destino (así que unha mensaxe ICMP PORT_UNREACHABLE será devolta para finalizar o seguimento da ruta). Se algo está a escoitar nun porto no intervalo predeterminado, esta opción pode usarse para escoller un rango de porto non utilizado.

-r

Ignora as táboas de enrutamento normais e envía directamente a un servidor nunha rede anexa. Se o servidor non está nunha rede directamente asociada, devólvese un erro. Esta opción pode ser usada para ping a un servidor local a través dunha interface que non ten ruta a través dela (por exemplo, despois de que a interface fose eliminada por enrutamento (8C)).

-s

Use o seguinte enderezo IP (que normalmente se dá como un número de IP, non un nome de máquina) como o enderezo fonte en paquetes de sonda saíntes. Nos hosts multi-homed (aqueles con máis dunha dirección IP), esta opción pode usarse para forzar o enderezo fonte a ser outra cousa que a dirección IP da interface onde se envía o paquete de sonda. Se o enderezo IP non é un dos enderezos da interface desta máquina, devólvese un erro e non se envía nada. (Vexa a bandeira -i por outra forma de facelo).

-t

Estableza o tipo de servizo nos paquetes da sonda co seguinte valor (cero por defecto). O valor debe ser un número decimal no intervalo 0 a 255. Esta opción pódese usar para ver se diferentes tipos de servizo dan lugar a diferentes camiños. (Se non está a executar 4.4bsd, isto pode ser académico xa que os servizos de rede normais como telnet e ftp non permiten controlar o TOS). Non todos os valores de TOS son legais ou significativos - vexa a especificación de IP para definicións. Os valores útiles son probabelmente ` -t 16 '(baixo retraso) e` -t 8 ' (alto rendemento).

-v

Saída verbosa. Reciben paquetes ICMP que non son TIME_EXCEEDED e non descritos.

-w

Establece o tempo (en segundos) para agardar unha resposta a unha sonda (por defecto 5 segundos).

-x

Toggle ip checksums. Normalmente, isto impide que o traceroute calcula os comprobacións ip. Nalgúns casos, o sistema operativo pode sobrescribir partes do paquete de saída pero non recalcular a suma de comprobación (polo tanto, nalgúns casos o valor predeterminado non é calcular as sumas de verificación e usar -x fai que se calcular). Teña en conta que as sumas de verificación adoitan ser necesarias para o último salto cando se usan sondas ICMP ECHO ( -I ). Entón, sempre se calculan cando se usa ICMP.

-z

Establece o tempo (en milisegundos) para facer unha pausa entre sondas (predeterminado 0). Algúns sistemas como Solaris e routers como o Ciscos limitan a velocidade das mensaxes icmp. Un bo valor para usar con isto é 500 (por exemplo, 1/2 segundo).

Este programa intenta rastrexar a ruta que seguiría un paquete de IP a algún servidor de Internet mediante o lanzamento de paquetes de sonda UDP cun pequeno ttl (tempo para vivir) e, a continuación, escoitando por un intervalo de tempo ICMP "excedido" dunha pasarela. Comezamos as nosas probas cun ttl de un e aumentamos un ata que obtemos un "porto inalcanzable" de ICMP (o que significa que temos que "hostear") ou alcanzar un máximo (que por defecto é de 30 lúpulos e pode cambiarse co -m Bandeira). Tres sondas (cambio con -q bandeira) son enviadas a cada configuración ttl e unha liña está impresa mostrando o ttl, o enderezo da pasarela eo tempo de ida e volta de cada sonda. Se as respostas da sonda proveñen de diferentes portas, imprimirase a dirección de cada sistema de resposta. Se non hai resposta dentro dun período de 5 segundos. intervalo de tempo de espera (modificado coa marca -w ), imprímese "*" para esa sonda.

Non queremos que o servidor de destino procese os paquetes de sonda UDP para que o porto de destino estea configurado nun valor improbable (se algún clod do destino usa ese valor, pode modificarse coa bandeira -p ).

Un uso e saída de exemplo pode ser:

[yak 71]% traceroute nis.nsf.net. traceroute a nis.nsf.net (35.1.1.48), 30 hops max, 38 byte packet 1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32. 216.1) 39 ms 39 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms 5 ccn -nerif22.Berkeley.EDU (128.32.168.22) 39 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms 8 129.140. 70.13 (129.140.70.13) 99 ms 99 ms 80 ms 9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms 10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms 11 nic.merit.edu (35.1 .1.48) 239 m 239 m 239 m

Teña en conta que as liñas 2 e 3 son iguais. Isto é debido a un núcleo de buggy no sistema de segundo hop - lbl-csam.arpa - que forwards paquetes cun zero ttl (un erro na versión distribuída de 4.3BSD). Teña en conta que ten que adiviñar o camiño que os paquetes están a atravesar o país xa que o NSFNet (129.140) non fornece traducións de enderezo por nome para as súas NSS.

Un exemplo máis interesante é:

[yak 72]% traceroute allspice.lcs.mit.edu. traceroute para allspice.lcs.mit.edu (18.26.0.115), 30 lúpulos max 1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms 5 ccn-nerif22 .Berkeley.EDU (128.32.168.22) 20 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms 8 129.140.70.13 (128.32.197.4) 59 ms 119 ms 39 ms 7 129.140.70.13) 80 ms 79 ms 99 ms 9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms 10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms 11 129.140.72.17 (129.140.72.17) 300 ms 239 m 239 m 12 * * * 13 128.121.54.72 (128.121.54.72) 259 m 499 m 279 m 14 * * * 15 * * * 16 * * * 17 * * * 18 ALLSPICE.LCS.MIT.EDU (18.26 .0.115) 339 m 279 m 279 m

Teña en conta que as pasarelas 12, 14, 15, 16 e 17 saltan ou non envían mensaxes "tempo superado" a ICMP ou envíanos cun ttl demasiado pequeno para chegar a nós. 14 - 17 están a executar o código MIT C Gateway que non envía "tempo superado" s. Deus só sabe o que está a suceder con 12.

O gateway silencioso 12 anterior pode ser o resultado dun erro no 4. [23] Código de rede BSD (e os seus derivados): 4.x (x <= 3) envía unha mensaxe inalcanzable usando calquera cousa que resta no orixinal datagrama. Xa que, para as pasarelas, o ttl restante é cero, o ICMP "o tempo excedido" está garantido para que non o volvamos a facer. O comportamento deste erro é un pouco máis interesante cando aparece no sistema de destino:

1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1 ) 19 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms 5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms 6 csgw. Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 rip.Berkeley.EDU (128.32.131.22) 59 Señorita ! 39 ms. 39 ms.

Teña en conta que hai 12 "pasarelas" (13 son o destino final) e exactamente a última metade deles están "desaparecidos". O que está sucedendo realmente é que rip (un Sun-3 con Sun OS3.5) está a usar o ttl desde o noso datagrama chegando como o ttl na súa resposta ICMP. Entón, a resposta fará o tempo de espera no camiño de retorno (sen notificación enviada a ninguén desde que ICMP non se envíe a ICMP) ata que probemos cun ttl que teña polo menos o dobre da lonxitude da ruta. É dicir, o rip é realmente só 7 pulgadas. Unha resposta que retorna con un ttl de 1 é unha pista que existe neste problema. Traceroute imprime un "!" despois do tempo se o ttl é <= 1. Dado que os vendedores envían unha gran cantidade de software obsoleto (DEC (Ultrix, Sun 3.x) ou non estándar (HPUX), esperan ver este problema frecuentemente e / ou ter coidado ao seleccionar o destino anfitrión das túas sondas.

Outras anotacións posibles despois do tempo son ! H ,! N , ou ! P (host, rede ou protocolo inalcanzable),! S (fonte ruta fallou), F- (fragmentación necesaria - o valor RFC1191 Path MTU Discovery aparece), ¡X (comunicación administrativamente prohibida),! V (violación de precedencia do servidor),! C (corte de precedencia en vigor), ou ! (Código non dispoñible de ICMP). Estes son definidos por RFC1812 (que reemplaza a RFC1716). Se case todas as sondas dan lugar a algún tipo de acceso inalcanzable, o trazador desprázase e sae.

Este programa está destinado a ser usado en probas de rede, medición e xestión. Debe ser usado principalmente para illamento de falla manual. Debido á carga que podería impoñer na rede, é impropio empregar traceroute durante as operacións normais ou desde scripts automatizados.

Ver tamén

pathchar (8), netstat (1), ping (8)