Was ist DNS-Lastverteilung und wie funktioniert sie?

DNS-Lastverteilung verteilt eingehenden Datenverkehr auf mehrere Server und sorgt so für eine zuverlässige Leistung und hohe Verfügbarkeit.

Beim DNS-Lastenausgleich wird das Domain Name System (DNS) genutzt, um den Datenverkehr einer Website auf mehrere Server zu verteilen. Dadurch lassen sich der Netzwerkdurchsatz steigern, die Leistung optimieren, Ausfallzeiten minimieren und die Gesamteffizienz der Datenverarbeitung erhöhen.

Was ist DNS-Lastverteilung?

DNS-Lastverteilung verteilt eingehenden Netzwerkverkehr auf mehrere Server oder Ressourcen, um die Verfügbarkeit, Skalierbarkeit und Leistung eines Dienstes oder einer Anwendung zu verbessern. Dazu wird die Last auf mehrere Serverinstanzen verteilt. Dies ist eine einfache und effiziente Möglichkeit, die Last auf mehrere Server zu verteilen.

Das DNS wird häufig als Telefonbuch des Internets bezeichnet, da es Domainnamen von Websites (wie f5.com oder amazon.com) in numerische IP-Adressen übersetzt, anhand derer Server Websites und mit dem Internet verbundene Geräte identifizieren. Dieser Vorgang wird als DNS-Auflösung bezeichnet. Während der DNS-Auflösung kontaktiert der Browser eines Benutzers einen DNS-Server, um die korrekte numerische IP-Adresse der Zielwebsite abzufragen.

Der DNS-Resolver ermittelt die mit dem angeforderten Domainnamen verknüpfte IP-Adresse, indem er die DNS-Server der Domain nach dem A-Record (Address Record) der Domain abfragt, der Domainnamen einer oder mehreren IP-Adressen zuordnet. Der DNS-Resolver kann auch auf einen CNAME-Record (Canonical Name) stoßen, der einen Domainnamen einem anderen Domainnamen als Alias oder eine übergeordnete Domain ihren Subdomains zuordnet.

Die meisten Domains nutzen heute mehrere DNS-Server, um sich gegen Serverausfälle abzusichern oder ein hohes Datenverkehrsaufkommen zu bewältigen. Jede dieser verschiedenen Serverinstanzen verfügt über eine eigene IP-Adresse und kann eingehende Anfragen für die Domain verarbeiten. Daher wird als Antwort auf die DNS-Abfrage eine Liste mit mehreren IP-Adressen zurückgegeben. Ein DNS-Load-Balancer wählt anhand verschiedener Methoden oder Regeln aus, welche IP-Adresse als Antwort auf eine DNS-Abfrage übermittelt wird, und stellt so sicher, dass der Verbindungsverkehr auf mehrere verfügbare Server verteilt wird.

Ein CNAME-Eintrag kann auch beim DNS-Load-Balancing nützlich sein, da damit ein einzelner Domainname in dieselbe IP-Adresse wie eine andere Domain aufgelöst werden kann: Ein CNAME kann so eingerichtet werden, dass er auf den Domainnamen eines Load Balancers oder auf den primären Domainnamen verweist, der Load-Balancing verwendet.

So verwenden Sie DNS als Load Balancer

DNS-Lastverteilung verteilt den eingehenden Netzwerkverkehr auf mehrere Serverinstanzen. Dadurch wird die Last verteilt und die Verfügbarkeit sowie die Leistung der Anwendung oder des Dienstes verbessert. Wenn ein Server nicht mehr verfügbar oder überlastet ist, stellt der DNS-Resolver weiterhin IP-Adressen für die verbleibenden Server bereit und gewährleistet so Redundanz und Failover-Funktionen.

Was ist der Unterschied zwischen DNS-Lastverteilung und herkömmlicher Lastverteilung?

DNS-Lastverteilung und herkömmliche Lastverteilung dienen ähnlichen Zwecken, arbeiten jedoch auf unterschiedlichen Ebenen des Netzwerkstapels und weisen einige wesentliche Unterschiede auf.

DNS-Lastverteilung erfolgt auf DNS-Ebene der Anwendungsschicht 7 und nutzt das User Datagram Protocol (UDP) auf der Transportschicht des TCP/IP-Modells zur Datenübertragung. Dabei wird UDP aufgrund seiner Geschwindigkeit und schlanken Pakete für DNS gegenüber TCP bevorzugt.

Die Implementierung von DNS-Load-Balancing ist im Vergleich zu anderen Load-Balancing-Lösungen relativ einfach und besonders für kleine und mittlere Unternehmen mit begrenztem Budget von Vorteil. Sie erfordert weder komplexe Konfigurationen noch dedizierte Load-Balancer-Hardware oder -Software und ist daher auch für Unternehmen mit begrenzten IT-Ressourcen geeignet. DNS-Load-Balancing kann außerdem so konfiguriert werden, dass Benutzer zu Servern in verschiedenen geografischen Regionen geleitet werden. Dies ist besonders für weltweit tätige Unternehmen nützlich, da der Datenverkehr zur nächstgelegenen Anwendungsinstanz geleitet und/oder zur Einhaltung der DSGVO entsprechend geroutet werden kann.

Im Gegensatz dazu arbeitet herkömmlicher Lastenausgleich auf der Transportschicht 4 oder der Anwendungsschicht 7. Layer-4-Load-Balancer verarbeiten Daten aus Protokollen der Netzwerk- und Transportschicht (IP, TCP, UDP). Layer-7-Load-Balancer verteilen Anfragen anhand von Daten aus Protokollen der Anwendungsschicht wie HTTP. Bei diesen Load-Balancern handelt es sich in der Regel um dedizierte Geräte, die Client-Anfragen mithilfe von Hardware oder Software auf eine Gruppe von Servern oder Serverinstanzen verteilen.

Diese Load Balancer bieten erweiterte Funktionen und eine präzisere Steuerung der Datenverkehrsverteilung. Die Verteilung der Clientanfragen wird in der Regel von einem dedizierten Load-Balancer-Gerät oder -Dienst gesteuert, das bzw. der dynamische Entscheidungen auf Grundlage der Leistung und anderer Faktoren treffen kann. Diese Load-Balancer-Geräte oder -Dienste können zudem komplexere Algorithmen ausführen und mithilfe von Integritätsprüfungen den Serverstatus überwachen. So können sie den Datenverkehr automatisch von fehlerhaften Servern entfernen oder auf funktionsfähige Server umleiten. Dies sorgt für eine höhere Verfügbarkeit und Fehlertoleranz.

Was ist der Unterschied zwischen DNS-Round-Robin und erweitertem Load Balancing?

DNS Round Robin ist eine einfache Form des Lastausgleichs, bei der DNS Clientanfragen verteilt, indem eine Liste von IP-Adressen verschiedener Server der Reihe nach durchlaufen wird. Jede Clientanfrage wird automatisch an die nächste IP-Adresse in der Liste gesendet. DNS Round Robin lässt sich relativ einfach einrichten und verwalten, da lediglich mehrere A-Records mit unterschiedlichen IP-Adressen konfiguriert werden müssen. Änderungen werden durch die Aktualisierung dieser A-Records vorgenommen.

Leider weist diese einfache Implementierung des DNS-Load-Balancings grundlegende Probleme auf, die ihre Zuverlässigkeit und Effizienz beeinträchtigen. Insbesondere prüft DNS nicht, ob Server- oder Netzwerkausfälle beziehungsweise Fehler vorliegen. Daher wird für eine Domain stets derselbe Satz von IP-Adressen zurückgegeben, selbst wenn Server ausgefallen oder nicht erreichbar sind. Wenn ein Server nicht mehr verfügbar ist, leitet das DNS-Round-Robin-Load-Balancing möglicherweise weiterhin Datenverkehr an ihn weiter, bis der DNS-Eintrag manuell aktualisiert wird.

Ein weiteres Problem entsteht dadurch, dass aufgelöste Adressen in der Regel sowohl von zwischengeschalteten DNS-Servern (sogenannten Resolvern) als auch von Clients zwischengespeichert werden, um die Leistung zu verbessern und den DNS-Datenverkehr im Netzwerk zu reduzieren. Jeder aufgelösten Adresse wird eine Gültigkeitsdauer zugewiesen (die sogenannte Time-to-Live, kurz TTL). Lange Gültigkeitsdauern können jedoch dazu führen, dass Clients nicht rechtzeitig von Änderungen an der Servergruppe erfahren, während kurze Gültigkeitsdauern zwar die Genauigkeit erhöhen, aber auch den Verarbeitungsaufwand und den DNS-Datenverkehr steigern, die durch das Zwischenspeichern ursprünglich reduziert werden sollen.

Fortschrittliche Lastverteilungstechniken bieten hingegen einen größeren Funktionsumfang und umfassen häufig ausgefeilte Algorithmen, Zustandsprüfungen und Funktionen zur Datenverkehrssteuerung, um den Datenverkehr effizient zu verteilen und eine hohe Verfügbarkeit, Skalierbarkeit und optimierte Leistung sicherzustellen. Zu diesen Verteilungsmechanismen gehören gewichtetes Round-Robin, die Verteilung nach der geringsten Anzahl an Verbindungen oder ein Routing auf Basis der Antwortzeit. Sie ermöglichen eine effizientere und dynamischere Verteilung und Steuerung des Datenverkehrs und eignen sich daher für komplexe Umgebungen mit hohen Anforderungen.

Warum ist DNS-Lastverteilung notwendig?

Die Lastverteilung spielt eine entscheidende Rolle bei der Steuerung und Optimierung des Datenverkehrs in modernen Netzwerkumgebungen. Sie sorgt für ein nahtloses und reaktionsschnelles Benutzererlebnis und gewährleistet gleichzeitig die Verfügbarkeit und Reaktionsfähigkeit des Systems – selbst bei hoher Auslastung oder Serverausfällen.

Wie DNS-Lastverteilung Anforderungen erfüllt

DNS-Lastverteilung ermöglicht die Verteilung des Netzwerkverkehrs auf mehrere Server oder Rechenzentren. Dies ist besonders wichtig für die Bereitstellung von Inhalten und die Bewältigung hoher Datenverkehrsaufkommen, etwa bei E-Commerce-Websites, Social-Media-Plattformen und Online-Streamingdiensten. Sie trägt dazu bei, dass kein einzelner Server durch den Datenverkehr überlastet wird oder zum Engpass wird, während andere nicht ausgelastet sind. Dies fördert eine optimale Ressourcennutzung und hilft, Serverüberlastungen zu vermeiden.

DNS-Lastverteilung trägt außerdem zu einer hohen Verfügbarkeit bei. Durch die Verteilung des eingehenden Datenverkehrs auf mehrere Server oder Serverinstanzen wird das Risiko eines Single Point of Failure reduziert. Fällt ein Server aufgrund eines Hardwarefehlers, von Wartungsarbeiten oder anderen Problemen aus, kann der Load Balancer den Datenverkehr auf funktionsfähige Server umleiten und so die Ausfallzeit des Dienstes minimieren.

Wenn die Nachfrage nach einem Dienst oder einer Anwendung steigt, ermöglicht Load Balancing eine einfache Skalierung der Ressourcen, indem dem Pool horizontal weitere Server hinzugefügt werden. Diese Skalierbarkeit ist entscheidend, um ein erhöhtes Datenverkehrsaufkommen zu bewältigen und sicherzustellen, dass das System eine wachsende Nutzerbasis ohne Leistungseinbußen unterstützen kann. Load Balancer können Faktoren wie Serverauslastung, Fehlertoleranz und Nähe zum Client berücksichtigen, um Nutzern niedrige Latenzen und schnelle Reaktionszeiten zu bieten.

DNS-Lastverteilungsstrategien

Die Wahl der Lastverteilungsstrategie hängt von den spezifischen Anforderungen und Einschränkungen der Anwendung oder Organisation ab. Dabei können Faktoren wie die Datenbankarchitektur, die Art der Anwendung, die Serverkapazität und die Merkmale der Arbeitslast eine Rolle spielen.

Gewichtetes Round-Robin-Verfahren

Weighted Round Robin ist eine Strategie zur Lastverteilung, bei der den verschiedenen Serverknoten in einem Pool unterschiedliche Gewichtungen oder Prioritäten zugewiesen werden. Dadurch wird die Verteilung eingehender Clientanfragen gesteuert. Diese Strategie ist besonders nützlich, wenn die Server unterschiedliche Hardwarespezifikationen oder Leistungsmerkmale aufweisen. Durch die Zuweisung von Gewichtungen übernehmen leistungsfähigere Server einen größeren Anteil des Datenverkehrs.

Geografischer Lastenausgleich

Dieser Ansatz berücksichtigt die geografische Nähe der Clients zu den verschiedenen Serverstandorten und verwendet Gewichtungen, um die Verteilung der Clientanfragen zu steuern. Der Load Balancer kennt sowohl den geografischen Ursprung der Clientanfragen als auch die Standorte der verfügbaren Server oder Rechenzentren. Anhand dieser Informationen wird der nächstgelegene oder am besten geeignete Serverstandort für die Bearbeitung der Anfrage ermittelt. Geografischer Lastenausgleich ist besonders für Unternehmen mit einer globalen Nutzerbasis und mehreren Rechenzentren oder Serverstandorten von Vorteil. Er kann eine einheitliche Benutzererfahrung über verschiedene Regionen hinweg gewährleisten.

Dynamischer Lastenausgleich

Beim dynamischen Lastausgleich wird die Verteilung des Netzwerkverkehrs in Echtzeit an den aktuellen Zustand der Server oder des Netzwerks angepasst. Dynamische Load Balancer überwachen den Zustand und die Leistung der Server im Pool und prüfen dabei die Serververfügbarkeit, Antwortzeiten, CPU-Auslastung, Speichernutzung und weitere Kennzahlen. Anhand der erfassten Informationen leitet der Load Balancer eingehende Anfragen dynamisch an den Server weiter, der für deren Verarbeitung am besten geeignet ist. Dynamischer Lastausgleich kommt zum Einsatz, wenn Verkehrsmuster unvorhersehbar sind, die Auslastung häufig schwankt oder ein hohes Maß an Leistungsoptimierung erforderlich ist. Er wird häufig in Rechenzentren, Cloud-Computing-Umgebungen, Content Delivery Networks (CDNs) und Anwendungen mit sich schnell ändernden Arbeitslasten eingesetzt.

DNS-Lastverteilung implementieren

Da DNS-Load-Balancer unverzichtbare Werkzeuge zur Steuerung des Datenverkehrs auf Ihrer Website oder in Ihrer Anwendung sind, ist es wichtig, sie korrekt zu konfigurieren und zu verwalten. Die folgenden Best Practices tragen dazu bei, dass Ihr Load-Balancer richtig konfiguriert ist und das Datenverkehrsaufkommen Ihrer Benutzer und Anwendungen bewältigen kann.

Verstehen Sie die Anforderungen Ihrer Anwendung

Berücksichtigen Sie zunächst die spezifischen Anforderungen Ihrer Anwendungen oder Dienste. Dazu gehören Faktoren wie die erwarteten Datenverkehrsmuster, die geografische Verteilung der Benutzer, die Latenzempfindlichkeit und der Bedarf an hoher Verfügbarkeit. Load Balancer arbeiten am effektivsten, wenn sie auf bestimmte Datenverkehrsmuster abgestimmt sind. Nehmen Sie sich daher die Zeit, den eingehenden Datenverkehr Ihrer Website oder Anwendung zu analysieren und Ihre Konfiguration entsprechend zu optimieren.

Machen Sie Ihre Infrastruktur zukunftssicher

Skalierbarkeit ist ein wichtiger Aspekt, um Ihre Infrastruktur zukunftssicher zu gestalten. Mit dem Wachstum Ihrer Organisation und Ihrer Nutzerbasis werden sich voraussichtlich auch Ihre Anforderungen an den DNS-Lastenausgleich verändern. Stellen Sie sicher, dass sich Ihre Load-Balancer-Lösung je nach Datenverkehrsaufkommen nach oben oder unten skalieren lässt. Diese Elastizität ist besonders in Cloud-Umgebungen von Vorteil, in denen Ressourcen bedarfsgerecht dynamisch bereitgestellt werden können.

Überwachen Sie Ihre Server

Die Implementierung von Zustandsprüfungen und die kontinuierliche Überwachung des Status Ihrer Server sind entscheidend, um die optimale Leistung Ihres Load Balancers zu erzielen. Überwachen Sie regelmäßig sämtliche Serverressourcen (Speicherauslastung, CPU-Nutzung usw.), damit Sie potenzielle Probleme schnell erkennen und beheben können. Entfernen Sie fehlerhafte Server aus dem Verbund oder leiten Sie den Datenverkehr von ihnen weg, um eine hohe Verfügbarkeit zu gewährleisten.

Regelmäßig überprüfen und optimieren

Überprüfen Sie Ihre DNS-Load-Balancing-Konfiguration regelmäßig und optimieren Sie sie entsprechend veränderter Datenverkehrsmuster, der Serverleistung und der Anwendungsanforderungen.

Wählen Sie den richtigen DNS-Load-Balancer

Wählen Sie eine DNS-Load-Balancing-Lösung, die Ihren Anforderungen entspricht. Berücksichtigen Sie dabei Funktionen wie geografisches Load Balancing, gewichtetes Routing, Zustandsprüfungen, Sicherheitsschutz für Webanwendungen und APIs sowie eine einfache Verwaltung. Benutzerdefinierte und selbst entwickelte Load-Balancer-Lösungen bieten zwar möglicherweise mehr Kontrolle und Anpassungsmöglichkeiten, insbesondere für Unternehmen mit sehr spezifischen Anforderungen, bringen jedoch auch einen nicht zu unterschätzenden Aufwand für die laufende Wartung, Sicherheit und Skalierbarkeit mit sich. DNS-Load-Balancing-Dienste von Drittanbietern betreiben häufig ein verteiltes Netzwerk aus Servern an mehreren geografischen Standorten. Dank dieser globalen Reichweite können sie Benutzer effizient zum nächstgelegenen Server leiten, wodurch sich die Latenz verringert und die Benutzerfreundlichkeit verbessert. Drittanbieterdienste bieten in der Regel außerdem verschiedene Algorithmen zur Lastverteilung, mit denen Sie die Verteilung des Datenverkehrs entsprechend Ihren spezifischen Anforderungen und Serverkapazitäten präzise abstimmen können. Dienstbasierte Load-Balancing-Lösungen sind zudem darauf ausgelegt, unterschiedlichste Verkehrslasten zu bewältigen und sich bei Bedarf nach oben oder unten zu skalieren.

Wie F5 Sie unterstützen kann

DNS-Lastverteilung ist eine effektive Lösung zur Verteilung des Datenverkehrs für kleine und mittlere Unternehmen oder Organisationen mit begrenzten IT-Ressourcen, da sie weder komplexe Konfigurationen noch dedizierte Hardware oder Software für den Lastenausgleich erfordert.

F5 bietet eine Reihe von Load-Balancer-Produkten und -Lösungen an. Dazu gehören cloudbasierte DNS-Load-Balancer-Dienste, die die Implementierung und Verwaltung vereinfachen, vollständig über APIs konfigurierbar sind und integrierten DDoS- und WAF-Schutz sowie Funktionen für die Notfallwiederherstellung bieten. Der Dienst ermöglicht ein globales, standortbasiertes Routing, um den Anwendungsdatenverkehr effizient über verschiedene Umgebungen hinweg zu leiten und so eine hohe Leistung und ein optimales Benutzererlebnis zu gewährleisten. Das System überwacht Systemzustandsprüfungen, um ausgefallene oder beeinträchtigte Ressourceninstanzen zu erkennen und Clients umzuleiten, damit Anwendungen und Dienste verfügbar bleiben. F5 Distributed Cloud DNS Load Balancer bietet globale automatische Skalierung, um mit der Nachfrage Schritt zu halten, wenn Anwendungen wachsen, sich Datenverkehrsmuster ändern und das Anfragevolumen sprunghaft ansteigt – und das bei nutzungsbasierter Preisgestaltung: Sie zahlen nur für die Dienste, die Sie benötigen und nutzen.

Darüber hinaus sind F5 NGINX Plus und F5 NGINX erstklassige Load-Balancing-Lösungen, die von stark frequentierten Websites wie Dropbox, Netflix und Zynga eingesetzt werden. Mehr als 350 Millionen Websites weltweit setzen auf NGINX Plus und NGINX Open Source, um ihre Inhalte schnell, zuverlässig und sicher bereitzustellen.

NGINX Plus bietet eine Reihe ausgefeilter Lastverteilungsalgorithmen, die wesentlich effektiver und präziser sind als ein einfacher DNS-Lastenausgleich. Bei allen Algorithmen wird zudem der Serverstatus überprüft, damit Anfragen nicht an nicht erreichbare Server weitergeleitet werden. Darüber hinaus unterstützt NGINX Plus eine Form des DNS-Lastenausgleichs, mit der die zuvor beschriebenen Probleme gelöst werden. Weitere Informationen finden Sie unter „Konfigurieren des HTTP-Lastenausgleichs mithilfe von DNS“ im NGINX Plus-Administratorhandbuch. Da NGINX Plus softwarebasiert ist, kann es auf Standardhardware ausgeführt werden und ist deutlich kostengünstiger als die meisten konkurrierenden hardwarebasierten Lösungen.