En el ámbito de la seguridad de red, los resultados erróneos en las pruebas de Traceroute pueden llevar a malentendidos sobre el comportamiento de la conectividad y la ruta del tráfico. Este artículo aborda un problema específico en las versiones anteriores de FortiOS, donde las respuestas a paquetes ICMP pueden originarse de interfaces incorrectas, afectando la precisión de los resultados de Traceroute. Aquí exploraremos el problema, cómo diagnosticarlo y la solución recomendada para garantizar resultados correctos.
Índice
Descripción del problema
El artículo explica el cambio de comportamiento en el FortiGate respecto a las respuestas a los paquetes ICMP que provienen de Traceroute. Este comportamiento nunca impactó el flujo real del tráfico, pero mostraba resultados incorrectos en Traceroute.
Alcance
FortiGate.
Diagnóstico paso a paso
En versiones anteriores de FortiOS, al implementar SD-WAN y rutas ECMP, FortiGate ignoraba ifIndex al verificar la tabla de enrutamiento. Como resultado, la búsqueda de rutas siempre devolvía la primera coincidencia, lo que podría no ser la mejor opción. Esto hacía parecer a los usuarios que el paquete ICMP se enviaba desde una interfaz, pero los paquetes ICMP_TIME_EXCEEDED eran recibidos desde diferentes interfaces, generando resultados incorrectos para Traceroute.
La siguiente imagen explica el comportamiento en versiones previas:

Salida del Sniffer en FortiGate1:
2024-01-08 11:14:23.567254 VPN-4 out 10.103.192.125 -> 10.102.83.253: icmp: echo request
2024-01-08 11:14:23.582648 VPN-1 in 10.103.21.33 -> 10.103.192.125: icmp: time exceeded in-transit
Se puede observar que la respuesta para Traceroute se recibe de una interfaz diferente.
Salida del Sniffer en FortiGate2:
2024-01-08 11:14:23.593790 HUB1-VPN4 in 10.103.192.125 -> 10.102.83.253: icmp: echo request
2024-01-08 11:14:23.594007 HUB1-VPN1 out 10.103.21.33 -> 10.103.192.125: icmp: time exceeded in-transit
El paquete ICMP_TIME_EXCEEDED se recibe de una interfaz diferente a la del paquete de solicitud.
Tabla de enrutamiento en FortiGate2 :
Tabla de enrutamiento para VRF=0
S* 0.0.0.0/0 [1/0] vía HUB1-VPN1 túnel 170.75.32.40, [1/0] <———– La primera entrada se elige para la respuesta.
[1/0] vía HUB1-VPN4 túnel 10.103.20.1, [1/0]
Solución recomendada
Este comportamiento ha cambiado en FortiOS 7.0.16, 7.2.9, 7.4.4 y 7.6.0. En adelante, los paquetes ICMP_TIME_EXCEEDED seguirán la misma interfaz que el paquete ICMP original, lo que significa que se verán resultados correctos de Traceroute.
Comandos CLI utilizados
Mostrar tabla de enrutamiento:
get router info routing-table all
Buenas prácticas y recomendaciones
Es importante siempre actualizar a la última versión de FortiOS para beneficiarse de correcciones de errores y mejoras de rendimiento. Además, realizar pruebas periódicas de conectividad asegura que se mantenga la integridad de la red.
Notas adicionales
Para los administradores de red, es vital monitorear y entender cómo las actualizaciones de FortiOS pueden afectar el comportamiento del tráfico y la interacción con herramientas de análisis de red como Traceroute.
¿Te ha resultado útil??
0 / 0

Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!