免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Minit

[原]Netfilter实现机制分析 [复制链接]

论坛徽章:
0
发表于 2008-12-28 23:11 |显示全部楼层
为了以后方便看 请允许我引用哈 谢谢

论坛徽章:
0
发表于 2008-12-28 23:39 |显示全部楼层
已在主贴的最后新增了PDF下载,希望能对大家有所帮助,也希望大家如果发现有问题的地方及时交流。:wink:

论坛徽章:
0
发表于 2008-12-29 09:22 |显示全部楼层
周末又仔细研读了一下 Minit 兄的大作,深受启发
同时,也发现了文档中的一个小的低级错误
“target-offset” 应该是 “target_offset”

另外,我 Minit 兄是使用 PDFFactor 生成的 PDF 文档,由于未注册所以每页下面有一行提示,我来上传一个有 keymaker 的 PDFF

PDF_FactoryPro210chs.rar

1.9 MB, 下载次数: 217

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2008-12-29 09:28 |显示全部楼层

回复 #23 platinum 的帖子

一帮无私的同志啊,赞一个!

论坛徽章:
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
发表于 2008-12-29 09:53 |显示全部楼层

回复 #23 platinum 的帖子

前几天用了一下TinyPDF,也不错,WIN下绿色的。

论坛徽章:
0
发表于 2008-12-29 09:54 |显示全部楼层
原帖由 platinum 于 2008-12-29 09:22 发表
周末又仔细研读了一下 Minit 兄的大作,深受启发
同时,也发现了文档中的一个小的低级错误
“target-offset” 应该是 “target_offset”

另外,我 Minit 兄是使用 PDFFactor 生成的 PDF 文档,由于未注册所 ...



谢谢白金兄的提醒,我马上更改下。也谢谢您提供的软件,O(∩_∩)O

论坛徽章:
0
发表于 2008-12-29 09:58 |显示全部楼层
好文章

论坛徽章:
0
发表于 2008-12-29 11:49 |显示全部楼层
虽然看得我稀里糊涂!!但是还是帮楼主顶一个!辛苦了!

论坛徽章:
0
发表于 2008-12-29 13:06 |显示全部楼层
lz, 借你的宝地, 想问下一个非流程问题:

在iptable_filter中:

  1. static struct
  2. {
  3.         struct ipt_replace repl;
  4.         struct ipt_standard entries[3];
  5.         struct ipt_error term;
  6. } initial_table __initdata = {
  7.         .repl = {
  8.                 .name = "filter",
  9.                 .valid_hooks = FILTER_VALID_HOOKS,
  10.                 .num_entries = 4,
  11.                 .size = sizeof(struct ipt_standard) * 3 + sizeof(struct ipt_error),
  12.                 .hook_entry = {
  13.                         [NF_IP_LOCAL_IN] = 0,
  14.                         [NF_IP_FORWARD] = sizeof(struct ipt_standard),
  15.                         [NF_IP_LOCAL_OUT] = sizeof(struct ipt_standard) * 2,
  16.                 },
  17.                 .underflow = {
  18.                         [NF_IP_LOCAL_IN] = 0,
  19.                         [NF_IP_FORWARD] = sizeof(struct ipt_standard),
  20.                         [NF_IP_LOCAL_OUT] = sizeof(struct ipt_standard) * 2,
  21.                 },
  22.         },
  23.         .entries = {
  24.                 IPT_STANDARD_INIT(NF_ACCEPT),        /* LOCAL_IN */
  25.                 IPT_STANDARD_INIT(NF_ACCEPT),        /* FORWARD */
  26.                 IPT_STANDARD_INIT(NF_ACCEPT),        /* LOCAL_OUT */
  27.         },
  28.         .term = IPT_ERROR_INIT,                        /* ERROR */
  29. };
复制代码

而在使用这个结构的时候, 只用了结构中的initial_table.repl:

  1. static int __init iptable_filter_init(void)
  2. {
  3.         ...
  4.         ret = ipt_register_table(&packet_filter, &initial_table.repl);
  5.                 ...
  6. }
复制代码




那么另外两个结构
ipt_standard entries[3];
struct ipt_error term;
哪个地方使用了呢?

论坛徽章:
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
发表于 2008-12-29 14:13 |显示全部楼层
ret = ipt_register_table(&packet_filter, &initial_table.repl);

看一下这个函数的具体实现,&initial_table.repl和&initial_table其实都是指向该结构体的开始
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP