J'utilise jnca bibliothèque pour recueillir des enregistrements NetFlow envoyés par un routeur. La version de l'enregistrement NetFlow envoyé par le routeur est la version 9.
Lorsque le paquet NetFlow est observé à partir du Wireshark, les ensembles de flux avec l'ID de modèle 263 contiennent les données sur les octets d'initiateur et les octets de répondeur qui peuvent être utilisées pour déterminer le nombre d'octets associés à un flux.
Mais le problème est que ces valeurs ne peuvent pas être obtenues par le jcna. Il montre toujours zéro pour les octets.
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();
}
C'est le segment de code qui est utilisé pour obtenir les dOctets. Cela renvoie zéro même pour l'ID de modèle 263.
Mais quand il est calculé par rapport à l'ID de modèle NetFlow 263, il donne les données correctes. (donne les octets d'initiateur et pour obtenir l'octet de répondeur 46 doit être remplacé par 50 car la longueur de l'enregistrement particulier est de 4 octets)
dOctets = Util.to_number(buf, off + 46, 4)
46 est l'emplacement de l'enregistrement des octets d'initiateur dans ce paquet NetFlow particulier (obtenu à l'aide de l'enregistrement Wireshark).
Est-ce un problème avec jnca? J'espère que quelqu'un qui connaît jcna pourra m'aider à ce sujet.
getTypeOffset
et getTypeLen
?
Template.getTypeOffset()
semblent être relatifs au flux. Cela fonctionne-t-il avec ce que vous faites? (Vous n'avez pas montré assez de code pour le dire; qu'est-ce que c'est buf
?)
java.util.Properties
dans un format de bas niveau? Nuke depuis l'orbite. Java n'avait-il pas de génériques au moment où cette bibliothèque a été écrite?