Saya menggunakan perpustakaan jnca untuk mengumpulkan catatan NetFlow yang dikirim oleh router. Versi catatan NetFlow yang dikirim oleh router adalah versi 9.
Ketika paket NetFlow diamati dari Wireshark, set aliran dengan id template 263 berisi data tentang oktet inisiator dan oktet responden yang dapat digunakan untuk menentukan jumlah byte yang terkait dengan aliran.
Tetapi masalahnya adalah nilai-nilai ini tidak dapat diperoleh oleh jcna. Ini menunjukkan selalu nol untuk oktet.
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();
}
Ini adalah segmen kode yang digunakan untuk mendapatkan dOctets. Ini mengembalikan nol bahkan untuk ID template 263.
Tetapi ketika dihitung sehubungan dengan template NetFlow id 263 itu memberikan data yang benar. (memberikan oktet inisiator dan untuk mendapatkan oktet responden 46 harus diganti dengan 50 karena panjang catatan khusus adalah 4 byte)
dOctets = Util.to_number(buf, off + 46, 4)
46 adalah tempat catatan Initiator Octets terletak pada paket NetFlow tertentu. (Menggunakan catatan Wireshark.)
Apakah ini masalah dengan jnca? Mudah-mudahan, seseorang yang terbiasa dengan jcna dapat memberi saya bantuan dalam hal ini.
getTypeOffset
dan getTypeLen
?
Template.getTypeOffset()
tampaknya relatif terhadap flowet. Apakah ini berhasil dengan apa yang Anda lakukan? (Anda tidak menunjukkan cukup kode untuk diceritakan; apa itu buf
?)
java.util.Properties
dalam parsing format tingkat rendah? Nuke dari orbit. Apakah Java tidak memiliki obat generik pada saat perpustakaan ini ditulis?