NetFlow ist ein Protokoll zum Sammeln, Aggregieren und Aufzeichnen von Verkehrsflussdaten in einem Netzwerk. NetFlow-Daten bieten einen detaillierteren Überblick über die Nutzung der Bandbreite und des Netzwerkverkehrs als andere Monitoring-Lösungen, wie z. B. SNMP.
NetFlow wurde von Cisco entwickelt und ist in die IOS-Software von Cisco auf den Routern und Switches des Unternehmens eingebettet und wird seit dem 11.1-Zug der Cisco IOS-Software von fast allen Cisco-Geräten unterstützt. Viele andere Hardware-Hersteller unterstützen entweder NetFlow oder verwenden alternative Flow-Technologien, wie jFlow oder sFlow.
Technisch gesehen gibt es zehn verschiedene Versionen von NetFlow. Mehrere Versionen wurden jedoch nur intern veröffentlicht oder wurden nie über spezifische Hardware hinaus verbreitet.
Die ursprüngliche NetFlow-Version 1 gilt als veraltet und wird heute nur noch selten verwendet. Die Versionen 2 bis 4 waren interne Versionen, eine öffentliche Implementierung wurde nie veröffentlicht.
Version 5 wird auch heute noch häufig verwendet, da es eine große Anzahl von Installationen von Cisco Routern und Switches gibt, die in der Zeit, in der sie die Standardversion war, veröffentlicht wurden. Sie fügte den NetFlow-Exporten Border Gateway Protocol-Informationen und Flow-Sequenznummern hinzu. Sie funktioniert nur mit IPv4-Flows.
Version 6 wird nicht mehr unterstützt und wurde nicht auf breiter Basis veröffentlicht. Version 7 fügte Unterstützung für Cisco Catalyst Switches hinzu, die den hybriden oder nativen Modus verwenden. Version 8 bietet Unterstützung für die routerbasierte NetFlow-Aggregation.
Version 9 ist die aktuelle Version und basiert auf Vorlagen. Als solche ermöglicht sie eine erweiterte Unterstützung, ohne dass eine Änderung des Flow-Record-Formats erforderlich ist. Diese Version wird von der IETF IP Information Export (IPFIX) WG und der IETF Pack Sampling WG (PSAMP) bevorzugt und funktioniert sowohl mit IPv4 als auch mit IPv6.
IPFIX wird oft als NetFlow v10 bezeichnet, weil es auf NetFlow v9 basiert, aber eigentlich ist es nicht NetFlow.
Fast alle Cisco-Geräte unterstützen NetFlow. Die einzige Ausnahme sind Cisco 2900, 3500, 3660, 3750. Darüber hinaus ist NetFlow für viele Router und Switches anderer Hersteller verfügbar.
Mit benutzerdefinierten Warnmeldungen und Datenvisualisierung können Sie Probleme mit dem Zustand und der Leistung Ihres Netzwerks schnell erkennen und vermeiden.
Ein Flow ist eine Möglichkeit, einen unidirektionalen Strom von Paketen in eine bestimmte Gruppe zu gruppieren. Diese Gruppen können auf der Grundlage übereinstimmender Attribute in jedem Paket konfiguriert werden, darunter:
Bei der Weiterleitung jedes Pakets werden die oben genannten Attribute geprüft. Durch das erste Paket, das den Standard-Switching-Pfad durchläuft, wird ein Fluss erzeugt. Jedes weitere Paket mit denselben Parametern (Quell- und Ziel-IP, Adresse, Quell- und Ziel-Port, Klasse des Dienstes) wird zu einem einzigen Flow gruppiert. Jede Änderung des Wertes eines der Parameter erzeugt einen neuen Fluss.
High-End-Router von Cisco unterstützen NetFlow in Form von Stichproben, bei denen nur eines von einer bestimmten Anzahl von Paketen untersucht wird. Dies ist für Router gedacht, bei denen die Untersuchung jedes Pakets aufgrund des Verkehrsaufkommens unpraktisch ist. Durch gesampelte Flows werden die Auswirkungen auf die Leistung beim Senden von Flow-Informationen erheblich reduziert.
Das Monitoring und die Gruppierung jedes von einem Router oder Switch weitergeleiteten Pakets generiert eine große Menge an Daten. Diese Daten werden in einer Datenbank innerhalb des Netzwerkgeräts, dem NetFlow Cache, verdichtet. Für jeden aktiven Datenfluss wird ein Datensatz gespeichert. Die Daten laufen ab und werden dann in regelmäßigen Abständen auf der Grundlage von Flow-Timern aus dem Cache an einen NetFlow-Kollektor-Server exportiert. Der NetFlow-Cache wird standardmäßig jede Sekunde überprüft.
Flows werden für den Export in einem NetFlow-Export-Datagramm gruppiert. Jedes Datagramm besteht aus bis zu 30 Flows. Nach Angaben von Cisco verbrauchen standardmäßige NetFlow-Exporte etwa 1,5 Prozent des gesamten analysierten Switch-Verkehrs.
Der Flow-Record der Version 9 basiert auf einer Vorlage. Das bedeutet, dass zukünftige Erweiterungen berücksichtigt werden können, ohne dass der grundlegende Flow-Record geändert werden muss. Das Datensatzformat wird durch einen Paketkopf definiert, gefolgt von mindestens einem Template FlowSet und einem Data FlowSet. Das Template-FlowSet enthält eine Beschreibung dessen, was in den Daten-FlowSets enthalten ist. Dadurch wird die Erweiterbarkeit des Datensatzes ermöglicht. Anstatt in einer Spezifikation im Voraus festzulegen, welche Daten wo ankommen, wird diese Definition im Paket selbst vorgenommen.
Der Paketkopf ist im Wesentlichen derselbe wie in Version 5. Er enthält u.a. die Versionsnummer des Pakets, die Betriebszeit des Systems (in Millisekunden), eine Sequenznummer und die Quell-ID.
NetFlow-Daten werden in regelmäßigen Abständen an einen NetFlow-Kollektor berichtet. Bei dem Kollektor handelt es sich um einen anderen Server oder Computer, auf dem eine NetFlow-Empfänger-Software läuft, die dazu dient, die resultierenden Flows zu sammeln, aufzuzeichnen, zu filtern und zu analysieren, wie z. B. der PRTG NetFlow Analyzer von Paessler. Die Collector-Software muss dieselbe NetFlow-Version unterstützen wie der exportierende Server. Um beispielsweise einen Cisco-Router zu überwachen, der NetFlow 5 nutzt, müsste man den NetFlow V5 Sensor in PRTG Network Monitor verwenden. Für einen Router, der NetFlow 9 verwendet, würde man den NetFlow V9 Sensor benötigen. Beide Sensoren können auf demselben Rechner gleichzeitig aktiviert werden, so dass ein einziger Kollektor Daten von beiden NetFlow-Versionen empfangen und darüber berichten kann.
NetFlow-Datagramme werden über das User Datagram Protocol (UDP) exportiert. Die IP-Adresse des Collectors und der Zielport müssen auf dem Router oder Switch selbst konfiguriert werden. In einigen Fällen kann SNMP verwendet werden, um NetFlow zu aktivieren und die IP-Adresse des Collectors zu konfigurieren, an den die Daten gesendet werden sollen.
In Cisco IOS kann der Befehl ip flow-export verwendet werden, um die Ziel-IP über die Befehlszeile zu konfigurieren.
Einer der beliebtesten Ports für NetFlow-Exporte ist 2055, aber im Grunde können Sie jeden Port verwenden, solange Sie ihn im NetFlow-Empfänger korrekt angeben. Da NetFlow-Exporte an den Collector gepusht werden, ist kein Polling erforderlich, aber es gibt auch keine automatische Suche für NetFlow wie bei SNMP.
Es ist möglich, auf einige NetFlow-Daten über SNMP zuzugreifen, indem man die NetFlow MIB verwendet. Obwohl sie nicht als Ersatz für den NetFlow-Export gedacht ist, bietet sie eine Möglichkeit, über einen anderen Mechanismus auf NetFlow-Daten zuzugreifen. Zu den verfügbaren Daten gehören die Anzahl der Flows, Flows pro Sekunde und Pakete oder Bytes pro Flow. Die Möglichkeit, auf eine Liste der "Top Talker" zuzugreifen, könnte in bestimmten Fällen ebenfalls nützlich sein, aber diese Daten erhalten Sie ohnehin, wenn Sie Flows empfangen und überwachen.
Es gibt viele Verkehrskategorien, die mit NetFlow überwacht werden können. Der NetFlow V9 Sensor für PRTG zum Beispiel ermöglicht standardmäßig das Monitoring und die Kategorisierung zahlreicher Verkehrsarten,
Benachrichtigungen in Echtzeit bedeuten eine schnellere Fehlerbehebung, so dass Sie handeln können, bevor ernstere Probleme auftreten.
Im Folgenden wird der NetFlow-Befehl Top Talkers gezeigt, der die größten Paket- und Byte-Verbraucher des Netzwerks auflistet. Bevor der Top Talkers-Befehl verwendet werden kann, muss er konfiguriert werden:
Router(config)#ip flow-top-talkers
Router(config-flow-top-talkers)#top 10#
Die Top 10 Talker im Netzwerk sortiert nach Paketen:
R3#show ip flow top-talkers
SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts
Et1/0 172.16.10.2 Et0/0 172.16.1.84 06 0087 0087 2100
Et1/0 172.16.10.2 Et0/0 172.16.1.85 06 0089 0089 1892
Et1/0 172.16.10.2 Et0/0 172.16.1.86 06 0185 0185 1762
Et1/0 172.16.10.2 Et0/0 172.16.1.86 06 00B3 00B3 2
Et1/0 172.16.10.2 Et0/0 172.16.1.84 06 0050 0050 1
Et1/0 172.16.10.2 Et0/0 172.16.1.85 06 0050 0050 1
7 of 10 top talkers shown. 7 flows processed.
Die offensichtlichste Anwendung für NetFlow ist das Monitoring von Netzwerken. NetFlow-Daten liefern detaillierte Informationen über die Nutzung der Bandbreite, die auf zahlreiche Arten segmentiert werden können, z. B. nach Benutzer, Client-System, Zeit und Anwendung. Die am NetFlow-Kollektor eintreffenden Daten werden nahezu in Echtzeit erfasst, was ein spezifisches, granulares Monitoring und die Aggregation von Daten ermöglicht, um einen Überblick über das Gesamtgeschehen zu erhalten, während es geschieht.
Das Monitoring von Datenverkehrsmustern, Benutzermustern und Anwendungsmustern kann einen Administrator auf potenzielle Probleme aufmerksam machen, bevor diese auftreten, und eine wertvolle Ressource zur Fehlerbehebung darstellen. Ein einzelner Computer oder Dienst, der eine ausreichend große Bandbreite nutzt, kann die Netzwerkleistung für andere Benutzer beeinträchtigen. Ein Administrator, der eine umfassende Benutzeroberfläche oder ein Dashboard beobachtet, kann dieses Ergebnis möglicherweise erkennen, bevor es eintritt, oder es kann eine Warnung erzeugt werden, um den Netzwerkadministrator über ungewöhnliche Muster zu informieren.
Die Übersicht der PRTG NetFlow V9 Sensoren zeigt zum Beispiel die Top Talkers, Top Connections, Top Protocols sowie eine Aufschlüsselung nach Protokollen, die auf einen Blick erkennen lässt, ob ein Server oder eine Anwendung zu viel (oder zu wenig) Bandbreite verbraucht.
Die Fähigkeit, veränderte Netzwerkbedingungen zu erkennen und darauf zu reagieren, ist eine wertvolle Fähigkeit. Noch besser ist die Fähigkeit, vorauszusehen, was auf uns zukommt, und proaktiv auf Probleme zu reagieren.
Die Erfassung von NetFlow-Daten über längere Zeiträume und die Analyse der in den Daten gefundenen Trends bietet die Möglichkeit, im Voraus zu wissen, was das Netzwerk benötigt. Vielleicht erzeugen verschiedene Anwendungen, die am Ende des Monats laufen, zusätzlichen Datenverkehr, der die Netzwerkleistung beeinträchtigt. In diesem Fall könnten andere Aktivitäten mit hoher Bandbreite für andere Zeiten des Monats geplant werden, um Engpässe zu vermeiden.
Darüber hinaus kann mit Hilfe von NetFlow-Daten festgestellt werden, wann das Verkehrswachstum für die aktuelle Hardware zu groß wird, so dass genügend Vorlaufzeit für den Kauf, die Installation und die Konfiguration zusätzlicher oder schnellerer Router und Switches zur Verfügung steht.
Dank der Fähigkeit, bestimmte Verkehrsströme zu identifizieren (einschließlich der Frage, woher sie stammen und welche Anwendungen sie ausgelöst haben), können NetFlow-Daten analysiert werden, um die Abrechnung mit Kunden zu ermöglichen, interne Kosten zurückzurechnen oder zu zeigen, wie viel des Netzwerks von bestimmten Benutzern, Gruppen oder Anwendungen genutzt wird. Mit einer solch detaillierten Datenerfassung ist es einfach, die Abrechnungssätze auf der Grundlage der Tageszeit oder der Nutzung von Anwendungen oder der gesamten Bandbreite anzupassen.
NetFlow-Daten können nicht nur zeigen, wie viel Datenverkehr eine Anwendung erzeugt, sondern auch wann und für wen. NetFlow kann feststellen, ob die Anwendung für die buchhalterische Gruppe optimiert ist, aber viel Datenverkehr für eine andere Abteilung erzeugt.
NetFlow kann auch bei der Netzwerksicherheit helfen. Erzeugt ein Benutzer plötzlich große Mengen an Datenverkehr, der normalerweise nicht für seine Arbeit erforderlich ist? Wurde das Konto vielleicht kompromittiert? NetFlow-Daten zeigen schnell Anomalien im Netzwerkverkehr auf, ob es sich nun um einen Wurm handelt, der sich zu verbreiten versucht, um Malware, die versucht, einen Kontrollserver zu kontaktieren, oder um einen verärgerten Mitarbeiter, der sensible Unternehmensdaten kopiert.
PRTG ist eine umfassende Monitoring-Software für Netzwerke und überwacht Ihre gesamte IT-Infrastruktur.
Obwohl der von NetFlow erzeugte Datenverkehr insgesamt relativ gering ist, ist es wichtig, die NetFlow-Kollektoren strategisch zu platzieren, um zu vermeiden, dass Daten über teure Verbindungen oder über solche gesendet werden, die nicht in der Lage sind, zusätzlichen Verkehr zu verarbeiten. In den meisten Umgebungen funktioniert die lokale Sammlung am besten.