
Ich habe die Domain bei Namecheap gekauft und im Client-Panel meine persönlichen NS-Server eingerichtet:
ns1.example.com
ns2.example.com
1) Gehen bei Nichtverfügbarkeit von Server NS1 alle Anfragen trotzdem an NS1 oder gehen sie alle an Server NS2? Wie kann man einen abrupten Wechsel für alle Anfragen einrichten, wenn NS1 oder NS2 nicht verfügbar sind?
2) Nach den NS-Servern ns1/2 habe ich Load Balancer für den Fall, dass einer der LB nicht verfügbar bleibt. Wie richte ich den NS-Server ein, um diesen Status zu überprüfen (welche Anwendung soll verwendet werden – Bind oder sonst, kann es eine API geben oder können Sie es so einrichten, dass alle Anfragen nur an funktionierende LB umgeleitet werden)?
Antwort1
1) Falls Server ns1 nicht verfügbar ist, kommen alle Anfragen weiterhin an ns1 oder kommen sie alle an Server ns2?
Nein, so funktioniert das DNS nicht. Es bietet standardmäßig Lastenausgleich, kein Failover.
DNS befasst sich mit Ressourcendatensatz-Sets. Nicht mit Listen, sondern mit Sets. Listen sind geordnet, Sets nicht.
Der Satz von Nameservern für einen Domänennamen enthält alle Namen, die für diese Domäne maßgebend sind. Anders ausgedrückt: Wenn example.org
gilt ns1.example.com
, ns2.example.com
erhalten beide Server statistisch gesehen zu jeder Zeit 50 % aller Anfragen. Es istNICHT100 % für ns1
und nur dann, wenn es fehlschlägt, geht es zu 100 % auf ns2
.
Also jeweils 50 % der Anfragen, aber was passiert, wenn eine aus irgendeinem Grund nicht mehr antwortet: Dann wechselt der Resolver zur anderen, aber erst, nachdem er sie abgefragt hat, weil er nicht wissen kann, wann sie nicht mehr geantwortet hat, und er muss auch die nicht antwortende regelmäßig prüfen, um festzustellen, wann sie wieder online ist. Das bedeutet, dass die Auflösung erfolgt, aber einfach mehr Zeit in Anspruch nimmt, weil der Algorithmus zuerst so vorgeht: - fragen ns1
- einige Zeit warten - erneut fragen ns1
- einige Zeit warten - und irgendwann (die Wartezeit zwischen zwei Abfragen und die Anzahl der Wiederholungsversuche ist oft konfigurierbar und in jeder Software unterschiedlich) wechselt er zu ns2
und erhält so schließlich die Antwort.
Bei der aufrufenden Anwendung, die dieser DNS-Auflösung zugrunde liegt, kann es selbst zu einer Zeitüberschreitung kommen, sodass sie das Warten auf die Antwort unter Umständen abbrechen muss, wenn das oben genannte eintritt und zu lange dauert.
Heutzutage wird „hochverfügbares DNS“ normalerweise durch die Verwendung von Anycast-Technologie bereitgestellt: Nameserver werden in IP-Adressen aufgelöst, die an verschiedenen Orten per Anycast gesendet werden. Dies bietet sowohl eine bessere Leistung aufgrund von mehr „lokalem“ Zugriff als auch ein automatisiertes Failover (aber aufgrund einer IP-Funktion, nicht einer spezifischen DNS-Funktion), da ein anderer Knoten den Verkehr übernimmt, wenn einer nicht antwortet, und zwar aufgrund der Funktionsweise von BGP. Daher wird die oben dargestellte Timeout- und Wiederholungsschleife nicht erstellt.
Nach NS-Servern ns1/2 habe ich Load Balancer
Mir ist das nicht klar, aber setzen Sie auf keinen Fall Load Balancer oder ähnliches vor Nameserver. Meistens verursachen sie mehr Probleme als sie Lösungen bieten (weil sie oft eine sehr enge Teilmenge des DNS-Protokolls implementieren und daher Interoperabilitätsprobleme verursachen).
Gibt es eine API?
Es gibt viele Möglichkeiten, Load Balancer zu konfigurieren und zu verwenden und sie so einzurichten, dass sie den Status der Dienste berücksichtigen, vor denen sie sich befinden. Aber an dieser Stelle ist Ihre Frage viel zu allgemein gehalten. Sie müssen sie klarer formulieren und dabei den ersten Teil und das DNS-Missverständnis berücksichtigen, das Sie möglicherweise hatten.
Antwort2
Der Typ des von Ihnen verwendeten Domain Name System (DNS)-Servers macht einen großen Unterschied bei der Vorgehensweise. Beispielsweise bietet eine Active Directory-integrierte Zone mit ordnungsgemäßer Replikation zwischen anderen DNS-Servern, die normalerweise auch Domänencontroller sind, ein gewisses Maß an Fehlertoleranz.
Clients wird normalerweise ein primärer, sekundärer und in einigen Fällen tertiärer und noch höherer DNS-Anbieter zugewiesen, die sie in ihrer lokalen IP-Konfiguration verwenden können. Falls ein Client den Datensatz noch nicht zwischengespeichert hat (basierend auf seiner Time To Live (TTL)) und seinen primären DNS-Anbieter zum Zeitpunkt der Anforderung nicht erreichen kann, beginnt er mit der Arbeit über den sekundären Anbieter und weiter, bis sein Timeout-Intervall erreicht ist. Man kann sich diese primäre/sekundäre Client-DNS-Anbieter-Zuweisung als relative Version der aktiven/passiven Hochverfügbarkeit vorstellen.
Moderne Lastausgleichslösungen, insbesondere hochwertige physische Geräte, verfügen in der Regel über Integritätsprüfungen (allgemein als „Sonden“ bezeichnet), mit denen Sie den Status eines Dienstes wie gewünscht überprüfen können. Zur Implementierung müssen Sie die Dokumentation Ihres Anbieters zu Rate ziehen. Beachten Sie jedoch, dass, wenn IhrNS1UndNS2ausgefallen sind und die Namensdatensätze Ihres Load Balancers von denselben DNS-Anbietern bereitgestellt werden, auf die die Clients verweisen, dann wird Ihnen das Vertrauen auf die Load Balancer in dieser dritten Ausfallphase im Grunde nichts bringen (außer mit etwas Glück beim Zwischenspeichern der Client-Datensätze).