Eu trabalho para um provedor de serviços de VoIP e estou resolvendo um problema com um cliente que possui uma conexão de Internet a cabo que está me dando uma volta.
Ele tem um único bloco, que fingiremos ser 70.141.15.0/29, com o gateway em .1 e os roteadores em .2 e .3. Ambos os roteadores estão conectados ao seu modem a cabo, que é, até onde sabemos, definido como qualquer provedor de cabo que imagine que seja o "modo bridge".
Estou executando o ping desses dois roteadores simultaneamente da mesma caixa, que é um sistema Linux conectado à fibra do (provavelmente) nível (3). É desnecessário dizer que ninguém no planeta sabe quantos nós existem entre aqui e ali. Mas confira os resultados do ping.
Para o primeiro roteador:
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
A partir do 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
Confira os valores TTL. Isso faz sentido? Esses dispositivos são diretamente adjacentes um ao outro, conectados ao modem através de portas de switch separadas. Como alguém parece ter quase 200 lúpulos a mais? Ao fazer ping em outros sites, tenho a impressão de que o TTL não é implementado da maneira que eu acho. Duvido que haja 200 saltos entre mim e 4.2.2.2, ou woot.com, mas recebo menos de 50 resultados TTL de ambos.
Um desses roteadores (aquele com TTL mais alto) é da Fortinet, enquanto o outro é um dispositivo baseado em Linux personalizado. Tenho certeza de que o Forti tem uma pilha de rede doméstica, enquanto a caixa do Linux usa o que veio com o tarball de origem que os desenvolvedores de hardware baixaram. É provável que o eco do ICMP seja implementado de forma bizarra em um deles e envie deliberadamente todas as respostas com um TTL de 50?
Percebo também que um dos únicos sites em que posso encontrar respostas com TTL de aparência sã é slashdot e posso imaginar que seus servidores e roteadores possam ser um pouco menos "o que encontramos na garagem" do que o site médio, que meio que me faz sentir como se estivesse no caminho certo com essa última suposição.
Resumindo: TTL no ping significa alguma coisa confiável?