Искам да напиша Linux
2.6 netfilter
module
, който може да проверява информацията за входящия IP
пакет, като dest-ip, source-ip. След това предайте тази информация на user space
приложение, което (т.е. Socket
приложение) ще обработва тази информация веднага щом пакетът достигне HOOKs.
Искам да опитам два начина:
1 . Вътре в модула netfilter
направете структурен ред fifo
, всеки път, когато пакетът достигне hook
, поставете информацията за пакета във fifo. и с помощта на /proc/example
файлова система. всеки път, когато приложението за потребителско пространство прочете файла /proc/example
, ще получи информация за пакет от главата на fifo.
Аз съм начинаещ в програмата kernel
, тази програма срива ядрото ми няколко пъти. -_-! Чудя се възможно ли е този начин?
2 . Вътре в модула netfilter направете char устройство, приложението за потребителско пространство да прочете пакетна информация от това char устройство. Но все още не знам как да се уверя, че ще получа пакета възможно най-скоро, има ли начин, когато пакетът достигне куката на netfilter, ядрото да изпрати някакъв сигнал до информационното приложение за потребителско пространство, след което приложението за потребителско пространство да дойде изберете информацията за пакета?
Благодаря ти много.