Traceroute con icmp deshabilitado?

Iniciado por @XSStringManolo, 21 Agosto 2019, 22:17 PM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

Alguna forma de obtener los puntos con icmp deshabilitado?

Quiero hacer un herramienta para traceroute y mostrar todos los saltos con flechas/líneas y geoloc en un mapa con d3.js three.js o svg.

Pero claro, no me salen todos los puntos según estén configurados. Alguna alternativa o workaround?

animanegra

#1
Habilita el flag de Record Route, esto hace que dentro de la capa de opciones de IP se incluyan los saltos siempre que quepan en ese campo. Limitado pero util porque normálmente los saltos que no aparecen son los de la red de salida y entrada. De esta manera podrías ver las direcciones de las IPs de salida (algo es algo). Por cierto, la interfaz que marca el record route, es la de salida y la que te da el ICMP TTL excedeed es la de entrada, luego podrías vincular las dos direcciones IP como pertenecientes al mismo router.

Por otro lado recuerda que el path que ves en un traceroute puede no ser real, el traceroute te da la IP a una distancia concreta por la que ha pasado cada uno de los paquetes individuales. No se puede vincular que la IP que aparece en TTL 3 y en TTL 4 tengan un link entre ellas. Puede que en muchos casos sea así, pero en general no puedes decir que exista tal vínculo.

Si queda alguna duda pregunta, y si no me he explicado bien lo mismo.

42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

@XSStringManolo

Hay algo que no entiendo. Pongo un ejemplo.
Estan los equipos A B C y D.
Cómo es posible que B o C se oculten si A se comunica con B y C de comunica con D?

engel lex

CitarCómo es posible que B o C se oculten si A se comunica con B y C de comunica con D?

porque puede ser simplemente que en las tablas de seguridad, B esté configurado para solo responder a A y C, lo mismo para C con B y D... o simplemente tienen el icmp deshabilitado (no es necesario para establecer una ruta de red)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

animanegra

Voy a expandir lo dicho por engel.

Supondremos por simplificar que tenemos una red con un sólo camino de PC1 a PC2:

PC1 - A - B - C - D - PC2

B y C tienen el ICMP deshabilitado. Por lo que no contestarán con un ICMP cuando vean un paquete con el TTL = 0, simplemente lo tirarán.

Lanzas desde PC1 hacia PC2 el primer UDP con TTL = 1:

A le resta 1 al TTL, lo deshecha y avisa con un ICMP con IP origen A y destino PC1. Cuando te llega el paquete, tu apuntas que has recibido un paquete con la IP de A para el primer salto.

Lanzas desde PC1 hacia PC2 el segundo paquete UDP con TTL = 2:

A lo reenvía restando 1 al TTL, y en B el TTL llega a 0. Lo tira, pero como tiene deshabilitado el ICMP no envía ninguna notificación a PC1. Tras ell timeout, PC1 no recibe respuesta, como no sabe que IP hay detrás del segundo salto no puede poner ninguna. Normalmente se marca con un * en el traceroute.

Lanzas desde PC1 hacia PC2 el tercer paquete UDP con TTL = 3:

A lo envía a PC2 a través de B restando 1 al TTL. B lo envía a PC2 a través de C restando otra unidad al TTL. Por fin llega a C que tiene el mismo comportamiento que B. No envía ICMP y tira el paquete. PC1 no se entera, por lo que tras el timeout marcara que para ese salto no sabe que IP hay detrás y lo marca con un *.

Vamos aumentando el TTL y vamos teniendo el mismo comportamiento hasta que pongamos en el paquete enviado el TTL = 5. En dicho caso el paquete cruza todos los routers desde PC1 hasta PC2. PC2 contestará con ICMP diciendo que no tiene servicio en el puerto UDP que estas usando como puerto destino. Desde PC1 como se recibe un "ICMP port unreachable" en lugar de un "ICMP TTL Exceded" finalizas el proceso porque ya has llegado al destino.

Por otro lado, fíjate que las direcciones IP las recoges de paquetes independientes. Ahora plantéate que pasa si de PC1 a PC2 hay dos caminos posibles que se bifurcan en el primer router justamente después de PC1. E imagínate que dicho router envía los paquetes pares por un camino y los impares por el otro. ¿Las direcciones IP que ves en cada salto pertenecen al mismo camino?

42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

engel lex

CitarE imagínate que dicho router envía los paquetes pares por un camino y los impares por el otro. ¿Las direcciones IP que ves en cada salto pertenecen al mismo camino?

ahora imagínate que es una red global interconectada con montones de posibles caminos alrededor del planeta! XD
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

@XSStringManolo

Gracias! No hay ningún tipo de traceroute usando otro tráfico que muestre todos los puntos?

engel lex

Cita de: string Manolo en 22 Agosto 2019, 21:50 PM
Gracias! No hay ningún tipo de traceroute usando otro tráfico que muestre todos los puntos?

si un nodo no quiere responderte no va a hacerlo... se hace por seguridad y para evitar molestias... usualmente que no responda icmp ya es buena señal de que tiraron una regla de seguridad amplia
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

animanegra

Cita de: engel lex en 22 Agosto 2019, 22:03 PM
si un nodo no quiere responderte no va a hacerlo... se hace por seguridad y para evitar molestias... usualmente que no responda icmp ya es buena señal de que tiraron una regla de seguridad amplia
Lo amplio. Habilita el flag de record route y los routers por los que pase dejaran su ip en el campo de opciones. Ese campo sera copiado en el icmp de respuesta.

42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

engel lex

Cita de: animanegra en 22 Agosto 2019, 22:25 PM
Lo amplio. Habilita el flag de record route y los routers por los que pase dejaran su ip en el campo de opciones. Ese campo sera copiado en el icmp de respuesta.

Joder! hoy andas on fire! XD!!
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.