Запис Netflow не може отримати октети (jnca)


169

Я використовую бібліотеку jnca для збору записів NetFlow, що надсилаються маршрутизатором. Версія запису NetFlow, що надсилається маршрутизатором, - це версія 9.

Коли з Wireshark спостерігається пакет NetFlow, набори потоків з ідентифікатором шаблону 263 містять дані про октети ініціатора і відповідні октети, які можуть бути використані для визначення кількості байтів, пов'язаних з потоком. запис проводів

Але проблема полягає в тому, що ці значення не можуть бути отримані jcna. Він завжди показує нуль для октетів.

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();
}

Це сегмент коду, який використовується для отримання dOctets. Це повертає нуль навіть для ідентифікатора шаблону 263.

Але коли він розраховується відносно ідентифікатора шаблону NetFlow 263, він дає правильні дані. (дає октети ініціатора і щоб отримати октет відповіді 46, слід замінити на 50, оскільки довжина конкретного запису становить 4 байти)

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

46 - це місце, де записаний ініціаторський октет лежить у цьому конкретному пакеті NetFlow (отриманий за допомогою запису Wireshark.)

Це проблема з jnca? Сподіваємось, хтось, хто знайомий з jcna, може допомогти мені у цьому.


6
Це посилання може допомогти: cdwijayarathna.blogspot.in/2014/03/…
Pandit

1
Ви перевіряли, які значення повертаються з методу getTypeOffsetі getTypeLen?
Лукіно

Зсуви, повернені з JNCA, Template.getTypeOffset()видаються відносно потоку потоків. Чи працює це з тим, що ви робите? (Ви не показали достатньо коду, щоб сказати; що це buf?)
rakslice

1
Також може допомогти фактична специфікація NetFlow V9: cisco.com/en/US/technologies/tk648/tk362/… : D
rakslice

Також строко введений java.util.Propertiesкод розбору формату низького рівня? Нук з орбіти. Чи Java не мала дженерики під час написання цієї бібліотеки?
rakslice

Відповіді:


1

Отримання інформації про використання мережі з записів NetFlow версії 9

Netflow - це функція, яка була представлена ​​на маршрутизаторах Cisco, яка дає можливість збирати мережевий трафік IP під час входу або виходу з інтерфейсу. Аналізуючи дані, які надає Netflow, адміністратор мережі може визначити такі речі, як джерело та призначення трафіку, клас обслуговування та причина перевантаженості. Netflow складається з трьох компонентів: кешування потоку, Колектор потоку та Аналізатор даних. У Netflow маршрутизатор пересилає деталі використання мережі у вигляді UDP-пакетів на вказаний порт призначення.

Java NetFlow Collect-Analyzer

Більше інформації


2
Мені просто цікаво, чому ви пропонуєте щедроту?
Ензокіе

2
@Enzokie Напевно, знадобився знак альтруїстів;)
campovski
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.