免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4508 | 回复: 20
打印 上一主题 下一主题

基于2.6内核Netfilter编译模块加载后死机问题(已解决,新手错误) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-24 11:16 |只看该作者 |倒序浏览
详细情形类似于下面这篇帖子:http://linux.chinaunix.net/bbs/thread-1096275-1-9.html
刚开始接触Netfilter,新手一个。
另外,只要我在iph=ip_hdr(sb)之后不去判断iph及其成员就不会有问题,但是这有不能达到我的处理包的目的。
请各位熟悉的大虾帮帮忙。

[ 本帖最后由 ruoyisiyu 于 2009-9-24 11:59 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-09-24 11:18 |只看该作者
补充一下,现象是加载模块后,PC陷入死机状态

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2009-09-24 11:19 |只看该作者
死机还是OOps信息?

论坛徽章:
0
4 [报告]
发表于 2009-09-24 11:19 |只看该作者
前几天是不是有帖子说nf_hookfn的参数 struct sk_buff **skb 现在已经变成了struct sk_buff *skb ?
24内核你看下include/linux/netfilter.h的定义,
我这里25内核是一颗星的

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
5 [报告]
发表于 2009-09-24 11:20 |只看该作者
你的程序就没有判断一下skb是否为空

论坛徽章:
0
6 [报告]
发表于 2009-09-24 11:26 |只看该作者

回复 #5 Godbach 的帖子

确实如此。。
我加了判断SKB及其打印信息之后,发现SKB确实为NULL.
但可否解释一下,nefilter在PROUTING的hook抓到包之后,SKB在什么情况下会为空?

论坛徽章:
0
7 [报告]
发表于 2009-09-24 11:27 |只看该作者
我想当然的认为,数据包走到这个hook处理之后,skb就不为空了
教训啊,血淋淋

论坛徽章:
0
8 [报告]
发表于 2009-09-24 11:37 |只看该作者

回复 #4 peimichael 的帖子

确实如此。。在这里也提醒大家注意:

  1. typedef unsigned int nf_hookfn(unsigned int hooknum,
  2.                                struct sk_buff *skb,
  3.                                const struct net_device *in,
  4.                                const struct net_device *out,
  5.                                int (*okfn)(struct sk_buff *));

  6. struct nf_hook_ops
  7. {
  8.         struct list_head list;

  9.         /* User fills in from here down. */
  10.         nf_hookfn *hook;
  11.         struct module *owner;
  12.         u_int8_t pf;
  13.         unsigned int hooknum;
  14.         /* Hooks are ordered in ascending priority. */
  15.         int priority;
  16. };
  17. 这也是我的skb为空的原因。惭愧ing...还是新手
复制代码

论坛徽章:
0
9 [报告]
发表于 2009-09-24 11:44 |只看该作者
还是没看明白,导致 skb 为空的原因究竟是什么

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
10 [报告]
发表于 2009-09-24 11:46 |只看该作者
原帖由 ruoyisiyu 于 2009-9-24 11:27 发表
我想当然的认为,数据包走到这个hook处理之后,skb就不为空了
教训啊,血淋淋


前一段有个帖子也是这样,skb进来直接不判短。什么条件下skb会为空,我倒没有深究过。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP