Traceroute/tracert
La orden traceroute
- Comprobar por cuantos routers y su tiempo de respuesta se pasa hasta alcanzar un destino
- Traceroute en Unix/ Tracert en Windows
C:\>tracert www.uma.es
Traza a la dirección ccuma1i.sci.uma.es [150.214.40.97] sobre un máximo de 30 saltos:
1 <1 ms <1 ms <1 ms 192.168.2.1
2 2 ms 2 ms 23 ms mirouter [192.168.1.1]
3 39 ms 7 ms 2 ms 212.128.168.1
4 7 ms 2 ms 4 ms 10.200.10.10
5 7 ms 4 ms 4 ms 10.100.1.10
6 8 ms 27 ms 105 ms AE0-79.uva.rt1.cyl.red.rediris.es [130.206.201.13]
7 * 12 ms 10 ms UVA.AE2.ciemat.rt1.mad.red.rediris.es [130.206.245.9]
8 * 23 ms 25 ms CIEMAT.GE6-0-0.cica.rt1.and.red.rediris.es [130.206.245.38]
9 24 ms 33 ms 29 ms cica-router.red.rediris.es [130.206.194.2]
10 29 ms 34 ms 32 ms xe-0-0-0.malaga01.red.cica.es [150.214.231.2]
11 * 27 ms 32 ms uma-router.red.cica.es [150.214.231.170]
12 67 ms 79 ms 48 ms ccuma1i.sci.uma.es [150.214.40.97]
Traza completa.
IP e ICMP en traceroute
| Campo Tipo | Código | Tipo y código (en hexadecimal) | Significado del mensaje ICMP |
| 0 | 0 | 0×0 | Respuesta de eco, para ver si un destino es o no alcanzable. (Respuesta a la orden ping) |
| 3 | 3 | 3×3 | Puerto inalcanzable |
| 8 | 0×8 | Petición de eco (orden ping) | |
| 11 | 0xb | Tiempo excedido (TTL=0) para evitar rutas cíclicas |
- Utiliza el campo TTL de la cabecera IPy los mensajes ICMP mostrados en la tabla
- Se puede realizar con
- ICMP (tracert)
- UDP (traceroute)
Funcionamiento de la orden traceroute
1. En pc1 se ejecuta: traceroute 16.0.0.10
- pc1 envía un mensaje UDP al puerto 33435 (a un puerto donde no es espera encontrar ningún servidor UDP en ese puerto) encapsulado en un datagrama IP a pc2 con TTL=1 (traceroute envía por defecto 3 datagramas, pero lo veremos con 1 por simplicidad)
2. r1 envía un ICMP de TTL excedido al origen del datagrama (tipo 11, código 0), y pc1 muestra la dirección IP de origen de ese ICMP (r1) como primer salto en el camino pc1 → pc2
3. pc1 envía un mensaje UDP al puerto 33435 encapsulado en un datagrama al destino (pc2) con TTL 2
4. r1 disminuye en una unidad el TTL y lo reenvía hacia pc2 según su tabla de encaminamiento
5. r3 envía un ICMP de TTL excedido al origen del datagrama, por la ruta que le indica su tabla de encaminamiento
6. r1 reenvía el ICMP hacia pc1, tras disminuir en una unidad el TTL. pc1 muestra la dirección IP origen del ICMP recibido (r3) como segundo salto en el camino pc1 → pc2
7. pc1 envía un mensaje UDP al puerto 33435 encapsulado en un datagrama al destino (pc2) con TTL 3
8. r1 disminuye en una unidad el TTL y lo reenvía hacia pc2 según su tabla de encaminamiento
9. r3 disminuye en una unidad el TTL y lo reenvía hacia pc2 según su tabla de encaminamiento
10. r4 envía un ICMP de TTL excedido al origen del datagrama, por la ruta que le indica su tabla de encaminamiento (¡por r2!)
11. r2 reenvía el ICMP hacia pc1 , tras disminuir en una unidad el TTL, por la ruta que le indica su tabla de encaminamiento
12. r1 reenvía el ICMP, tras disminuir en una unidad el TTL. pc1 muestra la dirección IP origen del ICMP recibido (r4) como tercer salto en el camino pc1 → pc2
13. pc1 envía ahora un mensaje UDP al puerto 33435 encapsulado en un datagrama al destino (pc2) con TTL 4
14. r1 disminuye en una unidad el TTL y lo reenvía hacia pc2 según su tabla de encaminamiento
15. r3 disminuye en una unidad el TTL y lo reenvía hacia pc2 según su tabla de encaminamiento
16. r4 disminuye en una unidad el TTL y lo reenvía hacia pc2 según su tabla de encaminamiento
17. pc2 recibe el datagrama. Envía un ICMP de puerto inalcanzable al origen del datagrama
18. r4 reenvía el ICMP hacia pc1, tras disminuir en una unidad el TTL, por la ruta que le indica su tabla
19. r2 reenvía el ICMP hacia pc1, tras disminuir en una unidad el TTL, por la ruta que le indica su tabla
20. r1 reenvía el ICMP hacia pc1, tras disminuir en una unidad el TTL. pc1 muestra la dirección IP origen del ICMP recibido (pc2) y termina al ser el destino
21.
- La máquina origen enviará 3 mensajes UDP al puerto 33435 encapsulados en datagramas IP al destino con TTL=1, cuando reciba respuesta (o pasado un determinado tiempo, 5 segundos) enviará nuevamente 3 datagramas IP al destino con TTL=2, y así sucesivamente
- Cada router intermedio disminuye en una unidad el valor del campo TTL. Si TTL llega a cero, el router intermedio deberá enviar un mensaje ICMP encapsulado en un datagrama IP que indique que el TTL se ha excedido y que se ha descartado el datagrama inicial
- Si existe ruta para hacer llegar el mensaje ICMP a la máquina que inició el traceroute, la máquina origen podrá mostrar la dirección IP del nodo intermedio
- Si no existe ruta para hacer llegar el mensaje ICMP desde el nodo intermedio a la máquina que inició el traceroute, el mensaje ICMP se descartará y no llegará a la máquina origen. En este caso la máquina origen no podrá mostrar la dirección IP del nodo intermedio y mostrará un *
- En cualquiera de los dos casos anteriores, se continuará el envío de datagramas IP incrementando en una unidad el valor del campo TTL
- Cuando los datagramas IP lleguen al destino final, la máquina destino enviará mensajes ICMP indicando puerto inexistente y el origen al recibirlos terminará la ejecución de traceroute
- De forma similar a la descrita se puede hacer un tracert cambiando los mensajes UDP por mensajes ICMP de petición de eco y gestionando el TTL de forma idéntica.
- La idea de realizar el traceroute con UDP es no generar excesivo tráfico de ICMP que puede interpretarse por los administradores como un comportamiento inusual en la red.
- Los equipos con SSOO Windows realizan un traceroute ICMP (los equipos finales en Packet Tracer también).
- Los equipos Unix/Linux y los router de Cisco (en Packet Tracer, GNS3 y los equipos reales) realizan un traceroute UDP.

























Aún no hay comentarios.