Können Sie eine Sicherungs-IP für Ihren Server in DNS festlegen?


10

Gibt es eine Möglichkeit, dass das DNS-Protokoll auf natürliche Weise eine Sicherungs-A-Datensatzserveradresse enthalten kann, z. B. Sicherungsnamenserver- oder Mailserver-Einträge? Bei der Suche danach habe ich nur Ergebnisse auf Backup-Nameservern (NS-Datensätzen) gesehen.

Wenn es für DNS keine Möglichkeit gibt, Backup A-Einträge zu unterstützen, wie lassen sich die Ergebnisse am besten simulieren, damit Benutzer zu einem funktionierenden Server weitergeleitet werden, falls der Primärserver nicht antwortet?

Antworten:


12

Mehr oder weniger.

Hier können Sie zwei Dinge tun: Wenn Sie mehrere A-Einträge für einen bestimmten Namen in Ihren DNS-Server einfügen, werden sie alle an Clients gesendet, und diese Clients wählen einen aus dem Satz aus, zu dem eine Verbindung hergestellt werden soll, was bedeutet, dass der Datenverkehr dies tut "fair" gleichmäßig auf alle Standorte gleichzeitig verteilt sein. Dies ist nicht wirklich das, was Sie zu beschreiben scheinen, aber es ist eine häufige Situation (obwohl ich ihr aus verschiedenen Gründen nicht vertraue).

Die andere Option besteht darin, dass Sie nur einen A-Eintrag in Ihren DNS-Server einfügen und der DNS-Server (oder ein dazugehöriger Eintrag wie ein Überwachungsskript) die Hauptadresse Ihrer Site im Auge behält. Wenn dies fehlschlägt, wird der A-Eintrag des DNS-Servers angezeigt Der Datensatz wird auf Ihre andere Site geändert. Dies bedeutet, dass jeweils nur eine Site Datenverkehr erhält.

Der Nachteil dieser zweiten Strategie ist das DNS-Caching. Jeder, der die alte Site-Adresse erhalten hat, ist SOL, bis seine DNS-Cache-Einträge, die die alte Adresse enthalten, gelöscht werden. Dies bedeutet, dass Sie Ihre TTLs niedrig halten müssen (was die Belastung Ihrer DNS-Infrastruktur erhöht, obwohl dies selten ein praktisches Problem ist), aber es gibt immer noch das Problem von "unerwünschten" DNS-Caches, die TTLs nicht berücksichtigen. Dies ist ein massiver Schmerz für jeden Wer jemals DNS-Einträge ändern muss, aber sie sind millionenfach schlechter für jeden, der DNS-Einträge "oft" ändern muss (hoffentlich geht Ihre Site nicht mehrmals am Tag aus, aber immer noch ...) Grundsätzlich jeder Hinter einem dieser sich schlecht benehmenden DNS-Caches wird Ihre Site für einen extrem langen Zeitraum als "inaktiv" eingestuft. Erklären Sie ihnen einfach, dass der DNS-Cache schuld ist ... Eugh.

Kurz gesagt, ich würde es nicht für eine Website tun, da es bessere Möglichkeiten gibt, das Risiko, an das Sie denken, zu mindern. Sie müssen dieses Risiko jedoch beschreiben, wenn Sie Vorschläge zur Minderung des Risikos wünschen.


Das Risiko besteht darin, dass meine Benutzer an einen Sicherungsserver weitergeleitet werden, wenn der Hauptserver ausfällt (aus welchem ​​Grund auch immer). Ich meine, im letzten Jahr ist mein Server einmal ausgefallen (katastrophaler Raid-Fehler). Ich hatte Backups, damit die Daten sicher waren, aber meine Website war 12 Stunden lang nicht verfügbar. Ich dachte, dies wäre ein häufiges Problem mit einer "richtigen" Lösung gewesen. Ich dachte, Unternehmen würden einen Backup-Plan wollen.
kjones1876

9
Sie möchten kein DNS-Failover, sondern eine zuverlässigere Hardware und möglicherweise einen Hot-Standby-Server.
Womble

Die "Rogue DNS Caches" sind eine Geschichte alter Frauen. Keine tatsächliche DNS-Serversoftware zeigt das Verhalten, TTLs zu ignorieren. Die Stellen, an denen DNS-Daten so zwischengespeichert werden, dass Probleme auftreten, sind Anwendungen , wie beispielsweise das berüchtigte Problem des Zwischenspeicherns von Lookups von Netscape Navigator .
JdeBP

@JdeBP: Mit den Worten von Kevin Costner: "Schurken-DNS-Caches sind kein Mythos ... ich habe sie gesehen!" Ich habe die Ausgrabungen gemacht und die wahnsinnigen und umwerfenden Ergebnisse gesehen. Am beliebtesten bei bandbreitenbeschränkten und latenzbedingten Diensten in früheren Zeiten (z. B. DFÜ-ISPs, deren Upstream-Verbindung beispielsweise ISDN war), werden sie heute hauptsächlich von Personen verwendet, die davon hörten, dass sie gut sind Idee vor langer Zeit und haben ihre Meinung seitdem einfach nicht geändert (nicht, dass sie damals eine besonders gute Idee waren ... aber ja).
womble

6

Jeder scheint zu denken, dass Sie über WWW-Server sprechen, obwohl Sie explizit geschrieben haben

wie ein Backup-Nameserver oder Mailserver

Die oft übersehene Wahrheit ist, dass der HTTP-Dienst die Ausnahme und nicht die Norm ist, wenn es darum geht. Ja, im Normalfall gibt es einen Mechanismus zum Veröffentlichen von Informationen auf Clients über das DNS, damit diese ordnungsgemäß von Primärservern auf Sicherungsserver zurückgreifen können. Bei diesem Mechanismus handelt es sich um SRVRessourceneinträge, wie sie von Service-Clients für viele andere Protokolle außer HTTP verwendet werden. Siehe RFC 2782.

Bei SRVRessourceneinträgen wird den Clients eine Liste von Servern mit Prioritäten und Gewichten angezeigt, und sie müssen die Server in der Reihenfolge ihrer Priorität testen. Dabei müssen sie Server mit gleichen Prioritäten nach Gewicht auswählen und Server mit höherer Gewichtung häufiger als Server mit niedrigerer Gewichtung auswählen Einsen. Mithilfe von SRVRessourceneinträgen können Serveradministratoren Clients mitteilen, um welche Fallback-Server es sich handelt und wie sie ihre Last auf mehrere Server mit gleicher Priorität verteilen.

Jetzt befinden sich Inhalts-DNS-Server nach einem eigenen speziellen Ressourcendatensatz, NSRessourceneinträgen, die keine Prioritäts- und Gewichtsinformationen enthalten. Ebenso befinden sich SMTP-Relay-Server nach ihrem eigenen speziellen Ressourcendatensatz MX, der Prioritätsinformationen, jedoch keine Gewichtungsinformationen enthält. Für Inhalts-DNS-Server ist es daher nicht vorgesehen, Fallback- und Lastverteilungsinformationen zu veröffentlichen. Wenn MXRessourceneinträge verwendet werden, ist für SMTP-Relay-Server keine Veröffentlichung zum Veröffentlichen von Lastverteilungsinformationen vorgesehen.

Allerdings SRV-fähigen MTSEs jetzt existieren. (Das erste war exim, das seit 2005 SRVmöglich ist.) Und für andere Serviceprotokolle, die nicht mit dem Gepäck MXund den NSRessourcenaufzeichnungen belastet sind , ist die SRVÜbernahme weitaus gründlicher und weit verbreitet. Wenn Sie beispielsweise eine Microsoft Windows-Domäne haben, werden eine ganze Reihe von Diensten über SRVSuchvorgänge im DNS gefunden . Dies ist zu diesem Zeitpunkt seit mehr als einem Jahrzehnt der Fall.

Das Problem ist, dass jeder an HTTP denkt, wenn HTTP heutzutage bei weitem die Ausnahme und nicht die Regel ist.


srv-Datensätze eignen sich zwar hervorragend für den internen Netzwerkgebrauch, wenn die Umgebung gesteuert wird, sie sind jedoch nicht für einen externen Server mit heterogenen Clients geeignet. Sie wissen nicht, dass auf den Datensatz zugegriffen wird, da Sie nicht wissen, ob der Client den Zugriff auf srv-Datensätze unterstützt.
Michael Lowman

1
Wieder lassen Sie HTTP Ihr Denken steuern. Für viele der oben genannten Clients sind SRVDatensätze die definierte Methode zum Auffinden der Dienste. Beachten Sie auch, dass die Frage war, ob der Mechanismus existiert und was er war. Der Mechanismus existiert und dies ist der Mechanismus. Es ist seit einem Jahrzehnt weit verbreitet.
JdeBP

Ihr sicherlich Recht, srv ist sicherlich der richtige Mechanismus und macht tatsächlich andere Dinge, die ich, obwohl DNS nicht konnte, aber wünschte, es könnte. Leider unterstützt kein Browser srv. Auch wenn die Frage HTTP-spezifisch war, weil ich "wie Backup-Nameserver oder Mailserver" sagte, was bedeutet, dass für sie bereits Backup-Lösungen existieren.
kjones1876

1

Wenn Sie dynamischen Inhalt bereitstellen und es nicht praktisch ist, einfach zwei Server gleichzeitig Inhalte bereitzustellen, besteht Ihre andere Option darin, ohnehin mehrere Einträge in Ihrem DNS zu haben und den Sicherungsserver so zu konfigurieren, dass der ICMP-Port für Clients, die versuchen, eine Verbindung herzustellen, nicht erreichbar ist ;; Wenn der Hauptserver irgendwann ausfällt, entfernen Sie einfach den Port 80-Block in der Sicherung, und der Datenverkehr beginnt.

Die einzige andere (Budget-) Möglichkeit, dies zu tun, besteht darin, einen separaten Computer (oder zwei) einzurichten, um NAT bei Anforderungen auszuführen. Wenn also ein Webserver ausfällt, können Sie einfach die NAT-Regel dafür entfernen.


Ursprünglich hatte ich Ihre erste Idee satt. Ich habe Apache auf dem Hauptserver ausgeschaltet, aber der Browser hat trotzdem versucht, eine Verbindung herzustellen. Aber wäre das Drehen des Apache-Kurses ein ICMP-Fehler? Wenn nicht, wie mache ich den Server durch einen ICMP-Fehler?
kjones1876

Nein, die Verbindung wird nur eine
Zeitüberschreitung haben.

iptables -I INPUT -p tcp --dport 80 -j REJECT --reject-with icmp-port-unreachable
Olipro

Ich habe das satt und die Leute konnten einfach keine Verbindung herstellen ... Ich habe sogar den Server ausgesteckt, auf dem ich getestet habe.
kjones1876

Der Fragesteller sprach nicht speziell nur über WWW-Server. In der Tat erwähnte xe Mail- und Nameserver explizit.
JdeBP

0

Es gibt keine Backup-A-Datensätze, aber es können mehrere A-Datensätze vorhanden sein, die in zufälliger Reihenfolge ausgegeben werden.

Die meisten Browser können einen anderen Server ausprobieren, wenn einer ausfällt. (Siehe: Web Resilience mit Round Robin DNS )

Sie können eine Cluster-IP-Adresse von mehreren Servern mit VRRP oder CARP sichern lassen . Der Sicherungsserver übernimmt die Adresse, wenn der Primärserver ausfällt.


Der Fragesteller sprach nicht speziell nur über WWW-Server. In der Tat erwähnte xe Mail- und Nameserver explizit.
JdeBP

@ JdeBP: Oh. Ich scheine blind zu sein. Entschuldigung: P
jkj

0

Ja, aber das musst du selbst machen ;-)

Könnten Sie weitere Informationen darüber geben, warum Sie einen "Backup A-Datensatz" wünschen und wie und unter welchen Umständen Sie zum Backup gehen möchten.

Es wäre auch hilfreich, die Beziehung aus einer Netzwerkperspektive zwischen dem primären und dem Sicherungshost zu kennen.


0

Dies ist eine ziemlich alte Frage, aber zwei ziemlich wichtige Technologien wurden in den Antworten nicht angesprochen: Dynamisches DNS und CDNs.

Dynamisches DNS ist so eingerichtet, dass die DNS-Einträge fast in Echtzeit geändert werden können, sodass ein Überwachungsclient Änderungen an den öffentlichen DNS A-Einträgen auslösen kann, je nach Verfügbarkeit des Dienstes. (Natürlich muss Ihr DNS-Hosting-Dienst Dynamic DNS unterstützen.)

CDNs können auch zur Bereitstellung von DNS verwendet werden, wie zum Beispiel Cloudflare (das meiner Meinung nach 2010 gestartet wurde).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.