Lastverteilung per DNS
aus Wikipedia, der freien Enzyklopädie
Mit DNS kann eine einfache Lastverteilung realisiert werden, die für anspruchsvolle Aufgabenstellungen aber nicht leistungsfähig genug ist.
[Bearbeiten] Funktionsweise
DNS lässt es zu, dass einem Namen mehrere IP-Adressen zugewiesen werden können. Allgemeiner formuliert: Es können mehrere Resource Records mit gleichem Label, gleicher Klasse und gleichem Typ aber jeweils unterschiedlichem Datenfeld existieren. Eine derartige Anordnung wird als Resource Record Set bezeichnet.
Durch Resource Record Sets kann eine einfache Lastverteilung (auch Loadbalancing genannt) realisiert werden.
- Beispiel:
server.example.com. 1800 IN A 171.17.6.70 server.example.com. 1800 IN A 171.17.6.71 server.example.com. 1800 IN A 171.17.6.72
Wird ein derartiger Name von einem Resolver abgefragt, so liefert der DNS-Server grundsätzlich alle bekannten IP-Adressen zurück, allerdings in wechselnder Reihenfolge. Der erste Request wird dann beispielsweise mit [171.17.6.70, 171.17.6.71, 171.17.6.72] beantwortet und der zweite mit [171.17.6.71, 171.17.6.72, 171.17.6.70]. Es liegt dann in der Verantwortung des Resolvers, welche IP-Adresse er tatsächlich verwendet.
Nach welcher Strategie ein DNS-Server die Reihenfolge vorgibt, kann bei Bind-kompatiblen Nameservern konfiguriert werden. Bei BIND sind drei Varianten möglich: zyklisch, zufällig und fest. Bei der Variante fest werden die IP-Adressen in der Reihenfolge zurückgegeben, in der sie im Nameserver abliegen.
Anmerkung: Bei reversen Zonen der IN-ADDR.ARPA-Domäne ist ein Loadbalancing nicht möglich, obwohl für eine IP-Adresse mehrere Namen definiert werden können. Eine Lastverteilung wäre hier auch nicht sinnvoll.
[Bearbeiten] Fortschrittliche Techniken
Bei moderneren Resource Recordtypen wie SRV oder NAPTR lässt sich außerdem noch eine Wichtung definieren, die festlegt, welche Server-IP-Adressen am häufigsten an erster Stelle stehen. Die entsprechenden Server werden damit häufiger angesprochen.
Bei Record-Typen, die keine Wichtungs-Parameter zur Verfügung stellen, besteht die etwas unschöne aber machbare Alternative darin, die IP-Adressen entsprechend ihrer Wichtung mehrfach zu vergeben, z. B. ADSL-Leitung dreimal, Funkstrecke nur einmal.
[Bearbeiten] Einschränkungen
Die Lastverteilung durch DNS ist natürlich nur in dem Sinn gleichmäßig, was die Zuteilung betrifft. Über die danach entstehende tatsächliche Belastung weiß DNS nichts. Auch wird nicht überprüft, ob die Zielserver überhaupt ansprechbar sind. Vorgeschaltete Skripts können aber die Verfügbarkeit prüfen und nur diejenigen Server im Nameserver eintragen, die aktuell tatsächlich zur Verfügung stehen. Damit lassen sich Lastverteilung und Ausfallsicherung verbinden.
Anmerkung: Wie oft angefragt wird, hängt auch von den Clients – z. B. Browser – ab. Mozilla z. B. fragt bei Mail (SMTP und IMAP) nach einigen Minuten Untätigkeit neu nach, während das gleiche Programm bei Web dies nicht tut (für den Proxyserver).