Запись Netflow не может получить октеты (JNCA)

169

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

Когда пакет NetFlow наблюдается из Wireshark, наборы потоков с идентификатором 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/…
Мандар Пандит
1
Вы проверили, какие значения возвращаются из метода getTypeOffsetи getTypeLen?
Лукино,
Смещения, возвращаемые из JNCA, Template.getTypeOffset()по-видимому, относительно потока. Это работает с тем, что вы делаете? (Вы не показали достаточно кода, чтобы сказать; что это buf?)
Ракслице
1
Фактическая NetFlow V9 спецификации тоже может помочь: cisco.com/en/US/technologies/tk648/tk362/... : D
rakslice
Кроме того, строковой типизированный java.util.Propertiesв коде синтаксический анализ формата низкого уровня? Ядерный с орбиты. Разве у Java не было генериков во время написания этой библиотеки?
Ракслице

Ответы:

1

Получение информации об использовании сети из записей NetFlow версии 9

Netflow - это функция, представленная на маршрутизаторах Cisco, которая позволяет собирать сетевой трафик IP при входе или выходе из интерфейса. Анализируя данные, предоставленные Netflow, сетевой администратор может определить такие вещи, как источник и назначение трафика, класс обслуживания и причина перегрузки. Netflow состоит из трех компонентов: кэширование потока, сборщик потока и анализатор данных. В Netflow маршрутизатор пересылает сведения об использовании сети в виде пакетов UDP на указанный порт назначения.

Java NetFlow Collect-Analyzer

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

Кондал
источник
2
Мне просто любопытно, почему вы предлагаете награду?
Энзоки
2
@Enzokie Наверное, нужен значок альтруиста;)
campovski