我正在尝试为数据包匹配编写自定义内核模块(例如字符串匹配)。
我知道这可以使用iptables中的--string选项来完成,但我想学习从头开始,以扩展我在C和内核开发方面的知识。
什么是好的起点?
我的想法是匹配内核空间中的数据包(可能与NF-Hooks),将其发送到用户空间进行处理(使用CUDA或OpenCL和netlink套接字),然后发送回结果(drop,accept,.. 。)到内核。
这是完全可能还是在内核中完成所有操作?内核会等待吗 是否要在用户空间中处理数据包?
我知道我必须深入挖掘,但好奇心会杀死我;-)!
感谢您的任何提示!
亲切的问候