Schlagwort-Archive: network packet broker

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.

Dank Packet Slicing einen guten Schnitt machen

Problemstellung

Sling - Photo by Brands&People

Oftmals ist die Schere zwischen einerseits der Kapazität des aufzeichnenden Analysesystems und der Menge an ankommenden Daten so groß, dass ohne entsprechende zusätzliche Mechanismen das Analysesystem höchst-wahrscheinlich nicht in der Lage ist, alle einzelnen Pakete verlustfrei aufzuzeichnen.

Dies ist je nach Einsatzweck eben jenes Analysesystems ein großes Problem, da speziell im Cyber-Security-Umfeld jedes Paket zählt und man andernfalls nicht sicherstellen kann, sämtliche Angriffe und deren Auswirkungen zu erkennen.

Durch nicht rechtzeitig erkannte oder sogar komplett unsichtbar gebliebene Angriffe können den Unternehmen so Schäden in gewaltiger Höhe entstehen, sogar bis hin zu Regressansprüchen von etwaigen Versicherern, wenn diese feststellen sollten, dass deren Klienten nicht ihrer Sorgfaltspflicht nachkamen.

Doch wie entsteht solch eine Situation? Ganz schnell kann es passieren, dass Netze in den Unternehmen wachsen, oftmals parallel mit der geschäftlichen Entwicklung dieses Unternehmens, während die oftmals bereits vorhandenen Analyse- und Monitoringsysteme, bei der Beschaffung mit Reserven eingeplant, immer öfter und häufiger an das Ende ihrer Reserven stoßen.
Höhere Bandbreiten, immer mehr Dienste und Schnittstellen, welche im LAN eingesetzt werden, reduzieren die Kapazitäten, bis zu dem Punkt, an welchem die Systeme nicht mehr mithalten können und Pakete verwerfen müssen.
Photo by Lars Kienle
Ab diesem Moment ist es theoretisch möglich, dass ein Angreifer sich unentdeckt im lokalen Netz aufhält, da das Analysesystem hoffnungslos überlastet ist. Der Administrator ist nicht mehr in der Lage, zu erkennen, welche Parteien in seinem Netz miteinander sprechen, welche Protokolle sie nutzen und mit welchen Endpunkten außerhalb des LANs kommuniziert wird.

Oftmals sind jedoch nicht Kapazitätsprobleme der Auslöser für das Aktivieren von Packet Slicing, sondern vielmehr datenschutzrechtliche Gründe. Je nachdem, wo und welche Daten wann abgegriffen werden, kann es für das Unternehmen verpflichtend sein, dass nur solche Daten aufgezeichnet und ausgewertet werden, welche keinerlei personenbezogene bzw. leistungsbezogene Informationen beinhalten.

Während typischerweise der Paketkopf nur Verbindungsdaten enthält (WANN, WER, WIE, WO), finden sich in den Nutzdaten, obwohl meist verschlüsselt, eben jene inhaltlichen Daten, welche es theoretisch ermöglichen, die Leistung der einzelnen Anwender zu bemessen. Je nach Einsatzort ist dies jedoch oft weder gewollt oder erlaubt. Es muss daher sichergestellt werden, dass es dem Administrator nicht möglich ist, persönliche Informationen aus den aufgezeichneten Daten zu rekonstruieren.

Analysedaten reduzieren mittels Packet Slicing

87 Prozent weniger dank Packet Slicing
Und genau an diesem Punkt kommt das Feature „Packet Slicing“ ins Spiel: mit diesem Verfahren ist es möglich, die ankommende Datenlast an Ihrem Analysesystem um bis zu 87% zu reduzieren (bei 1518 Bytes Paketgröße undPacket Slicing bei 192 Bytes), indem von jedem Paket die Nutzdaten einfach entfernt werden.

Viele Analyse- und Monitoring-Ansätze benötigen für ihre Auswertungen und Analysen nur die Informationen, welche im Paketheader gespeichert sind, sprich die Metadaten, während die Nutzdaten oftmals keine wichtigen oder verwertbaren Informationen enthalten, da diese sowieso meistens verschlüsselt sind und somit nicht für die Auswertung verwendet werden können.
Durch eben jenes Entfernen der Nutzdaten ist eine massive Entlastung der verarbeitenden Instanz zu erwarten und dieses ermöglicht teilweise sogar noch eine größere Abdeckung des LANs durch das Monitoring- und Analysegerät.

FCS-Prüfsummenproblematik


Ein wichtiger Aspekt beim Packet Slicing ist die Wiederherstellung der FCS-Prüfsumme eines jeden geänderten Pakets. Da durch das Wegschneiden der Nutzdaten in die Struktur und Länge des Paketes eingegriffen wird, ist die ursprünglich berechnete Prüfsumme, welche vom Absender errechnet und in das FCS-Feld des Paketkopfes eingetragen wurde, nicht mehr korrekt.

Sobald ein solches Paket auf dem Analysesystem ankommt, werden jene Pakete verworfen oder als fehlerhaft deklariert, da die Prüfsumme im FCS-Feld immer noch auf der ursprünglichen Paketlänge basiert. Um dem entgegen zu wirken, ist es essentiell, dass die FCS-Prüfsumme für jedes Paket, von welchem die Nutzdaten entfernt wurden, neu berechnet und auch eingetragen wird, da dies sonst die Analysesysteme zwingen würde, diese Pakete als fehlerhaft und/oder manipuliert einzustufen.

Network Packet Broker als Packet Slicer

Generell gibt es mehrere Möglichkeiten, an welchen Stellen in der vom Kunden eingesetzten Visibility-Plattform das oben genannte Packet Slicing aktiviert werden kann. Dies ist einerseits eine Entscheidung von Fall zu Fall, andererseits auch eine technische.

PacketLion - Network Packet Broker - Network Monitoring Switch | Data Monitoring Switch

Davon ausgehend, dass der Anwender mehrere Messpunkte in seinem Netzwerk verteilt gesetzt hat, wird oftmals ein Network Packet Broker eingesetzt. Dieses Gerät ist eine weitere Aggregationsebene und wird typischerweise als letzte Instanz direkt vor dem Monitoring-System eingesetzt. Ein Network Packet Broker ist optisch sehr nah an einem Switch und ermöglicht es dem Anwender, die Daten von multiplen Messpunkten (Netzwerk-TAPs oder SPAN-Ports) zentral zusammen- zuführen und aggregiert in einem oder mehreren Datenströmen an das zentrale Analysesystem zu senden.

Somit können z.B. die Daten von 10 verteilten Messpunkten, welche in 1Gigabit-Leitungen gesetzt wurden, an ein Analysesystem mit einem einzelnen 10Gigabit-Port gesendet werden, indem der Network Packet Broker diese 1Gigabit-Signale aggregiert und als ein einziges 10Gigabit-Signal wieder ausgibt.

PacketRaven Netzwerk-TAP - OM4 to RJ45An diesem Punkt erfährt der Anwender jedoch von einem Haken an der ganzen Thematik: Oftmals sind die Analysesysteme, obwohl sie mit einem 10Gigabit-Anschluss ausgestattet sind, nicht in der Lage, auch Bandbreiten von 10Gigabit/Sekunde zu verarbeiten.

Dies kann verschiedenste Gründe haben, welche jedoch nicht Thema dieses Blogeintrags sein sollen. Allerdings ist die Ausgangslage prädestiniert für den Einsatz von Packet Slicing; während man im Regelfall seine Monitoring-Infrastruktur mit immensen Kosten erweitern müsste, kann man mit dem Einschalten von Packet Slicing die ankommende Datenflut massiv verringern und somit weiterhin seine bestehenden Systeme nutzen, einzig und allein eine entsprechende Instanz mit eben jenem Feature wird benötigt, welche im Einkauf in aller Regel nur einen Bruchteil dessen kostet, was für ein Upgrade der Analysesysteme zu veranschlagen wäre.

Analysesysteme als Packet Slicer

Napatech High Performance Smart-NICsEine weitere Möglichkeit bietet sich dem Anwender auf den Analysesystemen selbst. Je nach Hersteller, Aufbau und eingesetzten Komponenten ist es möglich, auf den Systemen selbst direkt die Nutzdaten zu entfernen und die Prüfsumme neu zu berechnen, bevor die Pakete an die entsprechenden Analysemodule intern weitergereicht werden.

In den allermeisten Fällen wird hierfür eine FPGA-basierte Netzwerkkarte benötigt, da sichergestellt werden muss, dass keine CPU-basierte Ressource für die Änderung eines jeden einzelnen Pakets verwendet wird. Nur mittels reiner Hardware-Kapazitäten kann der Anwender sicher sein, dass auch wirklich jedes Paket entsprechend bearbeitet wird, eine andere Herangehensweise könnte wieder zu den eingangs angesprochenen Fehlern und Problemen führen.

Packet Slicing zur Erfüllung rechtlicher Anforderungen

Ein weiterer nennenswerter Aspekt ist die Erfüllung von rechtlichen Anforderungen. Insbesondere im Zusammenhang mit der DSGVO kann es erforderlich sein, die Nutzdaten zu entfernen, da oftmals für eine Analyse die Metadaten zur Auswertung ausreichen.

Beispielsweise, wenn man VoIP analysieren möchte, dann kann mittels Packet Slicing sichergestellt werden, dass nicht autorisierte Personen das Gespräch nicht abhören können, aber man technisch dennoch die Sprachübertragung auswerten und auf Quality-of-Service-Merkmale hin begutachten kann. Somit kann man Performance-Werte auswerten, die Privatsphäre schützen und die gesetzlichen Anforderungen wie eben die DSGVO erfüllen.

Fazit

Wir sehen also, dass es in der Tat verschiedene Möglichkeiten gibt, wie man die finale Last auf den Analyse- und Monitoring-Systemen verteilen oder sogar, wie in diesem Beispiel, verkleinern kann, ohne dass die wichtigsten Informationen zur Erstellung von Performance Charts, Top Talkers und mehr verloren gehen. Packet Slicing stellt somit eine valide Lösung für den Anwender dar, welche sich in fast allen Fällen problemlos realisieren lässt und verwertbare Ergebnisse erzielt.

Thank you for your upload