Netflow-Datensatz kann keine Oktette erhalten (jnca)


169

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. Wireshark-Rekord

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.



1
Haben Sie überprüft, welche Werte von method getTypeOffsetund zurückgegeben werden getTypeLen?
Lukino

Die von JNCAs zurückgegebenen Offsets 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 ist buf?)
Rakslice

1
Die aktuelle NetFlow V9-Spezifikation könnte ebenfalls hilfreich sein: cisco.com/de/US/technologies/tk648/tk362/… : D
rakslice

Auch string-typisiert java.util.Propertiesin Code, der ein Low-Level-Format analysiert? Nuke aus dem Orbit. Hatte Java zum Zeitpunkt des Schreibens dieser Bibliothek keine Generika?
Rakslice

Antworten:


1

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


2
Ich bin nur neugierig, warum Sie ein Kopfgeld anbieten?
Enzokie

2
@ Enzokie brauchte wahrscheinlich ein altruistisches Abzeichen;)
Campovski
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.