Was ist der Lastausgleich auf Schicht 4?

Der Lastausgleich auf Schicht 4 verwendet Informationen, die auf der Netzwerk-Transportschicht (Schicht 4) definiert sind, als Grundlage für die Entscheidung, wie Client-Anforderungen auf eine Gruppe von Servern zu verteilen sind. Speziell für den Internet-Datenverkehr stützt ein Load Balancer auf Schicht 4 die Entscheidung über den Lastausgleich auf die Quell- und Ziel-IP-Adressen und -Ports, die im Paketkopf aufgezeichnet sind, ohne den Inhalt des Pakets zu berücksichtigen.

Insgesamt gibt es sieben Vernetzungsschichten, die durch das Open Systems Interconnection [OSI]-Referenzmodell definiert sind. Weitere Informationen finden Sie unter Schichten im OSI- und Internet-Modell.

Weitere Informationen zum Lastausgleich finden Sie unter Anwendungs-Lastausgleich mit NGINX Plus.

Lastausgleich auf Schicht 4 und NAT

Heutzutage bezieht sich der Begriff „Lastausgleich auf Schicht 4“ meist auf eine Bereitstellung, bei der die IP-Adresse des Load Balancers diejenige ist, die den Clients für eine Website oder einen Dienst (z. B. über DNS) mitgeteilt wird. Folglich tragen die Clients die Adresse des Load Balancers als Ziel-IP-Adresse in ihre Anforderungen ein.

Wenn der Load-Balancer auf Schicht 4 eine Anforderung empfängt und die Entscheidung über den Lastausgleich trifft, führt er auch eine Netzwerkadressübersetzung (Network Address Translation, NAT) für das Anforderungspaket durch, wobei er die aufgezeichnete Ziel-IP-Adresse von seiner eigenen in die des von ihm ausgewählten Content-Servers im internen Netz ändert. In ähnlicher Weise ändert der Load Balancer vor der Weiterleitung der Serverantworten an die Clients die im Paketkopf aufgezeichnete Quelladresse von der IP-Adresse des Servers in seine eigene. (Die in den Paketen aufgezeichneten Ziel- und Quell-TCP-Port-Nummern werden manchmal ebenfalls auf ähnliche Weise geändert.)

Load-Balancer auf Schicht 4 treffen ihre Routing-Entscheidungen auf der Grundlage von Adressinformationen, die aus den ersten paar Paketen im TCP-Stream extrahiert werden, und prüfen nicht den Inhalt der Pakete. Ein Load-Balancer auf Schicht 4 ist häufig ein dediziertes Hardware-Gerät, das von einem Hersteller geliefert wird und auf der proprietären Lastausgleichs-Software ausgeführt wird, und die NAT-Operationen werden möglicherweise nicht in Software, sondern von speziellen Chips ausgeführt.

Der Lastausgleich auf Schicht 4 war ein beliebter architektonischer Ansatz für die Abwicklung des Datenverkehrs, als die Standard-Hardware noch nicht so leistungsfähig war wie heute und die Interaktion zwischen Clients und Anwendungsservern weitaus weniger komplex war. Er erfordert weniger Berechnungen als anspruchsvollere Lastausgleichsmethoden (wie Schicht 7), aber CPU und Speicher sind heute so schnell und billig, dass der Leistungsvorteil des Lastausgleichs auf Schicht 4 in den meisten Situationen vernachlässigbar oder irrelevant geworden ist.

Vergleich von Load Balancern auf Schicht 4 und Schicht 7

Load-Balancer auf Schicht 7 arbeiten auf der höchsten Ebene des OSI-Modells, der Anwendungsschicht (im Internet ist HTTP das vorherrschende Protokoll auf dieser Schicht). Load Balancer auf Schicht 7 treffen ihre Routing-Entscheidungen auf der Grundlage verschiedener Merkmale des HTTP-Headers und des eigentlichen Inhalts der Nachricht, wie z. B. der URL, der Art der Daten (Text, Video, Grafik) oder der Informationen in einem Cookie.

Die Berücksichtigung von so vielen weiteren Aspekten der zu übertragenden Informationen kann den Lastausgleich auf Schicht 7 teurer machen als auf Schicht 4 in Bezug auf Zeit und benötigter Rechenleistung, aber dies kann dennoch zu einer größeren Gesamteffizienz führen. Da ein Load Balancer auf Schicht 7 zum Beispiel feststellen kann, welche Art von Daten (Video, Text usw.) ein Client anfordert, müssen Sie nicht dieselben Daten auf allen Servern mit Lastausgleich duplizieren.

Moderne Allzweck-Load-Balancer wie NGINX Plus und die Open-Source-Software NGINX arbeiten in der Regel auf Schicht 7 und dienen als vollständige Reverse Proxys. Anstatt den Datenverkehr auf einer Paket-für-Paket-Basis zu verwalten wie Load Balancer auf Schicht 4, die NAT verwenden, können Load Balancer auf Schicht 7 Anforderungen und Antworten in ihrer Gesamtheit lesen. Sie verwalten und manipulieren den Datenverkehr auf der Grundlage eines vollständigen Verständnisses der Transaktion zwischen dem Client und dem Anwendungsserver.

Einige Load Balancer können so konfiguriert werden, dass sie je nach Art des Dienstes einen Lastausgleich auf Schicht 4 oder auf Schicht 7 bieten. Wie bereits erwähnt, ist moderne Standard-Hardware im Allgemeinen so leistungsfähig, dass die Einsparungen bei den Rechenkosten durch den Lastausgleich auf Schicht 4 nicht groß genug sind, um die Vorteile der größeren Flexibilität und Effizienz des Lastausgleichs auf Schicht 7 aufzuwiegen.

So kann NGINX helfen

NGINX Plus und NGINX sind die besten Lastausgleichs-Lösungen ihrer Klasse, die von stark frequentierten Websites wie Dropbox, Netflix und Zynga eingesetzt werden. Mehr als 350 Millionen Websites weltweit vertrauen auf NGINX Plus und NGINX Open Source, um ihre Inhalte schnell, zuverlässig und sicher bereitzustellen.

Als softwarebasierter Load Balancer ist NGINX Plus wesentlich kostengünstiger als hardwarebasierte Lösungen mit ähnlichen Funktionen. Die umfassenden Lastausgleichsfunktionen von NGINX Plus ermöglichen den Aufbau eines hoch optimierten Application Delivery Network.

Wenn Sie NGINX Plus als Load Balancer vor Ihrer Serverfarm einsetzen, erhöht sich die Effizienz, Leistung, Zuverlässigkeit und Skalierbarkeit Ihrer gesamten Website. Mit NGINX Plus maximieren Sie sowohl die Kundenzufriedenheit als auch die Rentabilität Ihrer IT-Investitionen.

Schichten im OSI- und Internet-Modell

Für den Internet-Datenverkehr ist die Bezeichnung Lastausgleich auf „Schicht 4“ und auf „Schicht 7“ eine bequeme Abkürzung, aber nicht ganz korrekt. Wenn Sie daran interessiert sind, lesen Sie weiter.

Der Begriff der sieben Vernetzungsschichten stammt aus dem Open Systems Interconnection (OSI)-Referenzmodell. Das Modell unterteilt die Netzwerkfunktionen in sieben abstrahierte Schichten, auf die üblicherweise mit ihren Nummern Bezug genommen wird (Schicht 1 bis Schicht 7). Auf jeder Schicht gibt es Standards, die festlegen, wie Daten verpackt und transportiert werden. Die Standards legen unter anderem fest, wie der Bitstrom, der eine Anforderung oder eine Antwort darstellt, in diskrete Pakete, die so genannten Protokolldateneinheiten (Protocol Data Units, PDUs), unterteilt wird. Die Standards legen auch die Metadaten fest, die jeder PDU in Form eines Headers hinzugefügt werden; die Metadaten können beispielsweise die Adressen des Ursprungs- und Zielhosts enthalten.

Die Zuweisung verschiedener Aspekte der Netzfunktionalität an verschiedene Schichten vereinfacht die Verarbeitung auf jeder Schicht, da ein Protokoll nur wissen muss, wie es mit den PDUs seiner eigenen Schicht umzugehen hat und welche Metadaten es in den Header aufnehmen muss, damit die Protokolle auf den angrenzenden Schichten die PDUs auf ihrer eigenen Ebene der Datensegmentierung neu verpacken können.

Die Verteilung der Netzwerkfunktionen auf die grundlegenden Protokolle für den Datenverkehr im World Wide Web – die zusammen als Internet-Protokoll (IP)-Suite bezeichnet werden – entspricht nicht genau dem OSI-Modell, da die IP-Suite definiert und implementiert wurde, bevor das endgültige OSI-Modell 1984 veröffentlicht wurde. Dennoch erfüllen die verschiedenen Protokolle der IP-Suite unterschiedliche Funktionen, die in etwa den OSI-Schichten entsprechen.

Auf jeder Ebene sind mehrere Protokolle definiert, aber im Folgenden sind die Protokolle und Ebenen aufgeführt, die für den Lastausgleich des Website-Datenverkehrs relevant sind:

  • Das Internetprotokoll (IP) arbeitet auf der Internet-Netzwerkschicht (Schicht 3). Seine PDUs werden Pakete genannt, und das IP ist dafür verantwortlich, sie von einem Ursprungshost zu einem Ziel-Host zu übertragen, in der Regel über die Grenzen zwischen den vielen kleineren Netzen, aus denen das Internet besteht. Jedes Gerät, das direkt mit dem Internet verbunden ist, hat eine eindeutige IP-Adresse, die verwendet wird, um das Gerät als Empfänger von Paketen zu lokalisieren.
  • Das Transmission Control Protocol (TCP) arbeitet auf der Transportschicht (Schicht 4). Das TCP stellt eine virtuelle Verbindung her zwischen dem Host, auf dem der Browser ausgeführt wird, und dem Host, auf dem eine Serveranwendung ausgeführt wird. Aufgrund der Unzuverlässigkeit von Netzwerken können IP-Pakete verloren gehen, beschädigt werden oder nicht in der richtigen Reihenfolge ankommen. Das TCP verfügt über Mechanismen zur Korrektur dieser Fehler und verwandelt den Strom von IP-Paketen in einen zuverlässigen Kommunikationskanal. Jeder Anwendung wird eine eindeutige TCP-Portnummer zugewiesen, um auf Hosts, auf denen viele Anwendungen ausgeführt werden, die Zustellung an die richtige Anwendung zu ermöglichen.
  • Das Hypertext Transfer Protocol (HTTP) arbeitet auf der Anwendungsschicht (Schicht 7) und legt fest, wie Daten für die Kommunikation zwischen Webbrowsern und Webservern (oder anderen Anwendungen, die die HTTP-Codierung verstehen) codiert werden.

Wie diese Liste verdeutlicht, ist die Bezeichnung „Lastausgleich auf Schicht 4“ für den Internet-Datenverkehr eine bequeme Abkürzung, aber der genauere Begriff ist „Lastausgleich auf Schicht 3/4“, weil der Load Balancer seine Entscheidung sowohl auf die IP-Adressen der Ursprungs- und Zielserver (Schicht 3) als auch auf die TCP-Portnummer der Anwendungen (Schicht 4) stützt. Der genauere Begriff für „Lastausgleich auf Schicht 7“ könnte „Lastausgleich auf Schicht 5 bis 7“ lauten, weil HTTP die Funktionen der OSI-Schichten 5, 6 und 7 kombiniert.