Ich verwende die jnca- Bibliothek, um von einem Router gesendete NetFlow-Datensätze zu sammeln. Die vom Router gesendete Version des NetFlow-Datensatzes ist Version 9.
Wenn das NetFlow-Paket vom Wireshark aus beobachtet wird, enthalten die Flusssätze mit der Vorlagen-ID 263 die Daten über Initiatoroktette und Responderoktette, mit denen die Anzahl der einem Fluss zugeordneten Bytes bestimmt werden kann.
Das Problem ist jedoch, dass diese Werte von der jcna nicht erhalten werden können. Für die Oktette wird immer Null angezeigt.
currOffset = t.getTypeOffset(FieldDefinition.InBYTES_32);
currLen = t.getTypeLen(FieldDefinition.InBYTES_32);
if (currOffset >= 0 && currLen > 0) {
dOctets = Util.to_number(buf, off + currOffset, currLen) * t.getSamplingRate();
}
Dies ist das Codesegment, mit dem die dOctets abgerufen werden. Dies gibt auch für die Vorlagen-ID 263 Null zurück.
Wenn es jedoch in Bezug auf die NetFlow-Vorlagen-ID 263 berechnet wird, liefert es die richtigen Daten. (gibt die Initiatoroktette an und um das Responder-Oktett 46 zu erhalten, sollte es durch 50 ersetzt werden, da die Länge des jeweiligen Datensatzes 4 Bytes beträgt)
dOctets = Util.to_number(buf, off + 46, 4)
In 46 befindet sich der Initiator Octets-Datensatz in diesem bestimmten NetFlow-Paket (unter Verwendung des Wireshark-Datensatzes).
Ist es ein Problem mit jnca? Hoffentlich kann mir jemand, der mit jcna vertraut ist, dabei helfen.
getTypeOffset
und zurückgegeben werdengetTypeLen
?Template.getTypeOffset()
scheinen relativ zum Flowset zu sein. Funktioniert das mit dem, was Sie tun? (Sie haben nicht genug Code gezeigt, um zu sagen; was istbuf
?)java.util.Properties
in Code, der ein Low-Level-Format analysiert? Nuke aus dem Orbit. Hatte Java zum Zeitpunkt des Schreibens dieser Bibliothek keine Generika?Antworten:
Abrufen von Netzwerknutzungsinformationen aus NetFlow Version 9-Datensätzen
Netflow ist eine Funktion, die auf Cisco-Routern eingeführt wurde und die Möglichkeit bietet, IP-Netzwerkverkehr beim Betreten oder Verlassen einer Schnittstelle zu erfassen. Durch die Analyse der von Netflow bereitgestellten Daten kann ein Netzwerkadministrator beispielsweise die Quelle und das Ziel des Datenverkehrs, die Serviceklasse und die Ursache der Überlastung ermitteln. Netflow besteht aus drei Komponenten: Flow Caching, Flow Collector und Data Analyzer. In Netflow leitet der Router Details zur Netzwerknutzung als UDP-Pakete an einen angegebenen Port eines Ziels weiter.
Java NetFlow Collect-Analyzer
Mehr Info
quelle