Comment lire le contenu du cache DNS local?

31

Je sais que sur Windows, je peux émettre ipconfig /displaydnset je vois le contenu du cache du DNS local.

Comment lister le contenu du cache DNS sous Linux?

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

Hanan N.
la source
4
Pour autant que je sache, il n'y a pas de cache DNS maintenu sur le client sous Linux (résolveur) à moins que le système utilise uniquement le service DNS de mise en cache locale sur le client.
Nikhil Mulley
Vous avez toujours le /etc/hostsfichier qui peut contenir des entrées générées par les services de liste noire DNS.

Réponses:

15

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

Avant, systemdil n'y avait pas de mise en cache DNS au niveau du système d'exploitation sur Linux (et probablement la plupart d'Unix), à moins que nscdou n'ait dnsmasqété installé et en cours d'exécution.

Même dans ce cas, la fonctionnalité de mise en cache DNS de nscdétait désactivée par défaut dans Debian au moins, tout simplement parce qu'elle est cassée .

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

Serge Stroobandt
la source
2
Beaucoup de systèmes utilisent dnsmasqde nos jours par défaut, donc unix.stackexchange.com/q/162973/79839 pourrait être utile.
poussins
1
Et ces jours- ci , tout ce qui utilise systemdaura probablement un systemd-resolvedfonctionnement par défaut qui met en cache les résultats DNS en fonction de leur TTL
Drew
9

nscdest 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 également aux utilisateurs, aux groupes, etc.

Je ne connais pas de 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.

Tim Kennedy
la source
3

Si vous utilisez nscd, vous pouvez afficher le contenu (et éventuellement d'autres ordures), en affichant les chaînes ASCII du fichier de cache binaire. Dans Debian / Ubuntu, ce fichier est /var/cache/nscd/hostsdestiné au cache hôtes / DNS, vous pouvez donc exécuter strings /var/cache/nscd/hostspour 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 nscdcache sans décoder le format binaire.

SteveK
la source