Il n'existe aucun moyen (à ma connaissance) de forcer l'utilisation de la bibliothèque standard du résolveur (cf. man 3 res_query
) pour utiliser TCP pour toutes les connexions, bien que les applications individuelles puissent le faire en définissant l'option RES_USEVC
lorsqu'ils démarrent.
Il n'existe pas non plus de moyen de configurer BIND pour qu'il n'envoie des requêtes que sur TCP.
Je te crois. pourrait le faire en théorie en exécutant Non consolidé localement et de mettre l'indicateur "do-udp" à false, puis de mettre 127.0.0.1 dans votre configuration DNS dans le panneau de configuration Réseau.
Cependant, la documentation n'indique pas clairement si cela empêche Unbound de répondant à les requêtes reçues par UDP. Je vais tester ça... Non, ça n'a pas marché. J'ai envoyé un mail à l'auteur...
Cela dit, vous ne devriez vraiment pas faire ça - vous devriez trouver la vraie faute. Je suis un fervent partisan de l'obligation du support TCP dans les DNS (j'ai écrit un article intitulé draft-ietf-dnsext-dns-tcp-requirements-03 ), mais il n'est toujours censé être utilisé que comme solution de repli lorsque les messages UDP sont trop volumineux pour tenir dans un format de 512 octets ou dans un format compatible EDNS0 étendu.