Chinaunix首页 | 论坛 | 博客
  • 博客访问: 159526
  • 博文数量: 31
  • 博客积分: 2025
  • 博客等级: 大尉
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-09 15:21
文章分类

全部博文(31)

文章存档

2011年(1)

2010年(1)

2009年(29)

我的朋友

分类: LINUX

2009-10-19 21:03:12

不同的数据包要经过三条路径:

1、  发往本机的包:经过的检查点是NF_PRE_ROUTING,NF_LOCAL_IN

2、  由本机发出的包:经过NF_IP_LOCAL_OUTNF_IP_POST_ROUTING

3、  由本机转发的包:经过的检查点是NF_IP_PRE_ROUTING,NF_IP_FORWARD,NF_IP_POST_ROUTING但是conntrackhelper函数并未在NF_IP_FORWARD的挂钩,所以如果用help直接写处理操作,然后用nf_helper_register来注册的,符合特征的数据包在NF_IP_FORWARD不会处理,在NF_IP_PREROUTINGNF_IP_POST_ROUTING会处理,而且可能会处理两次,所以一定要小心,根据我的教训,不推荐在help函数直接处理。如果是在网关上处理数据包,最好直接在NF_IP_FORWARDnf_register_hook挂钩,然后用ip_conntrack_get来获取会话跟踪信息,这样流程既简洁又便于跟踪。

阅读(1424) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~