web-dev-qa-db-fra.com

Comment lire le contenu du cache DNS local?

Je sais que sous Windows, je peux émettre ipconfig /displaydns et je vois le contenu du cache du DNS local.

Comment puis-je répertorier le contenu du cache DNS sous Linux?

Je voudrais obtenir autant de solution de distribution croisée que possible.

35
Hanan N.

Avant systemd, il n'y avait presque pas de mise en cache DNS au niveau du système d'exploitation

Avant systemd, il n'y avait pas de mise en cache DNS au niveau du système d'exploitation sur Linux (et probablement la plupart d'Unix), sauf nscd ou dnsmasq a été installé et fonctionne.

Même alors, la fonction de mise en cache DNS de nscd a été désactivée par défaut dans Debian au moins, simplement parce que elle est cassée .

Quant à dnsmasq, le la mise en cache semble se produire dans la RAM par défaut.

17
Serge Stroobandt

nscd est le démon de mise en cache du service de noms. Il s'agit de l'utilitaire que Linux, Solaris et d'autres utilisent pour mettre en cache les recherches de service de noms. Le service de noms dans ce cas est un terme générique, non strictement limité à la résolution de l'hôte, mais aussi aux utilisateurs, groupes, etc.

Je ne connais aucun moyen de voir le contenu réel du cache, bien que vous puissiez afficher des statistiques avec /usr/sbin/nscd -g.

Cela peut au moins vous montrer l'efficacité de votre cache, mais pas exactement ce qu'il résout.

Vous pouvez avoir d'autres options si vous utilisez un autre outil de mise en cache, comme DNSMASQ.

9
Tim Kennedy

Si vous utilisez nscd, vous pouvez afficher le contenu (et éventuellement d'autres ordures), en affichant les chaînes ASCII du fichier cache binaire. Dans Debian/Ubuntu, cela le fichier est /var/cache/nscd/hosts pour le cache hôtes/DNS, vous pouvez donc exécuter strings /var/cache/nscd/hosts pour voir les hôtes dans le cache.

Notez qu'il s'agit d'un hack total car il n'y a apparemment aucun moyen approprié d'inspecter le cache nscd sans décoder le format binaire.

4
SteveK