NetFlow

Auf verschiedenen Seiten habe ich etwas zu Netzwerkmonitoring, Bandbreitenüberwachung etc. geschrieben und diese Seite widmet sich den Routern und Switches als Helfer einer Netzwerküberwachung. Wer bislang seine Ports am Router und Switch per SNMP abfragt, kann in der Regel nur die Anzahl der Pakete In/Out und die übertragenen Bytes In/Out erfassen aber nicht, welche Protokolle oder Clients diese Last verursachen. Programme wie NTOP schneiden dazu auf dem PC alle Pakete mit und kategorisieren diese. Das sieht nett aus aber damit wird nur der Traffic analysiert, der diesen PC erreicht. NetFlow, cFlow (Juniper), NetStream (Huawei) und sFlow sind Optionen um diesen Mitschnitt auf dem Router oder Switch zu erreichen und die ermittelten Daten meist per UDP an einen Sensor zu senden.

NetFlow Sender

Zuerst sollten Sie prüfen, ob ihr Switch, Router, Firewall, Server überhaupt NetFlow-Daten senden kann. Die meisten besseren Devices können dies aber. Allerdings unterscheidet sich die Konfiguration natürlich je nach Hersteller.

Es muss aber nicht immer "Netzwerkgerät" sein. Es gibt entsprechende Agenten auch für verschiedene Betriebssysteme: Hier nur eine Auswahl:

In der Regel müssen Sie auf dem Gerät erst NetFlow generell aktivieren, dann Ziel-IP-Adresse samt UDP-Port hinterlegen und diese an das Interface binden. Nun sammelt das Gerät Verbindungsdaten von IP-Verbindungen und gibt diese kontinuierlich per UDP an den konfigurierten Empfänger weiter.

NetFlow auf dem LAN

Die Daten sind mit WireShark bzw. NetMon auf dem LAN recht einfach zu analysieren. Am besten filtert man auf die SourceIP des Switches oder den Ziel-UDP-Port, um vorab nur diese Pakete zu erhalten

In NetMon konnte ich die Daten bislang nicht analysieren aber WireShark man damit gut umgehen. Allerdings konnte er bei mir auch nicht automatisch das Format erkennen. Ich musste in der Ansicht ein "Decode as..." CFlow auswählen:

Es gibt auch sFlow als Option, wenn ihr Router statt dessen dieses Format verwendet. Im UDP-Auszug auf die "Flows" mit den Inhalten sehen. Hier wurde der Flow 2 im Detail manuell in das Bild einkopiert:

Dies Daten fliegen nun dem Zielsystem per UDP entgegen. Es ist dem Absender dabei egal, ob das Zielsystem diese Daten auch annimmt und verarbeiten kann.

NetFlow Empfänger für Auswertungen

Welchen Empfänger Sie einsetzen bleibt letztlich ihnen überlassen. Es gibt sehr viele kommerzielle aber auch kostenfreie Lösungen. Einige laufen als Dienst im Hintergrund und legen die Ergebnisse konsolidiert in einer Datenbank für spätere Auswertungen und Abrechnungen ab. Andere sind nur interaktive Programme, die ihnen den aktuellen Stand anzeigen. Auch Monitoring-Lösungen sind hier mit im Rennen, die solche Daten zur Qualitätssicherung nutzen und ggfls. bei Überlastsituationen auch Alarm schlagen können. Eine Empfehlung für ein Produkt kann ich hier nicht geben, da ich sicher keinen Marktüberblick über die Produkte habe.

Da ich aber oft mit PRTG arbeite, und PRTG auch einen Sensor zum Empfang von sFlow und netFlow-Meldungen hat, bietet es sich natürlich an, diesen hierzu einzusetzen, um ihnen eine mögliche Auswertung zu zeigen. Hier eine Verteilung über 2 Stunden. Sie sehen gut den hohen Anteil an WWW-Verkehr.

Unten gibt es eine Tabelle, die die Zahlen noch genauer aufführt und über die historischen Daten können Sie natürlich noch mehr Informationen erhalten. Interessant ist aber auch die Auflistung der Partnerschaften, die auf der Übersicht für die letzten Minuten zu sehen ist

Ich gehe hier nicht tiefer in die Details, denn es ist natürlich möglich, auch die einzelnen Partnerschaften noch genauer zu analysieren.

Es gibt einen gemeinsamen Basis-Standard aber teilweise liefern die Endgeräte sogar noch weitergehende Informationen mit. Interessant ist es hier dann, dass der Empfänger entsprechend konfiguriert werden kann, um diese zusätzlichen Informationen zu extrahieren,. Gerade "Next Generation Firewalls" sind hier sehr leistungsfähig und ich habe u.a. schon gesehen, dass hier URLs und authentifizierte Benutzer mit geliefert werden.

Praktischer Einsatz für Exchange und Lync Administratoren

Interessant wäre es ja nun, wenn ein Windows Server auch eine "NetFlow-Probe" wäre und alle Verbindungen zu diesem System an einen Empfänger senden könnte. So wäre es z.B.: möglich die Netzwerkverwendung eines Lync Konferenz-Servers zu überwachen. Aber auch für Exchange Server kann so eine Überwachung interessant sein, z.B.: um zu sehen, von wem ein alter Server, der bald abgeschaltet wird, noch genutzt wird. Oft gibt es immer ein paar Drucker, Skripte o.ä., die bislang unerkannt per SMTP Meldungen an Exchange einliefern.

Leider habe ich noch keinen NetFlow-Agent oder sFlow-Service gefunden, der direkt auf einem Windows Server installiert werden kann, um solche Verbindungsdiagramme zu erstellen. Allerdings können Sie natürlich immer eine PRTG-Remote Probe installieren, die selbst auch per "Capture" die Verbindungen mitschneiden kann.

Ein Vorteil ist natürlich, wenn Sie einen Switch habe, der NetFlow-Statistiken auf dem Ethernet-Port sammeln kann. Hier kann ihnen nur die Virtualisierung einen Strich durch die Rechnung machen, da hier der interne "virtuelle Switch" diese Daten generieren müsste.

NetFlow kann aber durchaus noch mehr. So kann ein Cisco Router z.B. auch die "Drop-Raten" pro Interface melden., Sie benötigen einfach nur eine passende Software um diese Daten auszuwerten. Leider habe ich keinen Cisco Router mit passender Software, so dass ich exemplarisch auf ein paar Webseiten und Youtube Videos verweise, ohne dass Sie dies als Empfehlung werden sollten

Und andere...

sFlow

NetFlow ist meist nur auf Netzwerk-Devides verfügbar und wurde von Cisco eingeführt. Daneben gibt es noch andere sehr ähnliche Protokolle. PRTG nennt das dann "xFlow" und sammelt darunter NetFlow, sFlow, jFlow, und IPFIX (PRTG 13.x.7 Sensors). Leider liefert Windows selbst keine entsprechendes Modul mit, aber es gibt verschiedene Programme, die ergänzend installiert werden können.

Ob ein Router, Firewall, Switch auch Daten sendet, bekommen Sie einfach mit einem Netzwerkmitschnitt mit. Dort können Sie erst einem Capture-Filter auf den UDP-Port 4739 machen:

Sie sollten aber schon einige Zeit lang mitschneiden, denn über diesen Port kommen per UDP nicht nur die Flow-Daten sondern ab und an sendet ein Geräte auch ein "Template" mit, damit die auswertende Einheit das Format in den Daten auch versteht. WireShark erkennt diese "Template Message" und zeigt dann die Flow-Daten schöner an. Hier mal am Beispiel eines SFLOW-Pakets einer Astaro UTM:

Der Inhalt und Aufbau anderer Sender kann davon abweichen.

Als Open Source macht sFlow einen interessanten Eindruck, da es für sehr viele Plattformen verfügbar ist und sich sogar per DNS-SD (über ARV-Records) konfigurieren lässt. Ein deutlicher Hinweis auf die Planung als "Enterprise"-Werkzeug.

Aber auch ohne diese Einträge können Sie beim Setup schon den "Collector:Port" eingeben:

Die Konfiguration wird in der Registrierung unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\hsflowd abgelegt und kann so auch einfach per Gruppenrichtlinie oder Skript angepasst werden.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\hsflowd\currentconfig]
"samplingRate"=dword:00000100
"pollingInterval"=dword:00000014
"serialNumber"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\hsflowd\currentconfig\collectors\collector1]
"collector"="sflowserver"
"port"=dword:000018c7

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\hsflowd\Parameters]
"collector"="sflowserver:6343"
"port"=dword:6343
"pollingInterval"=dword:00000014
"samplingRate"=dword:00000100
"DNSSD"="off"

Es handelt sich dabei zwar nicht um "NetFlow" Pakete sondern um sFlow, was nur Stichproben liefert. für die Fehlersuche können sie das Programm HSFLOWD.EXE auch interaktiv mit dem Parameter "-v" starten. Während der Arbeit als Dienst legt es ein Logfile in "%SystemDrive%\ProgramData\Host sFlow Project\Host sFlow Agent\hsflowd.log" an.

Leider habe ich diesen Agent noch nicht dazu bringen können, mit dem SFlow-Sensor von PRTG zusammen zu arbeiten.

Weitere Links