Pacote de retenção do kernel do Linux?

Pacote de retenção do kernel do Linux?

Estive procurando um programa de terceiros para resolução de DNS (em uma solução incorporada) e no código para enviar a consulta DNS ao servidor upstream ele conectará () e enviará ().

send() retorna com a quantidade de bytes que foi fornecido (ou seja, não -1 ou errno set), mas nunca vejo a consulta DNS no Wireshark. Portanto, o programa DNS pensa que o pacote foi enviado, mas nunca recebe uma resposta e cronometra o pacote. As consultas DNS subsequentes são realizadas sem problemas.

O kernel está segurando o pacote e, em caso afirmativo, como posso ver POR QUE ele pode estar fazendo isso? Não há regras bloqueando a saída deste pacote.

Ouvi dizer que o kernel pode reter um pacote se achar que a rota para o destino remoto está inacessível. Isso está acontecendo e, em caso afirmativo, como posso saber mais sobre isso?

informação relacionada