- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Netfilter新增target模块浅析 - Copy
Netfilter新增target模块浅析 2011-6-16目 录1 模块功能介绍32 应用层实现33 内核实现74 配置部分85 附录96 参考资料9Netfilter新增target模块浅析1 模块功能介绍大家现在已经对iptables的使用有了一定的了解,iptables基本命令格式为:iptables ACTION chain rule-specification options本文档中,我们要讨论的是options中的-j target中target模块的实现方式,要实现一个target功能,其中包括二部分,即内核空间中的和用户空间中的。下面就一个实际的例子来一起学习整个功能的实现过程。我们以IPID模块为例。(注:本文档中提到的均为没有使用共享库,即宏NO_SHARED_LIBS定义了。)我们要实现的IPID模块为修改IP头中的ID字段。我们可以看下IP报头格式。Identification字段主要用来唯一的标志一个分片的数据包,当然,该字段还可以用于其它功能。我们现在要实现的是修改这个ID字段,实现二种方法,一种是数据包的ID有规律的递增,另一种是无规律的随机产生。下面演示的是具体命令:#iptables -t mangle -I ShareProtection -i br0 -j IPID --ipid-pace 12 应用层实现下面我们从用户空间开始,实现对以上命令的解析。先看下iptables_target结构struct xtables_target{struct xtables_target *next;xt_chainlabel name;/* 模块的版本号 (默认为0). */u_int8_t revision;u_int16_t family;const char *version;/* Size of target data. */size_t size;/* Size of target data relevent for userspace comparison purposes */size_t userspacesize;/* Function which prints out usage message. */void (*help)(void);/* Initialize the target. */void (*init)(struct xt_entry_target *t);/* Function which parses command options; returns true if it ate an option *//* entry is struct ipt_entry for example */int (*parse)(int c, char **argv, int invert, unsigned int *flags, const void *entry, struct xt_entry_target **targetinfo);/* Final check; exit if not ok. */void (*final_check)(unsigned int flags);/* Prints out the target iff non-NULL: put space at end */void (*print)(const void *ip, const struct xt_entry_target *target, int numeric);/* Saves the targinfo in parsable form to stdout. */void (*save)(const void *ip, const struct xt_entry_target *target);/* Pointer to list of extra command-line options */const struct option *extra_opts;/* Ignore these men behind the curtain: */unsigned int option_offset;struct xt_entry_target *t;unsigned int tflags;unsigned int used;#ifdef NO_SHARED_LIBSunsigned int loaded; /* simulate loading so options are merged properly */#endif};以上结构的成员不必全部实现,一般来说只要初始化下面必个成员(ipt_IPID.c):可以看到name为IPID,即我们演示命令中-j后面的ta
您可能关注的文档
- 低年级智力残疾儿童美术艺术治疗的初步尝试.doc
- 使用MFC创建不规则窗体.doc
- SAS中的SQL语句大全.docx
- armlink - Scatter file文件格式.doc
- CADENCE16.0中添加区域规则的方法.doc
- 怎样用英语赞美别人.docx
- 新编英语教程 3 Unit 11 Shaka.doc
- GRE特殊背景词汇.doc
- 画版图时常见问题解析.doc
- iomem—IO映射方式的IO端口和内存映射方式的IO端口.doc
- 《GB/Z 44363-2024致热性 医疗器械热原试验的原理和方法》.pdf
- GB/T 16716.6-2024包装与环境 第6部分:有机循环.pdf
- 中国国家标准 GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 《GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统》.pdf
- GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 中国国家标准 GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 44305.2-2024塑料 增塑聚氯乙烯(PVC-P)模塑和挤塑材料 第2部分:试样制备和性能测定.pdf
- 《GB/T 44315-2024科技馆展品设计通用要求》.pdf
- GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 39560.9-2024电子电气产品中某些物质的测定 第9 部分:气相色谱-质谱法(GC-MS)测定聚合物中的六溴环十二烷.pdf
文档评论(0)