O Wireshark mostrará o que chega na interface de rede. O kernel obviamente viu esses pacotes, mas por algum motivo decidiu que eles não devem ser entregues ao comando traceroute.
Há algumas coisas que poderiam ter dado errado, fazendo com que o kernel decidisse não entregar esses pacotes.
- Você pode ter um roteamento assimétrico que não é adequado para a filtragem de caminho inverso, mas deixou
rp_filter
ativado. - O kernel pode não corresponder ao conteúdo da mensagem de erro ICMP com um soquete local. Isso pode acontecer porque o pacote foi truncado com informações insuficientes disponíveis para tomar essa decisão. Isso também pode acontecer devido a alguma configuração NAT quebrada, em que os pacotes em uma direção são roteados por meio de um NAT, mas não em outra direção.
- O kernel pode descartar os pacotes devido a uma soma de verificação ruim.
Destes, acho que o rp_filter
parece a explicação mais provável. Você não especificou um sistema operacional, mas parece que ele pode ser um sistema Linux, portanto, tente este comando: head /proc/sys/net/ipv4/conf/*/rp_filter
. Você provavelmente veria 1
em cada um deles, o que significa que o filtro está ativado. Tente escrever um 0
para o que corresponde à interface da qual os pacotes estão sendo descartados, bem como para o nome do dispositivo all
.