Autor-Archive: Patrick Nixdorf

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.

Die Auswirkung von Paketverlusten auf ein IDS Deployment

DIE-AUSWIRKUNG-VON-PAKETVERLUSTEN-AUF-EIN-IDS-DEPLOYMENT

Auf der SuriCon 2019 präsentierten Eric Leblond und Peter Manev – beide wichtige Mitarbeiter der Suricata-Community – wichtige Testergebnisse und betonten die Auswirkungen von Paketverlusten. Lassen Sie uns ein wenig tiefer in die Bedeutung von Zero Packetloss bei einer IDS-Bereitstellung einsteigen.

Die Auswirkungen von Paketverlusten auf einer Vielzahl von Netzwerkanalysegeräten sind je nach Funktion des Analysegerätes sehr unterschiedlich. Die Messgenauigkeit von Geräten zur Überwachung der Netzwerk- und/oder Anwendungsleistung wird beeinträchtigt, wenn Pakete vom Netzwerksensor gedroppt werden.

Im Falle eines Cybersicherheitsgeräts, wie z.B. eines Suricata-basierten Intrusion Detection Systems (IDS), werden verpasste Attacken direkt durch den Verlust von Paketen beeinflusst. Dies gilt auch für die Dateiextraktion.

Die Auswirkung von Paketverlusten
auf die Generierung von Intrusion Alerts

Egal wie gut die IDS-Regel ist, wenn nicht alle Pakete für eine bestimmte Session an das IDS geliefert werden, können Alarme verpasst werden. Dies ist hauptsächlich darauf zurückzuführen, wie ein IDS eine Session verarbeitet. Die gegebenen Pakete, die innerhalb der Session verworfen werden, bestimmen, ob das IDS genug Daten hat, um einen Alarm zu generieren.

In vielen Fällen verwirft das IDS die gesamte Sitzung, wenn Schlüsselpakete fehlen. Ein verpasster Alarm könnte bedeuten, dass ein Eindringversuch unentdeckt blieb.

Zur Messung der versäumten Alarme
wurde die folgende Methodik angewandt:

  • Traffic-Quelle ist eine PCAP-Datei, die den tatsächlichen Netzwerkverkehr mit böswilligen Aktivitäten enthält
  • Die PCAP-Datei wird verarbeitet, um einen bestimmten zufälligen Paketverlust zu simulieren
  • Suricata-Alarme werden für die originale PCAP-Datei mit einer modifizierten Datei verglichen

Beispielhafte Zahlen:

  • 10% verpasste Alarme mit 3% Paketverlust
  • 50% verpasste Alarme mit 25% Paketverlust

Die Auswirkung von Paketverlusten
auf die IDS-Datei-Extraktion

Teil einer erfolgreichen IDS-Strategie ist es, auch die Dateiextraktion zu automatisieren. Die meisten IDS-Engines unterstützen die Protokolle HTTP, SMTP, FTP, NFS und SMB. Der Dateiextraktor läuft über den Protokoll-Parser, der das Dekomprimieren und Entpacken der Anfrage und/oder der Antwortdaten übernimmt, falls erforderlich.

Der Verlust eines einzelnen Pakets für einen Stream, welcher eine bestimmte Datei beinhaltet, führt in den meisten Fällen zum Scheitern der Dateiextraktion.

Beispielhafte Zahlen:

  • 10% fehlgeschlagene Dateiextraktion mit 4% Paketverlust
  • 50% fehlgeschlagene Dateiextraktion mit 5,5% Paketverlust

Zusammenfassend zeigen die Testergebnisse, wie wichtig Zero Packetloss für einen erfolgreichen IDS-Einsatz sind. FPGA-SmartNIC-Funktionen wie On-Board-Burst-Pufferung, DMA und optimierte PCI-Express-Performance minimieren oder eliminieren den Paketverlust in einem serverbasierten Standard-IDS vollständig.

Napatech SMART NICS: 50% Datenreduktion durch integrierte Deduplizierung

50-prozent-Datenreduktion-durch-integrierte-Deduplizierung

Die Herausforderung: mehr als 50% Kopien

Doppelte Pakete sind eine große Belastung für die heutigen Netzwerküberwachungs- und Sicherheitsanwendungen. Im schlimmsten Fall sind mehr als 50% des empfangenen Datenverkehrs reine Replikation. Dies führt nicht nur zu einem zu hohen Anspruch in Bezug auf Bandbreite, Rechenleistung, Speicherkapazität und Gesamteffizienz.

Es stellt auch eine große Belastung für die Betriebs- und Sicherheitsteams dar, da sie am Ende wertvolle Zeit mit der Jagd auf False-Negatives verschwenden. Napatechs intelligente Deduplizierungsfunktionen lösen dies, indem sie doppelte Pakete identifizieren und verwerfen, was eine Reduzierung der Anwendungsdatenlast um bis zu 50% ermöglicht.

Fehlkonfigurierte SPAN-Ports

Für passive Überwachungs- und Sicherheitsanwendungen können doppelte Pakete mehr als 50% des gesamten Datenverkehrs ausmachen. Dies ist zum Teil auf TAP- und Aggregationslösungen zurückzuführen, die Pakete von mehreren Punkten im Netzwerk sammeln – und zum Teil auf falsch konfigurierte SPAN-Ports, ein viel zu häufiges Problem in den heutigen Rechenzentren.

Lösung: intelligente Deduplizierung

Mit der über ein SmartNIC in der Anwendung integrierten Deduplizierung ist es möglich, alle doppelten Pakete zu erkennen. Durch die Analyse und den Vergleich eingehender Pakete mit zuvor empfangenen/gespeicherten Daten verwerfen Deduplizierungsalgorithmen alle Duplikate, was die Belastung des Systems verringert und die Leistung erheblich optimiert.

Software vs Hardware Deduplication Vergleich

Signifikante Kostenvorteile

Durch das Hinzufügen von Deduplizierung in der Hardware über ein Napatech SmartNIC können auf verschiedenen Ebenen erhebliche Kostenvorteile erzielt werden:

  • Auf dem LEISTUNGsniveau
    Für die überwiegende Mehrheit der Capture-Implementierungen spart die Deduplizierung drastisch Systemressourcen. Durch die effiziente entfernen redundanter Kopien kann die Deduplizierung die Verarbeitungslast, den PCIe-Transfer, den Systemspeicher und den Festplattenspeicherbedarf um bis zu 50% reduzieren.
  • Auf OPERATIVER Ebene
    Auf operativer Ebene ist das Hauptproblem bei doppelten Paketen, dass sie den Überblick verzerren. Aber mit Deduplizierung vermeiden Betriebs- und Sicherheitsteams, wertvolle Zeit mit der Untersuchung von Fehlalarmen zu verschwenden.
  • Auf ANWENDUNGsebene
    Ähnliche Funktionen sind bei Network Packet Brokern verfügbar, oftmals jedoch gegen eine beträchtliche zusätzliche Lizenzgebühr. Auf Napatech SmartNICs ist die Deduplizierung nur eine von mehreren leistungsstarken Funktionen, die ohne Aufpreis angeboten werden.
  • Wichtige Merkmale

    • Deduplizierung in Hardware bis zu 2x100G
    • Deduplizierungsschlüssel, der als Hash über konfigurierbare Abschnitte des Frames berechnet wird.
    • Dynamische Header-Informationen (z.B. TTL) können aus der Schlüsselberechnung ausgeblendet werden.
    • Die Deduplizierung kann pro Netzwerkport oder Netzwerkportgruppe aktiviert / deaktiviert werden.
    • Konfigurierbare Aktion pro Portgruppe: Duplikate verwerfen oder übergeben / Doppelte Zähler pro Portgruppe
    • Konfigurierbares Deduplizierungsfenster: 10 Mikrosekunden – 2 Sekunden

    Möchten Sie die Datenduplizierung um bis zu 50% reduzieren? Kontaktieren Sie uns noch heute!

Firewall Performance Testing mit Xena VulcanBay

FIREWALL-PERFORMANCE-TESTING-MIT-XENA-VULCANBAY

In diesem konkreten Testfall haben wir einen Xena VulcanBay mit 2x 40 Gbps QSFP+ Interfaces verwendet, um einige Next-Generation Firewalls bezüglich ihrer Performance zu testen. Konkret waren wir an folgenden Testszenarien interessiert:

  • Reiner Durchsatz (Throughput)
  • Hohe Anzahl von Verbindungen (Session Load)
  • Einsatz von NAT
  • Realistischer Traffic
  • Längere Testzeiträume, währenddessen wir neue Firewallregeln „gepusht“ haben, um potentielle Einbrüche im Durchsatz feststellen zu können

In diesem Beitrag wollen wir zeigen, wie wir den Xena VulcanBay inkl. dessen Management, dem VulcanManager, sowie einen Cisco Nexus Switch zum Verbinden der Firewall-Cluster eingesetzt haben. Wir listen unsere Testszenarien auf und geben ein paar Hinweise zu potentiellen Stolpersteinen.

Für unsere Tests hatten wir einen Xena VulcanBay Vul-28PE-40G mit Firmware Version 3.6.0, Lizenzen für die beiden 40 G Interfaces sowie die vollen 28 Packet Engines zur Verfügung. Der VulcanManager lief auf Version 2.1.23.0. Da wir nur einen einzelnen VulcanBay (und nicht mehrere an verteilten Standorten) verwendet haben, konnte der einzige Admin-User die vollen 28 Packet Engines auf diese beiden Ports gleichermaßen verteilen.

Für Tests mit bis zu 80 G Durchsatz reichten zwei QSFP+ Module (links) sowie die Verteilung der Packet Engines auf eben diese Ports (rechts).

Verkabelung

Für den Anschluss des VulcanBays an die jeweiligen Firewall-Cluster haben wir einen einzelnen Cisco Nexus Switch mit genügend QSFP+ Modulen und entsprechendem Durchsatz verwendet. Da wir alle Firewall-Cluster als auch den VulcanBay gleichzeitig an diesen Switch angeschlossen hatten, und für die Tests stets die gleichen IPv4/IPv6 Adressbereiche genommen hatten, konnten wir rein mit dem „shutdown / no shutdown“ einzelner Interfaces darüber entscheiden, welchen Firewallhersteller wir nun testen wollten. Somit war das komplette Labor aus der Ferne steuerbar. Sehr praktisch für den typischen Fall eines Homeoffice Mitarbeiters. Außerdem war es so einfach möglich, den VulcanBay auch „mit sich selbst“ zu verbinden, um aussagekräftige Referenzwerte aller Tests zu bekommen. Hierfür wurden temporär beide 40 G Interface zum VulcanBay in das gleiche VLAN konfiguriert.

Mit jeweils zwei Leitungen für Client und Server wurden alle Firewall Cluster an einen zentralen Switch gekoppelt. Ebenso der VulcanBay von Neox Networks.

Es gibt Switche mit QSFP+ Modulen, welche allerdings als 4x 10 G ausgeführt sind und *nicht* als 1x 40 G. Für den Anschluss des VulcanBay mit seinen 40 G Interfacen ist letzteres unumgänglich.

Dank moderner QSFP+ Slots mit 40 G Interfaces erreicht man mit nur zwei Anschlüssen einen Duplex Durchsatz von 80 Gbit/s.

IP Subnets

In unserem Fall wollten wir verschiedene Firewalls im Layer 3 Modus testen. Um dieses „Device Under Test“ (DUT) routingtechnisch einzubinden haben wir entsprechende Subnetze angelegt – sowohl für das veraltete IPv4 Protokoll als auch für IPv6. Die vom VulcanBay simulierten IP Subnetze liegen nachher an der Firewall direkt an. Im Falle eines /16er IPv4 Netztes muss also genau dieses /16 Netz auch an der Firewall konfiguriert werden. Wichtig ist vor allem der Default Gateway, beispielsweise 10.0.0..1 für das Client IPv4 Netz. Verwendet man zusätzlich die Option „Use ARP“ (rechte Seite), muss man sich um die eingeblendeten MAC Adressen nicht kümmern. Der VulcanBay löst diese selbst auf.

Der Adressbereich muss zwingend angepasst werden, damit die durchgeführten Tests nicht einem MAC Flooding gleichkommen.

Bei IPv6 verhält es sich gleichermaßen. Hier wird das Netzwerk nicht in der sonst üblichen Slash-Notation eingegeben, sondern einfach nur der Gateway und der Address Range bestimmt. Per „Use NDP“ löst auch hier der VulcanBay die Layer 2 MAC-Adresse zur Layer 3 IPv6-Adresse selbstständig auf.

Per „Use Gateway“ teil man dem VulcanBay mit, dass ein dazwischenliegender Router/Firewall für die Tests verwendet werden soll.

MAC Flooding! Je nach verwendeten Test Szenarios simuliert der VulcanBay mitunter Millionen von IPv4/IPv6 Adressen im Client oder Server Segment. Dies ist für jeden dazwischenliegenden Switch oder Firewall eine reine Flut von MAC Adressen. Gängige High-End Swichte können maximal 128 k MAC Adressen in ihrer MAC-Address-Table halten. Belässt man die von Xena Networks per default eingestellt Range von 16 Millionen (!) IPv4 Adressen, bzw. 1,8 x 10^19 IPv6 Adressen sind hernach jedwede Testergebnisse nichts aussagend. Daher strikt die Empfehlung, die Address Ranges von vornherein auf realitische Werte zu verkleinern, wie in dem Screenshot oben zu sehen ist (gelb markiert: 65 k Adressen).

Für Referenzwerte wurde der VulcanBay für alle Tests auch „mit sich selbst“ verbunden. Während man bei IPv4 die gleichen „Subnets“ Netze mit den unterschiedlichen Adressbereichen weiterverwenden konnte, waren bei IPv6 Subnetze innerhalb des *gleichen* /64 Präfix nötig.

Testcases

1) Reiner Durchsatz (Throughput): In dem ersten Testszenario ging es uns rein um den Durchsatz der Firewalls. Hierfür haben wir das Szenario „Pattern“ gewählt, einmal für IPv4 und einmal für IPv6, was automatisch die Ratio auf 50-50 legt. In den Einstellungen haben wir zusätzlich „Bidirectional“ ausgewählt um in beiden Fällen Daten in beide Richtungen, also Duplex, durchzuschieben. So konnten wir mit den 2x 40 G Interfaces den maximalen Durchsatz von vollen 80 G erreichen. Um die Bandbreite über mehrere Sessions zu verteilen (was im echten Leben der realistischere Testfall ist), wählten wir 1000 User aus, welche jeweils von 100 Source Ports zu 10 Servern Verbindungen aufbauen sollten. Macht für IPv4 und IPv6 jeweils 1 Million Sessions. Bei einer Ramp-Up Time von 5 Sekunden, also einem sanften Anstieg der Verbindungen anstelle der sofortigen vollen Last, lief der reine Test danach 120 Sekunden durch, bevor er ebenfalls eine Ramp-Down Time von 5 Sekunden hatte.

Testszenario „Pattern“ mit einer 50-50 Verteilung von IPv4 und IPv6. Das „Load Profile“ (rechts) zeigt die zu simulierenden User anhand der Zeitachse.

Während des Tests zeigt der VulcanManager bereits einige nützliche Daten an, wie beispielsweise die TCP Connections oder den Layer 1 Durchsatz. Anhand der Grafiken im oberen Bereicht bekommt man auf einen Blick einen guten Eindruck. Im folgenden Screenshot lässt sich so erkennen, dass die Anzahl der aktiven Verbindungen weniger als die Hälfte der geplanten schafft (schlecht), während der Layer 5-7 Goodput einen unschönen Knick zu Beginn des Tests hat. Beide Probleme haben sich im Nachgang als Fehler bei der IPv6 Implementation des getesteten Geräts herausgestellt.

Während theoretisch 2 Millionen Sessions bei 80 G Durchsatz die Firewall hätten passieren sollen, ist hier weniger als die Hälfte sauber durchgekommen.

Die Grafik „Active Sessions“ zeigt sowohl in dem Live-View während des Tests als auch in dem späteren PDF Bericht nicht die tatsächlichen aktiven Sessions, sondern die Anzahl der simulierten User an. Während die Grafik für die 2000 User zwar stimmt, waren es während des Tests tatsächlich 2 Millionen Sessions.

2) Hohe Anzahl von Verbindungen (Session Load): Ebenfalls für IPv4 und IPv6 wurden bei diesem Test 20 Millionen parallele TCP Sitzungen aufgebaut und aufrechterhalten. Nicht nur die Summe der Sessions war relevant, sondern vor allem die kurze Ramp-Up Zeit von nur 30 Sekunden, was einem Aufbaurate von 667.000 Verbindungen pro Sekunde entsprach! Für 60 Sekunden wurden die Sessions stehen gelassen, jedoch ohne Daten zu transferieren. Über weitere 30 Sekunden wurden sie, TCP-typisch per FIN-ACK, wieder abgebaut. Ziel war es, dass die zu testenden Firewalls erstens die Verbindungen alle sauber durchließen und sie zweitens auch wieder sauber aubbauen (und somit ihren Speicher freigeben) konnten.

Vor jedem Test haben wir sowohl die MAC-Address-Table auf dem Switch, als auch die Session, ARP und NDP Caches auf den Firewalls gelöscht. Somit wurde jeder Test aufs Neue von Null auf durchgeführt.

3) NAT Szenarien: Hierbei wurde genau der gleiche Test wie unter 1) verwendet, mit dem einzigen Unterschied, dass die IPv4 Verbindungen vom Client- zum Servernetz mit einem Source-NAT auf den Firewalls versehen wurden. Ziel war es herauszufinden, ob dies eine Leistungsverringerung bei den Firewalls verursacht.

4) Realistischer Traffic: Per vordefiniertem „Datacenter Mix“ konnten wir mit wenigen Klicks den Ablauf von zwei HTTPS, SMB2, LDAP und AFS (über UDP und TCP) Verbindungen für mehrere Tausend Nutzer simulieren. Hierbei ging es nicht um einen vollen Lasttest der Firewalls, sondern um die Auf- und Abbaugeschwindigkeiten sowie die Applikationserkennungen. Je nachdem, ob die App-IDs der Firewalls aktiviert oder deaktiviert waren, gab es hier große Unterschiede.

5) 10 Minuten Dauerfeuer mit Commits: Dieser etwas speziellere Tests bestand aus den Szenarien 1 und 4, also volle Last (1) bei gleichzeitig konstantem Session Auf- und Abbau (4). Dies lief für 10 Minuten konstant durch, während wir weitere 500 Regeln auf die jeweilige Firewall installiert haben. Hierbei wollten wir herausfinden, ob dieser Prozess auf den Firewalls einen messbaren Knick in dem Durchsatz erzeugt, was teilweise auch der Fall war.

Testergebnisse

Am Ende eines jeden Tests zeigt der VulcanManager die „Statistics and Reporting“ Seite mit allen erdenklichen Details an. Per „Create Report“ lässt man sich ein PDF erstellen, was neben allen Details auch Informationen über das gewählte Testszenario sowie Angaben zu dem getesteten Gerät beinhält. Die Herausforderung besteht darin, die relevanten von den weniger relevanten Zahlen zu unterscheiden und sie in den richtigen Kontext zu stellen um letztendlich aussagekräftige Ergebnisse zu bekommen. Während unserer Vergleiche von verschiedenen Next-Generation Firewalls beschränkten wir uns beispielsweise rein auf den „Layer 1 steady throughput (bps)“ für den Durchsatz-Test, oder die „Successful TCP Connections“ für den Verbindungs-Test. Verglichen mit den Referenzwerten bei denen der VulcanBay mit sich selbst verbunden war, gab dies bereits sinnvoll vergleichbare Ergebnisse, die sich sowohl tabellarisch als auch grafisch einfach darstellen ließen.

Die Statistics and Reporting Seite gibt neben einem groben Überblick (Mitte) die Möglichkeit, Testwerte aus allen OSI-Schichten und der gewählten Testszenarios auszulesen (Links, aufklappbare Reiter).

Ausschnitt eines PDF Reports mit allen Details.

Die vielfältig vorhandenen „Application Mix“ Szenarien von Xena Networks dienen nicht dem direkten Vergleich von Firewall Performance Werten, sondern dem gezielten Generieren von Netzwerkverkehr. So können damit Applikationserkennungen überprüft werden oder andere parallel ausgeführte Szenarien etwas mehr „gestresst“ werden.

Weitere Features

Beachten Sie, dass der VulcanManager einige weitere interessante Funktionen hat, die wir in dieser Fallstudie nicht verwendet haben, wie TLS Traffic (zum Testen von TLS-Interception) und Packet Replay (zum Testen eigener und spezifischerer Szenarien, die aus hochgeladenen PCAPs extrahiert werden). Auch haben wir nicht viele anwendungs- oder protokollorientierte Testszenarien wie Dropbox, eBay, LinkedIn oder HTTPS, IMAP, NFS genutzt. Dies ist auf unsere Testzwecke zurückzuführen, die stark auf den reinen Durchsatz und Anzahl der Sessions fokussiert waren.

Fazit

Der VulcanBay von XENA Networks ist das ideale Testgerät für die Vergleiche diverser Next-Generation Firewalls. Innerhalb kürzester Zeit hatten wir diverse Testszenarien konfiguriert und getestet. Lediglich die Fülle an Testergebnissen war anfänglich überfordernd. Die Kunst bestand darin, sich gezielt auf die relevanten Informationen zu konzentrieren.

Thank you for your upload

Zum Inhalt springen