Trabajo para un proveedor de servicios de VoIP y estoy trabajando en un problema con un cliente que tiene una conexión a Internet por cable que me está volviendo loco.
Tiene un solo bloque, que simularemos es 70.141.15.0/29, con la puerta de enlace en .1 y enrutadores en .2 y .3. Ambos enrutadores están conectados a su módem de cable que, según nuestro conocimiento, está configurado para lo que los proveedores de cable imaginen que sea el "modo puente".
Estoy haciendo ping a ambos enrutadores simultáneamente desde la misma caja, que es un sistema Linux conectado a fibra desde (probablemente) Nivel (3). No hace falta decir que nadie en el planeta sabe cuántos nodos hay entre aquí y allá. Pero mira los resultados del ping.
Al primer enrutador:
64 bytes from 70.141.15.2: icmp_seq=2637 ttl=47 time=45.0 ms
64 bytes from 70.141.15.2: icmp_seq=2638 ttl=47 time=39.2 ms
64 bytes from 70.141.15.2: icmp_seq=2639 ttl=47 time=37.3 ms
64 bytes from 70.141.15.2: icmp_seq=2640 ttl=47 time=46.1 ms
64 bytes from 70.141.15.2: icmp_seq=2641 ttl=47 time=45.8 ms
64 bytes from 70.141.15.2: icmp_seq=2642 ttl=47 time=46.5 ms
64 bytes from 70.141.15.2: icmp_seq=2643 ttl=47 time=40.9 ms
Del segundo:
64 bytes from 70.141.15.3: icmp_seq=631 ttl=239 time=54.7 ms
64 bytes from 70.141.15.3: icmp_seq=637 ttl=239 time=40.5 ms
64 bytes from 70.141.15.3: icmp_seq=638 ttl=239 time=40.3 ms
64 bytes from 70.141.15.3: icmp_seq=639 ttl=239 time=38.4 ms
64 bytes from 70.141.15.3: icmp_seq=640 ttl=239 time=44.9 ms
64 bytes from 70.141.15.3: icmp_seq=641 ttl=239 time=38.4 ms
64 bytes from 70.141.15.3: icmp_seq=642 ttl=239 time=38.8 ms
Echa un vistazo a los valores TTL. ¿Esto tiene sentido? Estos dispositivos están directamente adyacentes entre sí, conectados a ese módem a través de puertos de conmutador separados. ¿Cómo puede uno tener casi 200 saltos más? Al hacer ping a otros sitios, tengo la impresión de que TTL simplemente no se implementa de la manera que creo. Dudo que haya 200 saltos entre yo y 4.2.2.2, o woot.com, pero obtengo menos de 50 resultados TTL de ambos.
Uno de estos enrutadores (el que tiene el TTL más alto) es de Fortinet, mientras que el otro es un dispositivo personalizado basado en Linux. Estoy bastante seguro de que Forti tiene una pila de red doméstica, mientras que la caja de Linux usa lo que viene con el tarball fuente que los desarrolladores de hardware descargaron. ¿Es probable que el eco ICMP se implemente de forma extraña en uno de estos y envíe deliberadamente todas las respuestas con un TTL de 50?
También noto que uno de los únicos sitios que puedo encontrar que responde con un TTL de aspecto sensato es slashdot, y puedo imaginar que sus servidores y enrutadores podrían ser un poco menos "lo que encontramos en el garaje" que el sitio web promedio, que tipo de me hace sentir que podría estar en el camino correcto con esa última suposición.
En resumen: ¿TTL en ping significa algo confiable?