Zum Inhalt springen

Load Balancing mit DNS Round Robin und Bind

Bei großen Projekten oder in Unternehmen ist die oftmals Auslastung der einzelnen Server ein Problem. Große Zugriffszahlen und Ressourcen hungrige Applikationen treiben die Last oftmals in gefährliche Bereiche. Zwar kann man durch neuere Hardware oder der Aufrüstung der bestehenden Infrastruktur gegensteuern, doch wird dies schnell sehr teuer. 

In diesem Blogbeitrag zeige ich Ihnen, wie Sie DNS-Round-Robin mit Bind konfigurieren. Wir werden auch einen Blick auf die Vor- und Nachteile der Verwendung werfen. In der Vergangenheit war Load Balancing nur möglich, indem man entweder mehrere Webserver einrichtete oder ihnen einen Load Balancer vorschaltete. Heutzutage gibt es mehr Möglichkeiten, die Lastverteilung ohne zusätzliche Hardware zu erreichen, wie DNS Round Robin mit Bind oder Varnish Cache.

Eine Alternative zur ständigen Aufrüstung der Server ist die Einführung eines DNS Round Robin Verfahrens. Dieses ermöglicht die Nutzung von mehreren, kleineren (und daher oftmals kostengünstigeren), Servern. Der DNS Service Bind verteilt hierbei alle Anfragen für einen Hostnamen gleichmäßig auf diese Server. 

Konfiguration

Die Einrichtung von Load Balancing mit Bind ist sehr simpel. Es reicht hierbei meist, statt nur einer IP Adresse mehrere für einen Host zu hinterlegen. 

Beispiel Zonenkonfiguration für FTP:

ftp IN A 10.0.0.10
ftp IN A 10.0.0.11
ftp IN A 10.0.0.12
ftp IN A 10.0.0.13

Bei der Einführung eines solchen Verfahrens ist allerdings darauf zu Achten, dass alle angeboten Services von allen angegeben Servern vollständig zur Verfügung gestellt werden können (Beispiel: Alle Daten sind auf allen FTP Servern). Dies erfordert unter Umständen eine zusätzliche Änderung der bestehenden IT Infrastruktur (z.B. NAS).

E-Mail

Neben der weiter obenen beschriebenen Möglichkeit mehrere IP Adressen für ein und den selben Hostnamen zu hinterlegen, ist es für E-Mailserver ebenfalls möglich mehrere MX Einträge mit der selben Priorität zu hinterlegen. Auch in diesem Fall kümmert sich Bind um die korrekte Lastverteilung.

Beispiel Zonenkonfiguration für Mail:

IN  MX  10  mail01.webmasterpro.de.
IN  MX  10  mail02.webmasterpro.de.
IN  MX  10  mail03.webmasterpro.de.

mail01   IN  A   10.0.1.100
mail02   IN  A   10.0.1.101
mail03   IN  A   10.0.1.102

Verteilungsreihenfolge

Über die Option rrset-order [Reihenfolge; Reihenfolge; ...] kann sehr fein gesteuert werden, in welcher Reihenfolge BIND diese Round Robin Anweisungen abarbeitet. Wobei Reihenfolge hierbei die folgenden Angaben zulässt: [class klassen_name ][ type typ_name ][ name "domain_name"] order sortierungsart; 

Als Werte für order sind fixed (Reihenfolge wie in der Zonendatei), random (Zufällig) und cyclic (Round Robin Art) erlaubt.

Beispiele

Simple rrset-order Anweisung:

rrset-order {order cyclic;};

Erweiterte rrset-order Anweisung:

rrset-order {type MX order fixed name "webmasterpro.de"; order cyclic};

Nach oben