O Nmap usa um algoritmo diferente para rastreamento de traceroute(1)
, então a ideia de um o limite de lúpulo não faz sentido.
O traceroute tradicional usa pacotes UDP para portas de numeração alta e começa com um TTL de 1 para descobrir o próximo salto no caminho para o destino. Em seguida, aumenta para 2 para descobrir o segundo salto e assim por diante. Se, em algum ponto do caminho para o destino, houver um salto que se recusa a transmitir o tráfego UDP (um firewall, por exemplo), o traceroute começará a mostrar linhas "desconhecidas" como esta:
10 * * * 11 * * * 12 * * * 13 * * *
E ele continuará mostrando isso até atingir o número máximo (o campo IP TTL é limitado a 255, a maioria das implementações de traceroute definirá um limite inferior para a praticidade, como 30).
O traceroute do Nmap funciona de maneira um pouco diferente. Começa com algumas vantagens importantes:
- Requer que você tenha privilégios para detectar o tráfego de rede e enviar em soquetes não processados e
- Ele sabe quais probes alcançarão o destino como resultado da descoberta do host e das fases de execução da varredura de portas.
Armado com esta informação, o Nmap adivinha a distância até o alvo. Se você executou a detecção do sistema operacional e recebeu uma resposta do ICMP para um teste do UDP, ele pode calcular a distância exata. Caso contrário, começa em 10 ou a qualquer distância em que o último alvo estava. Em seguida, ele começa a enviar testes, diminuindo o TTL inicial a cada vez até que todos os saltos mais próximos sejam considerados (às vezes isso significa parar uma vez que um salto já encontrado é encontrado novamente, para não duplicar resultados). Em qualquer uma dessas sondas, o Nmap será iniciado em seguida no TTL 10 e contará up , replicando o algoritmo traceroute tradicional. A principal diferença aqui é que as sondagens que são enviadas têm garantia de obter uma resposta do alvo, uma vez que foram escolhidas para essa finalidade. Portanto, nunca ultrapassaremos o alvo ou escolheremos uma sonda de que um salto intermediário cairá.
O algoritmo é descrito integralmente no bloco de comentários inicial do arquivo traceroute.cc
na fonte do Nmap.