# Netflow

Netflow ist eine Technik, bei der ein Gerät, in der Regel ein Router oder Layer-3-Switch, Informationen über den IP-Datenstrom innerhalb des Geräts per UDP exportiert. Diese UDP-Datagramme werden von einem Netflow-Kollektor empfangen, gespeichert und verarbeitet. Die anfallenden Daten werden zur Verkehrsanalyse, zur Dimensionierung oder zur QoS-Analyse verwendet.

## Technik

Netflow war ursprünglich eine Cisco-Technik, wird jetzt jedoch von vielen Herstellern unterstützt. Neben Netflow gibt es auch noch jFlow (Juniper) und Netstream (Huawei). Beide sind technisch identisch mit Netflow. Es existieren verschiedene Versionen von Netflow. Netflow Version 9 ist als offener Standard in der RFC 3954 beschrieben. Netflow Version 5 ist die in der Praxis am häufigsten verwendete Version. sFlow (RFC 3176) verwendet statistisches Sampling und ist inkompatibel zu Netflow. Es existieren jedoch Konverter. Der IPFIX Standard (RFC 3917) wird herstellerunabhängig entwickelt und stellt eine Erweiterung von Netflow Version 9 dar.
Ein Flow enthält typischerweise folgende Informationen:
* Versionsnummer und Sequenznummer
* Zeitstempel
* Byte- und Paketzähler
* Quell- und Ziel-IP-Adressen
* Quell- und Ziel-IP-Ports
* Ingress- und Egress-Port-Nummern
* TOS-Informationen
* AS-Nummern (BGP 4)
* TCP-Flags
* Protokoll-Typ (z. B. TCP, UDP oder ICMP)
Je nach Netflow-Version unterscheidet sich der Inhalt der Exportdatagramme leicht. Detaillierte Informationen können auf der Cisco-Seite gefunden werden.

## Anwendung

Netflow ist, wie SNMP, ein passives Messverfahren, d. h. man beobachtet den Verkehr, ohne diesen zu beeinflussen. Wie alle passiven Messverfahren erzeugt auch Netflow Volumen-Informationen, typischerweise kBit/s.
Um die Netflow-Daten analysieren zu können, ist eine Kollektor-Software notwendig. Es werden in der Regel zwei Arten von Analysen durchgeführt:
* Top-N-Analysen
* Zeitanalysen
Bei Top-N-Analysen werden in einem frei definierbaren Zeitraum, z. B. 24 Stunden, diejenigen Elemente gesucht, die den meisten Verkehr erzeugen. Kriterien können Sender-IP-Adressen (Top Talker), TCP-Ports (Top Applications) oder andere Einträge aus dem Netflow-Datagramm sein. In einigen Systemen wird diese Top-N-Analyse über SQL-Queries mittels "Group-By" zur Laufzeit erzeugt, oder es werden spezielle Analyse-Datenbestände bereitgehalten. Diese speziellen Datenbestände werden durch den Kollektor zur Laufzeit aktuell gehalten. Hierbei hat man den Vorteil, dass das Reporting-Frontend schnell auf fertige Datenbestände zugreifen kann, auf der anderen Seite wächst der Bedarf an Storage.
Zeitanalysen zeigen das Volumen von Verkehrskomponenten über einer Zeitachse.
Da die Netflow-Datagramme per UDP übertragen werden, muss der Kollektor schnell genug sein, die Daten zu empfangen, zu verarbeiten und zu speichern. Verlorene Datagramme können nicht wiederhergestellt werden. Besonders problematisch ist deshalb die Übertragung von Netflow-Daten über WAN-Strecken. Verteilte Systeme haben sich hier besonders gut bewährt. Einige Systeme sind in der Lage, Auswertungen in einem zentralen Data-Mart vorzuhalten. Das hat den Vorteil, dass Daten nicht wiederholt und mehrfach über WAN Strecken übertragen werden müssen.
Technisch verwenden die Hersteller meist eine erste Datenbank als "Raw-Data" in der die Netflow-Datagramme in Rohform gesichert werden. Erst ein nachfolgender Prozess normalisiert die Daten und speichert das Ergebnis in einer Datenbank, - meist einer relationalen Datenbank, auf die dann das Reporting-Frontend zugreift. Da die Daten hierbei einmal als Rohdaten und dann ein zweites Mal in einer normalisierten Form gespeichert werden, sind die Transferleistungen der Storagesysteme eine der wichtigsten und limitierenden Kenngrößen. Meist wird das Storage lokal als Hardware-Raid ausgebaut. Eine Implementierung über ein Software-Raid kann zu Leistungseinbußen führen.
Im Umfeld von Internetdienstanbietern ist die Mandantenfähigkeit eine wichtige Eigenschaft von Netflow-Systemen. Diese stellt sicher, dass Teilnehmer nur die für sie jeweils relevanten Daten einsehen können. Kunden haben hierbei dann nur Zugriff auf die Flows der eigenen Interfaces und nicht auf alle Interfaces des Flow-Senders.

## Freie Software

* flowd NetFlow collector
* Nagios
* NetWork analysis software
* nfdump, Kollector und Analyse Werkzeuge und nfsen, Webfrontend zu nfdump
* PMACCT Netflow, sFlow Collector. Verwendet libpcap
* Pandora FMS
Bei beiden besteht die Möglichkeit zum Kauf eines Lizenzschlüssels.

## Kommerzielle Software

Produkteigenschaften :
| Produkt | Netflow | cFlow | jFlow | Netstream | sFlow | IPFIX | Verteilt | Mandantenfähig | Zentraler Data-Mart | Cluster oder Hierarchy | weitere-FlowVersionen | Max-Flow/Minute | Alarme based on Flows |
| AdvaICT NetHound (online service) | ja | nein | nein | nein | nein | nein | nein | ja | ja | | | | |
| Caligare Flow Inspector | ja | ja | ja | ja | nein | nein | ja | ja | ja | | | | |
| Cisco | ja | ja | ja | ja | nein | nein | nein | nein | nein | | | | |
| IBM Aurora | ja | ja | ja | ja | ja | ja | ja | nein | nein | | | | |
| Infosim StableNet | ja | nein | nein | nein | nein | nein | nein | nein | nein | | | | |
| INVEA-TECH FlowMon | ja | ja | ja | ja | ja | ja | ja | ja | ja | | | | |
| IsarFlow | ja | ja | ja | ja | ja | ja | ja | ja | ja | Hierarchie | | | |
| IS-IT-ON NetFlow Analyzer | ja | nein | nein | nein | nein | nein | ja | ja | ja | | | | |
| ManageEngine NetFlow Analyzer | ja | ja | ja | ja | ja | ja | ja | ja | ja | | | | |
| Paessler PRTG | ja | nein | ja | nein | ja | ja | ja | ja | ja | | | | |
| Progress WhatsUp Gold (ehem. IPSwitch) | ja | ja | ja | ja | ja | ja | ja | ja | ja | | | | |
| Riverbed Network Performance | ja | ja | ja | ja | ja | ja | ja | ja bezogen auf Dashboards | ja | Clusterfähig | NAM, NBAR, NBAR2, Cisco MediaNet, Cisco ASA NSEL, Citrix AppFlow, Packeteer FDR, Palo Alto Networks, and SteelFlow from SteelHead appliances | 10 M deduplizierte Flows /min (Clusterfähig) | ja |
| SolarWinds Orion NetFlow Traffic Analyzer | ja | nein | ja | nein | ja | ja | ja | ja | ja | | | |
| SevOne Dedicated Netflow Collector (DNC) (auch Bestandteil von PAS) | ja | ja | ja | ja | ja | ja | ja | ja | ja | Cluster | SFLow, Cisco-NAM, -NBAR, -Medianet, dFlow, jFlow, NSEL, jedes Flowfeld kann als Key oder Metric registriert werden | 12M Flows/min auf DNC1000HFC, Clusterfähig | ja |
| IPHost Monitor Networks Monitoring Software | ja | ja | ja | nein | ja | nein | ja | ja | ja | Hierarchie | Cisco-NAM/NBAR | | |
| THB-Netflow | ja | nein | nein | nein | nein | ja | ja | ja | ja | Cluster | Cisco-AVC, -NBAR, Medianet, Barracuda, jedes Flowfeld kann dynamisch konfiguriert werden | | via Grafana |