Monitoring-Ressourcen effektiver nutzen dank intelligenter Lastverteilung

Problemstellung

Oftmals besitzen Analyse-, Monitoring- und Security-Systeme mehr als nur einen Anschluss, um ankommende Daten von den entsprechenden Netzwerk-Abgriffspunkten anzunehmen und zu verarbeiten. Viele dieser Systeme haben mindestens 2, oder aber 4 oder sogar noch mehr Ports, welche zur Datenaufnahme bereitstehen.

Je nach Art und Standort der verschiedenen Netzwerk-Abgriffspunkte bietet das dem Anwender die Möglichkeit pro abgegriffener Leitung einen dedizierten physischen Port zur Verfügung zu stellen. Voraussetzung dafür sind aber mehrere Faktoren.

Die Geschwindigkeit und Topologie der zu analysierenden Netzwerkleitungen muss identisch sein zu den Anschlüssen des Analysesystems und es ist auszuschließen, dass in Zukunft weitere Abgriffspunkte hinzukommen, welche vom gleichen Analysesystem auszuwerten sind.

Lösungsansätze

Abseits der Problematik mit Geschwindigkeiten und Topologien kann man natürlich jederzeit zusätzliche Analysesysteme installieren, sollte die Anzahl der überwachenden Leitungen steigen.
Oftmals ist dies jedoch die kostspieligste und aufwendigste Alternative. Neben der erforderlichen Beschaffung würde es für den Anwender bedeuten, sich mit einem weiteren System auseinander zu setzen; ein vermeidbarer administrativer Mehraufwand.

Um solch eine Situation zu vermeiden, gibt es verschiedene Optionen und je nach bereits vorhandenem Setup kann man technische Verfahren einsetzen, um die ankommenden Daten der Messpunkte effektiver auf die bereits bestehenden physikalischen Ports zu verteilen.
Des Öfteren ist es nämlich primär das Verhältnis von Datenmenge und Anzahl der Messpunkte zu der Anzahl an verfügbaren Ports auf dem Analysesystem und nicht etwa die grundsätzliche Höhe des Datenvolumens, was zu Engpässen physikalischer Natur führen kann.

Hier kann sowohl (semi-dynamisches) Load Balancing als auch Dynamic Load Balancing helfen, ein Feature, welches die meisten Network Packet Broker mitbringen.
Hierbei wird auf dem Network Packet Broker eine Gruppe/Anzahl an physikalischen Ports zusammengefasst und als eine einzelne logische Ausgangsinstanz definiert. Datenströme, welche über diese Portgruppierung den Network Packet Broker verlassen, werden auf alle Ports, welche Teil dieser Gruppierung sind, verteilt, wobei die einzelnen Sessions jedoch erhalten bleiben.

Beispiel

Dynamic Load Balancing Beispiel-Diagramm

Nehmen wir folgendes Beispiel an: Es wurden 8 Messpunkte im lokalen Netzwerk verteilt gesetzt. Über jeden Abgriffspunkt läuft jeweils eine Session zwischen 2 Endpunkten. Das eingesetzte Analysesystem ist mit insgesamt 4 Ports zur Datenaufnahme ausgestattet.
Selbst wenn man davon ausgeht, dass die Messpunkte ausschließlich SPAN- oder Mirror-Ports sind, besteht immer noch das Problem, dass zu viele Messpunkte auf zu wenige Ports treffen.

Und genau hier kommen die Network Packet Broker mit Load Balancing ins Spiel. Die Lastverteilung sorgt dafür, dass jede Session zwischen 2 Endpunkten eines jeden Messpunktes als Ganzes an einen einzigen Port des angeschlossenen Analysesystems gesendet wird.
Der Einfachheit halber ist anzunehmen, dass die 8 Sessions der 8 Messpunkte zu gleichen Teilen auf die 4 Ports des Analysesystems verteilt werden, pro Port 2 Sessions.

Das alles ist komplett dynamisch und nachträglich hinzukommende Sessions zwischen Endpunkten werden vollautomatisch an die in der Portgruppierung zugehörigen Anschlüsse des Analysesystems gesendet. Eine nachträgliche Einrichtung oder Änderung der Konfiguration des Network Packet Brokers ist nicht nötig, die eingebauten Automatismen erlauben das automatisierte und zuverlässige Verteilen von weiteren Datenströmen an das Analysesystem.

Selbstverständlich ist es auch möglich, sowohl zusätzliche Abgriffspunkte an den Network Packet Broker anzuschließen und deren Daten in die Lastverteilung mit einfließen zu lassen, als auch die oben erwähnte Portgruppierung um zusätzliche Ausgangsports zu erweitern.
All diese Schritte können im laufenden Betrieb vorgenommen werden, die zusätzlichen Datenströme werden in Echtzeit ohne Unterbrechungen an die neu hinzugekommenen Ports des Analysesystems verteilt.

Auch ein Entfernen von Ports, selbst während des Betriebs, ist kein Problem! Der Network Packet Broker ist in der Lage, dafür zu sorgen, dass die Pakete/Sessions ohne Zeit- und Paketverlust an die verbliebenen Ports des Analysesystems weitergereicht werden.

Dynamic-Load-Balancing_2

Sessions & Tupels

Doch wie kann der Network Packet Broker sicherstellen, dass immer ganze Sessions auf den einzelnen Ports der oben genannten Load Balancing Gruppe verteilt werden?

Hierfür wird aus jedem einzelnen Paket ein Hash-Wert generiert. Eine integrierte Funktion stellt sicher, dass im Falle einer bi-direktionalen Kommunikation die Pakete beider Transportrichtungen auf demselben Port den Network Packet Broker wieder verlassen.

Diese Hash-Werte werden mittels dem sogenannten „5-Tuple“-Mechanismus ermittelt, wobei jedes Tupel ein bestimmtes Feld im Header eines jeden Ethernet-Frames darstellt. Die verfügbaren Tupels auf dem Network Packet Broker (bspw. NEOXPacketLion), welche für die dynamische Lastverteilung genutzt werden, sind:

  • Input Port (Physikalischer Anschluss)
  • Ethertype
  • Source MAC
  • Destination MAC
  • VLAN Label
  • MPLS Label
  • GTP Tunnel Endpoint Identifier
  • GTP Inner IP
  • IP Protocol
  • Source IP
  • Destination IP
  • Layer-4 Source PORT
  • Layer-4 Destination PORT

Je nach Struktur und Aufbau des Netzwerks und je nachdem, ob Pakete mittels NAT transportiert werden, ist eine weitere, sehr verbreitete Verteilung der Tupels:

  • IP Protocol
  • Source IP
  • Destination IP
  • Layer-4 Source PORT
  • Layer-4 Destination PORT

Bei der „5-Tuple“-basierten Lastverteilung werden alle oben genannten Tupel genutzt, um einen Hash-Wert zu bilden, welcher sicherstellt, dass alle Pakete inklusive der entsprechenden Rückrichtung immer über denselben Port den Network Packet Broker verlassen und somit beispielsweise das eingesetzte Security-System immer und grundsätzlich nur vollständige Sessions zur Auswertung erhält.

Hash-Werte

Um den eigentlichen Hash-Wert überhaupt generieren zu können, auf welchem die Lastverteilung basiert, stehen dem Benutzer zwei verschiedene Funktionen zur Verfügung, CRC32 und XOR.

Mittels der CRC32-Funktion lassen sich Hash-Schlüssel mit einer Länge von 32 Bits generieren und können sowohl symmetrisch als auch asymmetrisch genutzt werden, während die XOR-Funktion einen 16 Bit langen Hash-Schlüssel erstellt, welcher je nach Einsatzzweck eine höher auflösende Verteilung der Daten erlaubt, diese jedoch ausschließlich symmetrisch ausgeben kann.

Diese Symmetrie bedeutet, dass selbst wenn Source IP und Destination IP vertauscht werden, wie man es aus regulären Layer-3-Konversationen kennt, die Funktion dennoch den gleichen Hash-Schlüssel errechnet und damit auch die vollen Layer-3-Konversationen immer auf demselben physikalischen Port den Network Packet Broker verlassen.

Im Falle einer asymmetrischen Verteilung, welche nur von der CRC32-Funktion unterstützt wird, würde der Network Packet Broker PacketLion bei der oben beschriebenen Situation unterschiedliche Hash-Werte errechnen und somit auch entsprechend auf unterschiedlichen physikalischen Ports ausgegeben werden.

Dynamic Load Balancing - Screenshot - NEOXPacketLion Network Packet Broker
NEOXPacketLion Network Packet Broker – Screenshot

Dynamic Load Balancing

Eine weitere, zusätzliche Funktion der Lastverteilung ist die mögliche Dynamik, mit welcher dieses Feature erweitert werden kann. Im Falle einer dynamischen Lastverteilung wird zusätzlich zum oben erklärten Hash-Wert noch die prozentuale Auslastung eines jeden Ports, welcher Teil der Load-Balancing-Portgruppe ist, mit in die Kalkulation einbezogen.

Selbstverständlich werden auch bei diesem Verfahren keine Flows aufgesplittet, weiterhin wird auch sichergestellt, dass, wenn ein Flow basierend auf den Berechnungen auf einem bestimmten Port ausgegeben wird, dieser Flow auch in Zukunft immer über denselben Port den Network Packet Broker verlässt.

Mittels eines konfigurierbaren Timeouts kann der Nutzer definieren, ab wann ein Flow seine Zugehörigkeit zu einem Ausgangsport verliert. Dieser wird bei einem Wiederauftreten dann wieder regulär an die Teilnehmer der Load-Balancing-Portgruppe ausgegeben und sowohl durch Erkennung der Auslastung im TX Stream, als auch anhand der Hash-Wert-Generierung wird ermittelt, welcher Ausganssport des Network Packet Brokers derzeit am geeignetsten ist, um die Daten auf das angeschlossene Analysesystem zu bringen.

Fazit

Es zeigt sich, dass die Verteilung der ankommenden Datenlast mittels Load Balancing seit vielen Jahren ein probates Mittel zur effektiven Ausnutzung von Security-, Analyse- und Monitoring-Systemen ist. Über die Jahre wurde dieses Verfahren immer weiter verbessert und gipfelt in der dynamischen Lastverteilung, welches die PacketLion Serie innehat.

Ein ständiges Nachfassen der Konfiguration in Bezug auf die Verteilung der einzelnen Sessions auf die angeschlossenen Systeme entfällt komplett, dies übernimmt mittlerweile die Intelligenz der Network Packet Broker und erlaubt es dem Anwender, das volle Potential seiner Systeme zu nutzen und unnötige Ausgaben zu vermeiden.

Thank you for your upload