Beim Lastenausgleich auf Schicht 4 werden Informationen verwendet, die auf der Netzwerktransportschicht (Schicht 4) definiert sind, und dienen als Grundlage für die Entscheidung, wie Clientanforderungen auf eine Gruppe von Servern verteilt werden. Insbesondere beim Internetverkehr basiert die Entscheidung zum Lastenausgleich eines Layer 4-Load Balancers auf den im Paketheader aufgezeichneten Quell- und Ziel-IP-Adressen und Ports, ohne den Inhalt des Pakets zu berücksichtigen.

Insgesamt gibt es sieben Netzwerkschichten, die durch das Open Systems Interconnection [OSI]-Referenzmodell definiert sind. Weitere Informationen finden Sie weiter unten unter „Ebenen in den OSI- und Internetmodellen“ .

Weitere Informationen zum Lastenausgleich finden Sie unter Anwendungslastenausgleich mit NGINX Plus .

Layer 4-Lastausgleich und NAT

Heute bezieht sich der Begriff „Layer 4-Loadbalancing“ meist auf eine Bereitstellung, bei der die IP-Adresse des Load Balancers diejenige ist, die den Clients für eine Website oder einen Dienst mitgeteilt wird (beispielsweise über DNS). Dies hat zur Folge, dass Clients die Adresse des Load Balancers als Ziel-IP-Adresse in ihren Anfragen aufzeichnen.

Wenn der Layer-4-Load Balancer eine Anforderung empfängt und die Entscheidung zum Lastenausgleich trifft, führt er auch eine Network Address Translation (NAT) für das Anforderungspaket durch und ändert dabei die aufgezeichnete Ziel-IP-Adresse von seiner eigenen in die des von ihm im internen Netzwerk ausgewählten Inhaltsservers. Ebenso ändert der Load Balancer vor der Weiterleitung der Serverantworten an die Clients die im Paketheader aufgezeichnete Quelladresse von der IP-Adresse des Servers in seine eigene. (Die in den Paketen aufgezeichneten Ziel- und Quell-TCP-Portnummern werden manchmal auf ähnliche Weise geändert.)

Layer-4-Load-Balancer treffen ihre Routing-Entscheidungen auf Grundlage der Adressinformationen, die aus den ersten paar Paketen im TCP-Stream extrahiert werden, und überprüfen nicht den Paketinhalt. Bei einem Layer 4-Load Balancer handelt es sich häufig um ein dediziertes Hardwaregerät eines Anbieters, auf dem proprietäre Lastenausgleichssoftware läuft. Die NAT-Vorgänge werden möglicherweise von speziellen Chips und nicht von der Software ausgeführt.

Die Lastverteilung auf Ebene 4 war ein beliebter Architekturansatz zur Verkehrsabwicklung, als Standardhardware noch nicht so leistungsstark war wie heute und die Interaktion zwischen Clients und Anwendungsservern viel weniger komplex war. Es erfordert weniger Rechenleistung als komplexere Methoden zum Lastenausgleich (wie etwa Layer 7), doch CPU und Speicher sind mittlerweile schnell und günstig genug, sodass der Leistungsvorteil beim Layer 4-Lastenausgleich in den meisten Situationen vernachlässigbar oder irrelevant geworden ist.

Vergleich von Layer 4- und Layer 7-Load Balancern

Layer-7-Load Balancer arbeiten auf der höchsten Ebene des OSI-Modells, der Anwendungsschicht (im Internet ist HTTP das dominierende Protokoll dieser Schicht). Layer-7-Load-Balancer stützen ihre Routing-Entscheidungen auf verschiedene Merkmale des HTTP-Headers und auf den tatsächlichen Inhalt der Nachricht, beispielsweise die URL, den Datentyp (Text, Video, Grafik) oder Informationen in einem Cookie.

Da so viele weitere Aspekte der übertragenen Informationen berücksichtigt werden, kann die Lastverteilung auf Layer 7 im Hinblick auf Zeit und erforderliche Rechenleistung teurer sein als auf Layer 4, aber dennoch zu einer höheren Gesamteffizienz führen. Da ein Layer-7-Load Balancer beispielsweise ermitteln kann, welchen Datentyp (Video, Text usw.) ein Client anfordert, müssen Sie nicht dieselben Daten auf allen Servern mit Lastenausgleich duplizieren.

Moderne allgemeine Load Balancer wie NGINX Plus und die Open-Source-Software NGINX arbeiten im Allgemeinen auf Ebene 7 und dienen als vollwertige Reverse-Proxys . Anstatt den Datenverkehr paketweise zu verwalten wie Layer-4-Load Balancer, die NAT verwenden, können Layer-7-Load Balancing-Proxys Anfragen und Antworten vollständig lesen. Sie verwalten und manipulieren den Datenverkehr auf der Grundlage eines umfassenden 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 Load Balancing auf Ebene 4 oder Ebene 7 bereitstellen. Wie bereits erwähnt, ist moderne Standardhardware im Allgemeinen leistungsstark genug, sodass die Einsparungen bei den Rechenkosten durch Layer-4-Loadbalancing nicht so groß sind, dass sie die Vorteile der größeren Flexibilität und Effizienz durch Layer-7-Loadbalancing aufwiegen.

Wie NGINX helfen kann

NGINX Plus und NGINX sind die besten Lastausgleichslösungen ihrer Klasse, die von Websites mit hohem Datenverkehr wie Dropbox, Netflix und Zynga verwendet werden. Mehr als 350 Millionen Websites weltweit verlassen sich auf NGINX Plus und NGINX Open Source, um ihre Inhalte schnell, zuverlässig und sicher bereitzustellen.

Als softwarebasierter Load Balancer ist NGINX Plus viel günstiger als hardwarebasierte Lösungen mit ähnlichen Funktionen. Die umfassenden Lastausgleichsfunktionen in NGINX Plus ermöglichen Ihnen den Aufbau eines hochoptimierten Anwendungsbereitstellungsnetzwerks.

Wenn Sie NGINX Plus als Load Balancer vor Ihrer Serverfarm einfügen, erhöht dies die Effizienz, Leistung, Zuverlässigkeit und Skalierbarkeit Ihrer gesamten Website. NGINX Plus hilft Ihnen, sowohl die Kundenzufriedenheit als auch den Ertrag Ihrer IT-Investitionen zu maximieren.

Schichten in den OSI- und Internetmodellen

Beim Internetverkehr ist die Bezugnahme auf die Lastverteilung auf „Layer 4“ und „Layer 7“ eine praktische Abkürzung, sie ist jedoch nicht ganz korrekt. Wenn Sie interessiert sind, lesen Sie weiter.

Das Konzept der sieben Netzwerkschichten stammt aus dem Open Systems Interconnection (OSI)-Referenzmodell. Das Modell unterteilt Netzwerkfunktionen in sieben abstrahierte Schichten, die üblicherweise mit ihren Nummern bezeichnet werden (Schicht 1 bis Schicht 7). Auf jeder Ebene gibt es Standards, die definieren, wie Daten verpackt und transportiert werden. Die Standards definieren unter anderem, wie der Bitstrom, der eine Anfrage oder Antwort darstellt, in einzelne Pakete, sogenannte Protocol Data Units (PDUs), segmentiert wird. Die Standards definieren außerdem die Metadaten, die jeder PDU in Form eines Headers hinzugefügt werden. Die Metadaten können beispielsweise die Adressen der Quell- und Zielhosts angeben.

Durch die Zuweisung verschiedener Aspekte der Netzwerkfunktionalität zu unterschiedlichen Schichten wird die Verarbeitung auf jeder Schicht vereinfacht, da ein Protokoll nur wissen muss, wie es mit den PDUs seiner eigenen Schicht umgeht und welche Metadaten in den Header aufgenommen werden müssen, 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 Internetprotokoll-Suite (IP-Suite ) bezeichnet werden – entspricht nicht genau dem OSI-Modell. Dies liegt daran, dass die IP-Suite definiert und implementiert wurde, bevor das endgültige OSI-Modell im Jahr 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. Für den Lastenausgleich des Website-Verkehrs sind jedoch die folgenden Protokolle und Ebenen relevant:

  • Das Internet Protocol (IP) arbeitet auf der Internetwork- Schicht (Schicht 3). Seine PDUs werden Pakete genannt, und IP ist für deren Übermittlung von einem Ursprungshost zu einem Zielhost verantwortlich, normalerweise über die Grenzen zwischen den vielen kleineren Netzwerken hinweg, aus denen das Internet besteht. Jedes direkt mit dem Internet verbundene Gerät verfügt über eine eindeutige IP-Adresse, anhand derer das Gerät als Empfänger von Paketen lokalisiert wird.
  • Das Transmission Control Protocol (TCP) arbeitet auf der Transportschicht (Schicht 4). TCP erstellt effektiv eine virtuelle Verbindung 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 in der falschen Reihenfolge ankommen. TCP verfügt über Mechanismen zum Korrigieren dieser Fehler und wandelt den IP-Paketstrom in einen zuverlässigen Kommunikationskanal um. Jeder Anwendung wird eine eindeutige TCP-Portnummer zugewiesen, um die Zustellung an die richtige Anwendung auf Hosts zu ermöglichen, auf denen viele Anwendungen ausgeführt werden.
  • Das Hypertext Transfer Protocol (HTTP) arbeitet auf der Anwendungsschicht (Schicht 7). Es definiert, wie Daten für die Kommunikation zwischen Webbrowsern und Webservern (oder jeder Anwendung, die die HTTP-Kodierung versteht) kodiert werden.

Wie diese Liste deutlich macht, ist die Bezeichnung „Layer 4-Load Balancing“ des Internetverkehrs eine praktische Abkürzung, die genauere Bezeichnung ist jedoch „Layer 3/4-Load Balancing“, da der Load Balancer seine Entscheidung sowohl auf den IP-Adressen der Quell- und Zielserver (Layer 3) als auch auf der TCP-Portnummer der Anwendungen (Layer 4) basiert. Die genauere Bezeichnung für „Layer 7-Load Balancing“ wäre möglicherweise „Layer 5 bis 7-Load Balancing“, da HTTP die Funktionen der OSI-Layer 5, 6 und 7 kombiniert.