买单老 发表于 2015-11-22 23:42

netfilter钩子点构造的包配合iptable导致系统崩溃

问题是这样的:
在前段时间实现了编写个内核模块,调用netif_receive_skb函数来发送一个自己构造的IP(或UDP,或TCP包)到本机的协议栈中去,能很好的运行,特别是
UDP数据包,当把这个UDP包配置信息为经过FORWARD点进行转发外,目标机器的"nc -u -l 8786"程序能收到信息。这应该说明数据包基本没错吧。
不过现在问题来了,当我配置了一个iptables准则“iptables -I INPUT -s 192.168.122.43 -j DROP” (192.168.122.43是本机地址后),只要一运行自己的
内核模块尝试发UDP包,系统就会崩溃,,多方查找,最终发现是:

unlink_anon_vmas+0x52/0x160
PDG 0
Oops:000 [#1] SMP

这类型的信息,就是段错误了。
这就不明白了,当用nc命令在本机和另外一台机器上发包的时候,iptables命令可以很好的运行,但一运行自己的发包程序,就段错误。
这是不是构造的SKB包还缺少什么参数呢?
请各位神牛了解的不吝讲解一下啊,谢谢啦
页: [1]
查看完整版本: netfilter钩子点构造的包配合iptable导致系统崩溃