it-swarm.com.de

Wie lese ich den lokalen DNS-Cache-Inhalt?

Ich weiß, dass ich unter Windows ipconfig /displaydns Ausgeben kann und den Cache-Inhalt des lokalen DNS sehe.

Wie kann ich den Cache-Inhalt des DNS unter Linux auflisten?

Ich möchte so viel wie möglich von einer Cross-Distribution-Lösung erhalten.

35
Hanan N.

Vor systemd gab es fast kein DNS-Caching auf Betriebssystemebene

Vor systemd gab es unter Linux (und wahrscheinlich den meisten Unix) kein DNS-Caching auf Betriebssystemebene, es sei denn nscd oder dnsmasq wurde installiert und läuft.

Selbst dann war die DNS-Caching-Funktion von nscd zumindest in Debian standardmäßig deaktiviert, einfach weil es ist kaputt .

Für dnsmasq ist das Caching scheint im RAM zu erfolgen standardmäßig.

17

nscd ist der Name Service Caching Daemon. Dies ist das Dienstprogramm, das Linux, Solaris und andere zum Zwischenspeichern von Namensdienst-Lookups verwenden. Name Service ist in diesem Fall ein Oberbegriff, der nicht ausschließlich auf die Hostauflösung beschränkt ist, sondern auch auf Benutzer, Gruppen usw.

Ich kenne keine Möglichkeit, den tatsächlichen Inhalt des Caches anzuzeigen, obwohl Sie Statistiken mit /usr/sbin/nscd -g Anzeigen können.

Das kann Ihnen zumindest zeigen, wie effizient Ihr Cache ist, wenn auch nicht genau, was er auflöst.

Möglicherweise haben Sie andere Optionen, wenn Sie ein alternatives Caching-Tool wie DNSMASQ verwenden.

9
Tim Kennedy

Wenn Sie nscd verwenden, können Sie den Inhalt (und möglicherweise einen anderen Müll) anzeigen, indem Sie die Zeichenfolgen ASCII) aus der binären Cache-Datei anzeigen. In Debian/Ubuntu Die Datei ist /var/cache/nscd/hosts für den Hosts/DNS-Cache, sodass Sie strings /var/cache/nscd/hosts ausführen können, um die Hosts im Cache anzuzeigen.

Beachten Sie, dass dies ein totaler Hack ist, da es anscheinend keine richtige Möglichkeit gibt, den nscd -Cache zu untersuchen, ohne das Binärformat zu dekodieren.

4
SteveK