Hallo NG,
denke mal, daß Linux als DNS Client wohl auch die aufgelösten Abfragen lokal zwischen speichern wird – wie kann man diesen lokalen Cache den löschen?
Quasi das Pendant zu ipconfig /flushdns
Danke schon mal für Eure Hilfe
Hi
“ich habe ein Auto, da ist ein Hebel an der Konsole…
Geht das so wie bei anderen Autos ?”
:O)
Sorry, aber ein bischen mehr Info darf es dann wohl doch sein….
Welche Distro?
Welche Installation?
Welche Funktion im Netz?
Welche Anbindung ans Internet?
Welcher DNS-Cache wird eingesetzt, wenn überhaupt?
(Allein Freshmeat liefert 13 Seiten voll mit Hits zum Thema DNS! Und
wir sollen raten, welcher Befehl “den” Cache löscht…hier im Forum
treiben sich ein paar ganz ausgebuffte Gurus herum (zu denen ich mich
__nicht__ zähle!) — von Prophetie habe ich allerdings nocht nichts gehört ;)
Also: Tausche Info gegen Hilfe! Wer tauscht mit ?
Gruß,
mcc
Hallo, Thomas
Tja, denn mal ein paar Takte von meiner Seite: Ich verstehe nicht, warum der DNS Probleme machen sollte. Im Gegensatz zu Windows, bei dem vor allem die NetBIOS-Namensauflösung immer wieder Spaß macht, sind mir bei TCP/IP keine solchen Probleme bekannt. Man kann den BIND als DNS-Cache einsetzen. Der hat aber keine Persistenzschicht. Übersetzung: DNS neu starten, fertig ist die Kiste. Der PDNSd (nicht zu verwechseln mit dem Power DNS) hat eine, die unter Debian in /var/cache/pdnsd/ liegt. Bei dem bin ich noch nie auf Probleme gestoßen. Es kann auch sein, dass Dein Problem nichts mit Namensauflösung zu tun hat. Der Web-PRoxy WWWOFFLE hat mir öfters gemeldet, dass er den Doimain-Namen nicht finden könne. /etc/init.d/wwwoffle restart hat das Problem gelöst.
Gruß,
Bernd
Hallo Thomas
denke mal, daß Linux als DNS Client wohl auch die aufgelösten Abfragen lokal zwischen speichern wird
Kurze Antwort: “Jein.” oder “Kommt drauf an.” ;-)
Etwas Hintergrundinformation zur Namensauflösung:
Unter Unix muss jedes einzelne Programm das Auflösen von Hostnamen in IP Adressen selbst durchführen. Dazu binden die meißten Programme die Bibliothek libresolv ein, die Teil der glibc ist. (Es gibt aber auch alternative Bibliotheken, z.B. libdns.) libresolv stellt dem Programm verschiedene Funktionen zur Verfügung, z.B gethostbyname(3), die das Auflösen von Hostnamen in IP Adressen erledigt.
Die Bibliothek libresolv wird auch oft “der Resolver” genannt, obwohl es sich nicht um einen eigenen Dienst oder Prozess handelt. Diese Resolver-Bibliothek implementiert keinen Cache.
So gesehen heisst die Antwort: “Nein, Linux speichert die aufgelösten Abfragen standardmässig *NICHT* lokal zwischen.”
Jetzt gibt es aber mehrere Möglichkeiten einen Cache auf einem Client System zu realisieren:
Bei ettlichen Distributionen ist in der Standardinstallation der “Name Service Caching Daemon”, nscd, aktiv. Das ist ein Dienst aus dem Glibc Paket, der sich um das Zwischenspeichern von verschiedenen Abfragen kümmert (hier geht es nicht nur um DNS, sondern beispielsweise auch um Informationen zu Benutzern, die ja nicht nur aus /etc/passwd stammen kann, sondern auch aus LDAP- oder SQL-Abfragen).
Ob das der nscd bei Dir läuft, kannst Du so testen: $ ps aux | grep [n]scd root 9761 0.0 0.0 42732 780 ? Ss 23:00 0:00 /usr/sbin/nscd Den DNS Query Cache des nscd löscht man (als User root) mit # nscd -i hosts,
einen laufenden nscd kannst Du mit # nscd -K beenden.
Wenn Du gar kein Caching willst, kannst Du den Dienst auch komplett deaktivieren (bei Fedora/RedHat z.B mit # checkconfig nscd off, bei Suse wohl über Yast).
Ferner gibt es die (weniger wahrscheinliche) Möglichkeit, dass auf dem Client System ein Caching Nameserver betrieben wird. Wie der Cache des Nameservers gelöscht werden kann hängt vom Produkt ab. Bei BIND 9 geht es z.B. (als root) mit # rndc flush.
Es gibt auch noch weitere Möglichkeiten ein Caching zu realisieren, etwa den lwresd, aber die wirst Du in der Praxis wohl kaum antreffen.
Harald