Flow Sampling ist essentiell beispielsweise zur Anaylse von Störungen oder Abrechnen von volumenbasierten Datenverkehr.
In diesem Beitrag definieren wir Flow Sampling und welche Vorteile, aber auch Nachteile mit unterschiedlichen Ansätzen und Methoden verknüpft sind.
Definition Flow
Ein Flow definiert einen gleichbleibenden IP-Datensatz aus Quell- und Zieladresse mit dazugehörigen Portnummern. Jedes von einem Netzwerkgerät weitergeleite Paket beschreibt einen Flow, wobei gleichbleibende Datensätze zu einem „Flow-Stream“ in der FlowTable zusammengefasst werden.
Diese Flows können unabhängig vom eigentlichen Datenverkehr zur weiteren Analyse exportiert werden.
Über den Parameter „Sampling“ kann definiert werden, wie viele Pakete gesampelt also exportiert werden. In der Regel wird dieser Parameter über eine Definition wie „exportiere jedes 1024te Paket“ gesetzt.
Dieser Samplewert ist für die weitere statistische Auswertung von entscheidender Bedeutung!
Unterscheidung Full-Packet Sampling von Packet Header Sampling
Für das oben genannte Flow Sampling gibt es von verschiedenen Herstellern unterschiedliche Ansätze. Man unterscheidet hier zwischen „Full-Packet Sampling“ und „Packet Header Sampling“. Im Unterschied zum Packet Header, der wie der Name schon verrät, nur den Packet Header aber keine Nutzdaten (Payload) enthält, wird beim Full-Packet Sampling das gesamte Paket einmal kopiert und exportiert.
Hier erkennt man bereits wie wichtig es ist, den Wert für Packet-Sampling >1 zu setzen, denn sonst würde der gesamte Datenverkehr einmal dupliziert und damit die vorhandenen Bandbreiten entsprechend belasten werden. Historisch gesehen ist das Full-Packet Sampling der ältere der beiden Ansätze.
Frühere Systeme benötigten einen wesentlichen größeren Teil des Packet Headers zur Entscheidungsfindung zum weiterleiten der Pakete. Der effizientere und ressourcen-schonende Weg ist es, nur die Packet Header zu exportieren.
Da Cisco als weltweit größter Hersteller von Netzwerkkomponenten lange am Full-Packet Sampling festhielt, gibt es für das von Cisco verwendete Netflow Protokoll wesentlich mehr Tools zur Erfassung und Analyse als das mittlerweile per RFC definierte Sflow welches nur Packet Header exportiert.
Vor und Nachteile des Full-Packet-Sampling
Wie bereits beschrieben, enthält ein Full-Packet Sample wesentlich mehr Daten als Header-Samples. Dies kann sowohl vor- als auch nachteilig sein.
Als nachteilig werden insbesondere folgende Stichpunkte genannt:
- Ressourcen-Last des exportierenden Geräts
- Paketgrößen
- Analyse
Selbstverständlich ist am Full-Packet Sampling nicht alles nur schlecht, ein wesentlicher positiver Aspekt ist vor allem die Detailgenauigkeit. Denn dass das gesamte Datenpaket inkl. Nutzdaten wird exportiert. Dieser Punkt beinhaltet jedoch wichtige Datenschutzrechtliche Gesichtspunkte.
Sflow als neuer Standard
Neben fehlenden Spezifikationen und Dokumentationen zu Netflow waren die beim Full-Packet Sample genannten Nachteile dafür Anlass, nach einer freien und von anderen Herstellern implementierbaren Lösung zu suchen. Hieraus entstand Sflow. Sflow kehrt die bei Netflow genannten Nachteile in Vorteile um.
Flow Sampling zur Anaylse
Wieso sollte man den ganzen Aufwand betreiben und die im Netzwerk kursierenden Pakete analysieren? Wichtig ist doch, dass die Daten ankommen? Richtig, aber wehe wenn nicht. Dann bedarf es einer Fehleranalyse weshalb das der Fall ist. Dabei kann Flow Sampling ebenso helfen wie beim Aufdecken von Störungen durch Denial-of-Service Angriffe oder beim Abrechnen von volumenbasiertem Datenverkehr.
Einsatzgebiete Flow Sampling bei der ADACOR Hosting
Zur Zeit setzen wir das Flow Sampling ausschließlich zur Traffic Abrechnung ein. Hierfür verwenden wir eine Kombination aus Tools für Netflow und Sflow. Die Sflow-Tools nehmen die Daten unserer Netzwerkgeräte entgegen und wandeln diese wiederum in Netflow Daten um. Dies ist notwendig da die Auswahl an vorhandener Software für Netflow wesentlich grösser ist und zudem unsere Anforderungen besser erfüllt.
Vereinfacht dargestellt ist der Ablauf wie folgt:
Netzwerkgeräte -> Sflow Collector Host -> Umwandlung in Netflow -> Netflow collector auf demselben Host -> Ablage der Daten -> Analyse/Summierung dieser Daten -> Abrechnung
Weitere Verwendungszwecke liegen auf der Hand. So planen wir zukünftig die gesammelten Daten bereits in Echtzeit zu analysieren, um daraus Reports und Alarmierungen zu generieren. Dies dient dem Zweck, unser Netzwerk noch besser gegen bestimmte Angriffs-Szenarien zu schützen.
Die dafür zur Anwendung kommenden Techniken werden wir in separaten Artikeln beschreiben.