Ist es möglich, dass ein Domainname mehrere entsprechende IP-Adressen hat?

86

Wenn wir zum Beispiel eine Verbindung herstellen www.example.com, versuchen wir zunächst, eine Verbindung herzustellen 192.0.2.1. Und wenn der erste Versuch fehlschlägt, versuchen wir es 192.0.2.222.

Ist es möglich? Können wir mehrere Backup-IP-Adressen für einen Domainnamen registrieren?

firia2000
quelle
Es wird nicht genau so funktionieren (mit Round-Robin). Wenn Sie den Host mehrmals abfragen, erhalten Sie bei jeder Abfrage unterschiedliche IP-Adressen zurück und nicht nur, wenn ein Host ausfällt.
Karatedog
@ Karatedog, ich ging davon aus, dass die Socket-Verbindung versuchen wird, eine Verbindung zur nächsten IP herzustellen, wenn keine Verbindung zur ersten hergestellt werden kann
Akash Kava
4
@AkashKava: Eine einzelne Verbindung hat mehrere interne Schritte. Vereinfacht: Eine Anwendung fragt den DNS ab und erhält eine IP-Adresse. Dann stellt es eine Verbindung zu dieser IP-Adresse her. Wenn diese Verbindung fehlschlägt, kehrt die Anwendung nicht zum ersten Schritt zurück und fragt den DNS erneut ab, nur wenn dies explizit codiert wurde. Wenn Sie einen DNS-Server mehrmals abfragen, erhalten Sie nicht unbedingt eine andere IP-Adresse. Kurz gesagt, Standard-DNS kann nicht für Lastausgleichszwecke verwendet werden.
Karatedog
Können wir diese Technik verwenden, um mehrere Load Balancer zu skalieren?
Vikas Verma

Antworten:

62

Dies ist Round-Robin-DNS. Dies ist eine recht einfache Lösung für den Lastausgleich. Normalerweise drehen / mischen DNS-Server die DNS-Einträge für jede eingehende DNS-Anforderung. Leider ist es keine echte Lösung für Failover. Wenn einer der Server ausfällt, werden einige Besucher weiterhin zu diesem ausgefallenen Server geleitet.

Jens Bradler
quelle
3
Dies hängt von Ihren Erwartungen hinsichtlich der Erholungszeit ab. Wenn der bereitgestellte Dienst einige Sekunden oder Minuten lang nicht verfügbar sein kann, können Sie den DNS entsprechend aktualisieren (z. B. IPs ausgefallener Systeme entfernen). Wenn dies nicht akzeptabel ist, kann DNS Ihnen nicht helfen und Sie müssen Load Balancer und eine hochverfügbare Netzwerkstruktur verwenden.
Jens Bradler
Wissen Sie, wie der Kunde seine IP aus der Liste auswählt? Handelt es sich um eine zufällige Auswahl oder sollte der Kunde den ersten der Liste auswählen? Denn im ersten Fall ist das Round / Robin nicht sehr nützlich.
Tobia
Es ist die Aufgabe des DNS-Servers, die Einträge zu mischen oder zu drehen. Die meisten Clients verwenden nur den ersten Datensatz. Zum Beispiel kann Bind9 so konfiguriert werden, dass unterschiedliche Ordnungen auf diesen Datensatztyp angewendet werden
Jens Bradler
Können wir diese Technik verwenden, um mehrere Load Balancer zu skalieren?
Vikas Verma
45

Du kannst es schaffen. Das machen auch große Jungs.

Erste Abfrage:

» host google.com 
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229

Nächste Abfrage:

» host google.com
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238

Wie Sie sehen, wurde die Liste der IPs gedreht, aber die relative Reihenfolge zwischen zwei IPs blieb gleich.

Update: Ich sehe mehrere Kommentare, die damit prahlen, dass DNS-Round-Robin für Failover nicht geeignet ist. Hier ist die Zusammenfassung: DNS ist nicht für Failover geeignet . Es ist also offensichtlich nicht gut für ein Failover. Es wurde nie als Lösung für ein Failover entwickelt.

Karatedog
quelle
1
Müssen wir etwas aktivieren, damit dieser Round Robin funktioniert, oder wird es automatisch von jedem DNS-Server ausgeführt? Ich habe ein Linux und ein MS DNS.
Akash Kava
3
Warum sollte Google dies tun, wenn es kein Failover abdeckt?
Joseph Persie
12
@ JosephPersie: weil DNS nicht für Failover verwendet wird. Durch die Vergabe mehrerer IP-Adressen an denselben Domänennamen werden die eingehenden Anforderungen einfach auf die Server aufgeteilt, die diese IP-Adressen abhören. Stellen Sie sich das als Lastausgleich der ersten Ebene ohne Backend-Integritätsprüfung vor. Sie brauchen das nicht, wenn Sie nicht Tausende von Servern haben :-)
Karatedog
Was passiert, wenn der Load Balancer nicht verfügbar ist und die Anforderung an denselben Balancer weitergeleitet wird?
Jitendra Vispute
1
@JitendraVispute: DNS kennt den Dienst hinter der zurückgegebenen IP-Adresse nicht. Kurz gesagt, wenn sich hinter einer IP-Adresse, die gerade vom DNS-Server zurückgegeben wurde, ein defekter Server oder ein defekter Dienst befindet, schlägt die Anforderung an diese IP fehl.
Karatedog
2

Ja, das ist möglich, aber nicht bequem, wie Jens sagte. Verwenden von Load Balancern der nächsten Generation wie Alteon, das ein proprietäres Protokoll namens DSSP (Distributed Site State Protocol) verwendet, das regelmäßige Standortprüfungen durchführt, um sicherzustellen, dass der Dienst sowohl lokal als auch global verfügbar ist, dh in verschiedenen geografischen Gebieten. Sie müssen jedoch in Ihrem Master-DNS die URL oder den Dienst an das Gerät delegieren, indem Sie ihn als autorisierenden Nameserver für diese IP oder diesen Dienst konfigurieren . Auf diese Weise beantwortet das Gerät DNS-Abfragen, bei denen die IP aufgelöst wird, die einen Dienst von Round-Robin hat oder nicht überlastet ist, je nachdem, wie Sie aus mehreren Metriken ausgewählt haben.

Ezra A.Mosomi
quelle
1
Dies klingt mehr nach Werbung als nach irgendetwas anderem, und Load Balancer sind in der DNS-Welt keine herausragenden Leistungsträger (in Bezug auf die Spezifikation). Und um genau zu sein: "In Ihrem Master-DNS zum Delegieren der URL oder des Dienstes" gibt es in Nameservern / DNS kein Konzept für URL oder Dienst, wenn Sie eine Zone (Domäne) an andere Nameserver delegieren. "als autorisierender Nameserver für diese IP oder diesen Dienst." Folglich sind Nameserver für Zonen / Domänen maßgeblich, nicht für IP-Adressen oder Dienste.
Patrick Mevzek
Vom Arbeitspunkt aus funktionieren sie, es war de facto der Standard für alle CDN, die Loadbalancer zu verwenden, um dies effektiv zu handhaben, da sie erweiterte Funktionen wie GEO-LOCATION kombinieren können, um IP-Adressen zu erhalten, die sogar in der Nähe Ihres oder liegen für den Server, der unter anderem sehr reaktionsschnell ist.
Ezra A.Mosomi
1
Und sie bringen gleichzeitig viele Probleme mit sich. Keine Silberkugel, alles hat Eigenschaften und Nachteile. Jeder Nameserver kann Geolokalisierung durchführen und je nach Client mit einer anderen IP-Adresse antworten, ohne dass dafür Load Balancer erforderlich sind. Es gibt sogar einen Standard, der hilft: EDNS Client Subnet.
Patrick Mevzek