Estoy usando la biblioteca jnca para recopilar registros de NetFlow enviados por un enrutador. La versión del registro de NetFlow enviada por el enrutador es la versión 9.
Cuando se observa el paquete NetFlow desde Wireshark, los conjuntos de flujo con el id. De plantilla 263 contienen los datos sobre los octetos iniciadores y los octetos respondedores que pueden usarse para determinar el número de bytes asociados con un flujo.
Pero el problema es que estos valores no pueden ser obtenidos por el jcna. Muestra siempre cero para los octetos.
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();
}
Este es el segmento de código que se utiliza para obtener los dOctetos. Esto devuelve cero incluso para la ID de plantilla 263.
Pero cuando se calcula con respecto a la plantilla de NetFlow id 263, proporciona los datos correctos. (proporciona los octetos del iniciador y para obtener el octeto del respondedor 46 debe reemplazarse por 50 ya que la longitud del registro particular es de 4 bytes)
dOctets = Util.to_number(buf, off + 46, 4)
46 es donde se encuentra el registro de iniciadores de octetos en ese paquete particular de NetFlow (se obtuvo el registro de Wireshark).
¿Es un problema con jnca? Con suerte, alguien que esté familiarizado con jcna puede ayudarme en esto.
getTypeOffset
ygetTypeLen
?Template.getTypeOffset()
parecen ser relativas al conjunto de flujo. ¿Funciona esto con lo que estás haciendo? (Usted no se presentó código suficiente para decir: ¿qué esbuf
?)java.util.Properties
en forma de código en un análisis de bajo nivel? Nuke desde la órbita. ¿Java no tenía genéricos en el momento en que se escribió esta biblioteca?Respuestas:
Recuperación de información de uso de red de registros de NetFlow Versión 9
Netflow es una característica que se introdujo en los enrutadores Cisco que brinda la capacidad de recopilar tráfico de red IP cuando entra o sale de una interfaz. Al analizar los datos que proporciona Netflow, un administrador de red puede determinar cosas como el origen y el destino del tráfico, la clase de servicio y la causa de la congestión. Netflow consta de tres componentes: almacenamiento en caché de flujo, Flow Collector y Data Analyzer. En Netflow, el enrutador reenvía los detalles del uso de la red como paquetes UDP a un puerto específico de un destino.
Analizador de Java NetFlow Collect
Más información
fuente