Я хочу написать Linux
2.6 netfilter
module
, который может проверять информацию о входящем IP
пакете, такую как IP-адрес назначения, IP-адрес источника. После этого передайте эту информацию в приложение user space
, которое (т.е. приложение Socket
) обработает эту информацию, как только пакет достигнет HOOK.
Я хочу попробовать два способа:
1 . Внутри модуля netfilter
создайте строку структуры fifo
, каждый раз, когда пакет достигает hook
, поместите информацию о пакете в fifo. и с помощью /proc/example
файловой системы. каждый раз, когда приложение пользовательского пространства читает файл /proc/example
, будет получать информацию о пакете из заголовка FIFO.
Я новичок в программе kernel
, эта программа несколько раз вылетала из моего ядра. -_-! Интересно, возможен ли этот путь?
2 . Внутри модуля netfilter создайте символьное устройство, приложение пользовательского пространства считывает информацию о пакетах с этого символьного устройства. Но я до сих пор не знаю, как убедиться, что пакет получен как можно скорее, есть ли какой-либо способ, когда пакет достигает ловушки сетевого фильтра, ядро отправляет некоторый сигнал в информационное приложение пользовательского пространства, затем приложение пользовательского пространства приходит к выбрать информацию о пакете?
Спасибо большое.