Recentemente, eu estava solucionando um meta-problema de conectividade de rede, pois sabia que um determinado destino era acessível, mas não consegui demonstrar isso traceroute
porque o caminho ficou frio após um certo número de saltos. Dado que o último salto observado estava a montante do nó de interesse, cheirei o tráfego, esperando confirmar que as sondas estavam chegando e aprendendo qual regra de filtro os estava bloqueando. Com certeza, aprendi que os probes eram datagramas UDP destinados a uma porta alta (e variável) que eu tinha, é claro, bloqueado para o tráfego de entrada.
Isso me surpreende, porque eu assumi que todas as traceroute
análises teriam como padrão o ICMP, pois as respostas são ICMP. Fiz uma pesquisa de documentação e constatei que implementações diferentes fazem escolhas diferentes, e algumas não permitem que o usuário faça uma seleção não padrão.
O resumo do método do probe Traceroute e a inferência do caminho IP de encaminhamento suportam minha intuição de que os probes do ICMP terão mais sucesso em alcançar o destino.
Permitir diferentes métodos de análise parece ser uma ótima ideia, mas o padrão para algo diferente do ICMP parece uma má idéia. Alguém poderia descrever a lógica por que é melhor usar o UDP por padrão?