DNS Balancing

MatthyK

Registered User
Hallo Leute,

ich suche einen Domain-Anbieter mit eigenem Nameserver, der mich möglichst gut bei einem einfachen Balancing unterstützt. Ich hab mich schon auf den Internetseiten diverser Anbieter (z.B. aus diesem Thread) umgeschaut. Leider sind Infos zu den technischen Features der Anbieter relativ dürftig und ich bin mir auch nicht ganz klar darüber welche DNS-Features es überhaupt gibt...

Ein "normaler" Nameserver bietet ja die Möglichkeit, mehrere IPs für einen Eintrag anzugeben, die dann zufällig oder zyklisch in veränderter Reihenfolge der zurückgeliefert werden.
Ist das bei allen Anbietern möglich und gibts Beschränkungen (z.B. Anzahl der Einträge, TTL nicht konfigurierbar, usw.)?

Besonders cool, wäre es, wenn man den Nameserver veranlassen könnte bestimmte IPs mt größerer Wahrscheinlichkeit zurückzugeben (z.B. weil hinter der einen IP ein größerer Server steht). Ist sowas technisch möglich und bietet das jemand an?

Und funktioniert sowas in der Praxis überhaupt einigermaßen gut? Oder kommt irgendwann der "große T-Online Resolver" und liefert dann für halb Deutschland nur noch eine der konfigurierten IPs zurück?

Mir geht es übrigens nicht nur (aber auch) um Performance. Das ganze soll auch möglichst flexibel, ausfallsicher und einfach sein. Ich stelle das mir so vor, dass ich einen Server aus der DNS-Liste nehme, die TTL abwarte und ihn dann herunterfahren kann (z.B. um eine neue Version der Webapplikation einzuspielen) und so die einzelnen Server durchgehe die Seite aber die ganze Zeit erreichbar ist.

Vielleicht hat ja jemand von euch bereits Erfahrungen in dieser Richtung gesammelt und/oder Tipps für mich...
 
MatthyK said:
Ein "normaler" Nameserver bietet ja die Möglichkeit, mehrere IPs für einen Eintrag anzugeben
Nein, das ist bereits nicht mehr 'normal'.
Macht auch keinen Sinn, da DNS-Auflösungen eh überwiegend gecached werden.

wenn man den Nameserver veranlassen könnte bestimmte IPs mt größerer Wahrscheinlichkeit zurückzugeben
Was Du suchst ist ein LoadBalancer. Das hat aber nichts mit DNS zu tun.

huschi.
 
Huschi said:
Nein, das ist bereits nicht mehr 'normal'.
Macht auch keinen Sinn, da DNS-Auflösungen eh überwiegend gecached werden.


Was Du suchst ist ein LoadBalancer. Das hat aber nichts mit DNS zu tun.

huschi.
Einen LoadBalancer suche ich eigentlich gerade nicht. In puncto Ausfallssicherheit handle ich mir damit eher mehr Probleme ein, als ich dadurch löse.

Das DNS-Auflösungen gecachet werden ist klar, sollte doch aber kein Problem sein, wenn nicht zu viele Leute den gleichen Cache benutzen und man die TTL auf einen praktikablen Wert eingestellt hat, oder? Dass es niemals genau sein wird, würde ich in Kauf nehmen. Wenn bei 2 Servern in der Praxis die Lastverteilung etwa zwischen 30 und 70 Prozent für jeden einzelnen Server liegt, wäre das durchaus noch annehmbar.
Lässt sich das denn wirklich überhaupt nicht so realisieren?
 
Lässt sich das denn wirklich überhaupt nicht so realisieren?

Doch, wie du in deinem ersten Post selbst gesagt hast:

mehrere IPs für einen Eintrag anzugeben, die dann zufällig oder zyklisch in veränderter Reihenfolge der zurückgeliefert werden.

Das ist ein Ressource Record Set, die Aufteilung ist garantiert nicht 50:50, aber es findet eine Aufteilung statt. Ich würde mir an deiner Stelle einfach ein paar Domainprovider raussuchen, die in deinem preislichen Rahmen liegen und anfragen, ob so etwas möglich ist.
Ich hab jetzt grad nicht meine Kundendaten hier, aber heute abend kann ich mal schauen, ob mein Anbieter sowas unterstützt. Wenn ich dran denke, meld ich mich nochmal bei dir.
 
Das System, was Du angesprochen hast nennt sich Round Robin DNS. Du kannst mehrere A Records setzen, die dann zyklisch in verschiedener Reihenfolge vom Name Server ausgeliefert werden. Grundsätzlich werden alle A Records ausgeliefert. Der Client nimmt sich dann immer den ersten, schlägt die Verbindung fehl, nimmt er den zweiten usw. So kann auch eine einfache Fail Over Lösung realisiert werden, falls ein Server mal nicht erreichbar ist.
Round Robin DNS bietet sich vor allen dingen Bei dedizierten Servern an, die man bei Hostern angemietet hat, da es dort fast unmöglich ist eigene Cluster zu bauen.
Wichtig ist, dass man die Domain bei einem Anbieter zu liegen hat, der de einem ermöglicht den NS Eintrag bei dem jeweiligen NIC zu ändern (DENIC, ICANN, NIC-AT, etc.). Des weiteren benötigt man einen weiteren Nameserver. Hierzu sollte ein V-Server oder ein Server der Billigklasse ausreichen. Extrem vorteilhaft wäre es, wenn der Domain Provider einem einen sekundären Nameserver zur Verfügung stellt, z.B. bietet Strato so etwas an. Ansonsten benötigt man einen zweiten Nameserver.
Nun können mehrere A Records gesetzt werden. Wichtig ist, dass man eine sehr niedrige TTL (Time To Live) setzt damit die A Records nicht ewig von anderen Nameservern beispielsweise von T-Online gecached werden. Üblicherweise sind 24 Stunden TTL der Standard, das erlaubte Minimum liegt bei 60 Sekunden. Also sollte man einen wert zwischen einer und drei Minuten wählen.
Der große Nachteil an dieser Methode ist, dass entsprechend viel Traffic auf dem Nameserver entsteht, da die Domain immer wieder neu aufgelöst werden muss.
Ich habe diese Methode selbst getestet und es Funktioniert sehr gut.
Aber auch einige große Anbieter wie Google greifen auf Round Robin DNS zurück:
Code:
C:\dig>dig -t a google.de

; <<>> DiG 9.2.3 <<>> -t a google.de
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de.                     IN      A

;; ANSWER SECTION:
google.de.              518     IN      A       216.239.39.104
google.de.              518     IN      A       216.239.57.104
google.de.              518     IN      A       216.239.59.104

;; Query time: 60 msec
;; SERVER: 194.25.2.129#53(194.25.2.129)
;; WHEN: Sat May 13 15:34:11 2006
;; MSG SIZE  rcvd: 75
 
Last edited by a moderator:
Back
Top