Wir haben ein kleines Rechenzentrum mit ungefähr hundert Hosts, die auf 3 interne DNS-Server verweisen (Bind 9). Unser Problem tritt auf, wenn einer der internen DNS-Server nicht mehr verfügbar ist. Zu diesem Zeitpunkt arbeiten alle Clients, die auf diesen Server zeigen, sehr langsam.
Das Problem scheint zu sein, dass der Stock-Linux-Resolver nicht wirklich das Konzept des "Failovers" auf einen anderen DNS-Server hat. Sie können das Zeitlimit und die Anzahl der verwendeten Wiederholungsversuche anpassen (und die Drehung so einstellen, dass sie in der Liste angezeigt wird). Unabhängig von den Einstellungen, die Sie für unsere Dienste verwenden, können Sie jedoch eine wesentlich langsamere Leistung erzielen, wenn ein primärer DNS-Server nicht mehr verfügbar ist. Momentan ist dies für uns eine der größten Ursachen für Serviceunterbrechungen.
Meine ideale Antwort wäre so etwas wie "RTFM: Tweak /etc/resolv.conf so ...", aber wenn das eine Option ist, habe ich es nicht gesehen.
Ich habe mich gefragt, wie andere Leute mit diesem Problem umgegangen sind.
Ich kann 3 mögliche Arten von Lösungen sehen:
Verwenden Sie Linux-ha / Pacemaker und Failover-IPs (damit die DNS-IP-VIPs "immer" verfügbar sind). Leider haben wir keine gute Fechtinfrastruktur und ohne Fechten funktioniert der Schrittmacher nicht sehr gut (nach meiner Erfahrung senkt der Schrittmacher die Verfügbarkeit ohne Fechten).
Führen Sie auf jedem Knoten einen lokalen DNS-Server aus und lassen Sie die Datei resolv.conf auf localhost verweisen. Dies würde funktionieren, aber es würde uns viel mehr Dienste zum Überwachen und Verwalten geben.
Führen Sie auf jedem Knoten einen lokalen Cache aus. Leute scheinen nscd als "kaputt" zu betrachten, aber dnrd scheint die richtigen Funktionen zu haben: dns-Server werden als "hoch" oder "runter" markiert und dns-Server werden nicht "runter" verwendet.
Any-Casting scheint nur auf der IP-Routing-Ebene zu funktionieren und hängt von Routenaktualisierungen für Serverausfälle ab. Multicasting schien eine perfekte Antwort zu sein, aber Bind unterstützt kein Broadcasting oder Multicasting, und die Dokumente, die ich finden konnte, scheinen darauf hinzudeuten, dass Multicast-DNS eher auf die Erkennung und automatische Konfiguration von Diensten als auf die reguläre DNS-Auflösung abzielt .
Fehlt mir eine offensichtliche Lösung?