Должен получить подписи протокола?
Кто-нибудь знает, как мы можем получить подписи для различных протоколов, например, BGP, DHCP, VxLAN и т. Д.?
Под сигнатурами я на самом деле имею в виду шаблон (например, что-то вроде 0x234557888), используемый для сопоставления с шаблоном в движке Deep-Packet Inspection. Я хочу написать код DPI для обнаружения некоторых протоколов (например, упомянутых выше).
Существует ли какой-то алгоритм поиска подписей?
1 ответ
Зачем изобретать велосипед, когда другие, такие как проект с открытым исходным кодом nDPI, уже создали код DPI для обнаружения протоколов, которые вы упомянули (BGP, DHCP). VLAN - это не протокол, а VTP.
http://www.ntop.org/products/ndpi/
nDPI - это поддерживаемый ntop расширенный набор популярной библиотеки OpenDPI. Выпущенная по лицензии GPL, ее целью является расширение исходной библиотеки путем добавления новых протоколов, которые в противном случае доступны только в платной версии OpenDPI. В дополнение к платформам Unix мы также поддерживаем Windows, чтобы предоставить вам кроссплатформенный интерфейс DPI. Кроме того, мы изменили nDPI, который больше подходит для приложений мониторинга трафика, отключив определенные функции, которые замедляют работу механизма DPI, но при этом они не нужны для мониторинга сетевого трафика.
nDPI автоматически загружается при сборке ntop и nProbe. Однако ничто не мешает вам использовать его в качестве автономной библиотеки DPI. Исходный код можно скачать с nTOP SVN.
Вы также спросили об алгоритмах, вот несколько PDF-файлов, чтобы вы начали:
Алгоритм глубокой проверки пакетов с мульти-гигабитной скоростью с использованием TCAM
Алгоритм быстрого многошагового сопоставления для глубокого контроля пакетов на сетевом процессоре