O registro do Netflow não pode obter octetos (jnca)

169

Estou usando a biblioteca jnca para coletar registros do NetFlow enviados por um roteador. A versão do registro NetFlow enviada pelo roteador é a versão 9.

Quando o pacote NetFlow é observado no Wireshark, os conjuntos de fluxos com o ID do modelo 263 contêm os dados sobre octetos iniciador e octeto respondedor, que podem ser usados ​​para determinar o número de bytes associados a um fluxo. registro wireshark

Mas o problema é que esses valores não podem ser obtidos pelo jcna. Mostra sempre zero para os 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 é o segmento de código usado para obter os dOctets. Isso retorna zero, mesmo para o ID do modelo 263.

Porém, quando é calculado com relação ao ID 263 do modelo do NetFlow, ele fornece os dados corretos. (fornece octetos do iniciador e, para obter o respondente, o octeto 46 deve ser substituído por 50, pois o comprimento do registro específico é de 4 bytes)

dOctets = Util.to_number(buf, off + 46, 4)

46 é onde o registro de iniciantes octetos está naquele pacote NetFlow específico. (Obtido usando o registro Wireshark.)

É um problema com o jnca? Felizmente, alguém familiarizado com o jcna pode me dar alguma ajuda nisso.

Asiri Liyana Arachchi
fonte
6
Este link pode ajudar: cdwijayarathna.blogspot.in/2014/03/…
Mandar Pandit
1
Você verificou quais valores são retornados do método getTypeOffsete getTypeLen?
Lukino 27/04
As compensações retornadas pelas JNCAs Template.getTypeOffset()parecem ser relativas ao fluxo. Isso funciona com o que você está fazendo? (Você não mostraram código suficiente para dizer, o que é buf?)
rakslice
1
As especificações reais do NetFlow V9 também podem ajudar: cisco.com/en/US/technologies/tk648/tk362/… : D
rakslice
Além disso, o código digitado java.util.Propertiesem sequência analisa um formato de baixo nível? Nuke da órbita. O Java não tinha genéricos no momento em que esta biblioteca foi escrita?
rakslice

Respostas:

1

Recuperando informações de uso de rede dos registros do NetFlow versão 9

O Netflow é um recurso que foi introduzido nos roteadores Cisco que permite coletar o tráfego de rede IP quando ele entra ou sai de uma interface. Ao analisar os dados fornecidos pelo Netflow, um administrador de rede pode determinar coisas como a origem e o destino do tráfego, a classe de serviço e a causa do congestionamento. O Netflow consiste em três componentes: cache de fluxo, Flow Collector e Data Analyzer. No Netflow, o roteador encaminha os detalhes do uso da rede como pacotes UDP para uma porta especificada de um destino.

Analisador de coleta Java NetFlow

Mais informações

Kondal
fonte
2
Só estou curioso por que você oferece uma recompensa?
Enzokie
2
@Enzokie Provavelmente precisava de um crachá de Altruísta;)
campovski