- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于NETFILTER架构的数据包地址转换实现
2006馨第7期 大众科技 No.7,2006
f憨繁93襄} 0AZ瓣oNGKEJl (CumulativelyNo。93)
基于NETFI
韩秀娟,昊楠
(河南理工大学,河南焦作454000)
相时独囊,又是可以完全剥离的。文章阐述了利用Netfilter的五个钩if-,实现数据包地址的直接转换。
【奖键词lNetfiltcr;跑蛙转羧;Linux
【巾豳分类号】TP393.08 【文献标议粥】A
一、引言 (二}实现原理
Ne蠛lmr是垂Linux2.2蔽本蠹孩后爨络资议筏懿鳌要缓数据包麸左逮遂入系统,送簿臻梭验羧矮,数据包经过
成部分,是Linux网络防火墙以及IPtable实现的基础。Ne伍l—
ter提供了一个不同予BSDSocket接口的操作网络数据包的入路由代码.冀决定该数据包是需要转发还是发飨本机的;若
枧制,怒Linux平台下进幸亍网络皮尾扩展的主要程器,这擅扩该炎糙包是发狡本撬懿,捌该数据经过锪子函数NF—IP—LO。
震不仅包括防火墙鹃实褒(这只怒Neff.flter的基本功辘),还包
CALIN处理以后然后传递给上层协议:若该数据包应该旋转
括各种撤文处理工作(如报文加密、报文分类统计等),甚趸还
可以借助Neffiher机制来实现虚拟专用网(VPN)。
鼷一个钩子舔数NFIP
。二、NETFIH嚣R框架缝成及漂瑾
嬲络上。
f一)NETFIL『rER框架组成
本地产生的数据经过钩子函数NF_IP_LOCALOUT处理
TCP/IP协议栈魁Linux内核的主要组成部分,而Neff.alter
和IP报文的处理是完全结合在一起的.同时出于其结构耀对
鲶瑗羧惹发送舞瓣终上。
独立。又跫霹以完全襄离懿。在Netfilter孛,狯议棱每静汝议都
v4均定义了氟个钩 内核模块可以对一个或多个这样的钩子函数进行注册挂
定义了若千个钩子(HOOK),如IPv6和IP
子。用struetlist_head 接,并且在数据包经过这些钩子函数时被调用,从而模块可以
nf_hooks[NPROTO][NF_MAX_HOOKS]二
维数缓绻梅存德。一维势协定族,二维隽各个钩子的髑耀人 修泼这些数据彀。势向Ne蠛lter返霞翔下筮:
口。面对应协议的数据包将按照一定豹规受|j通过若予个钩子, NF TPECCA.:搬据数输传常正续继:
每一个钩子都是处理函数挂载点。内核模块则可以在各个钩 NF
DROP:丢弃该数据报,不再传输;
子上淀艇处理函数。以操作经过对应钩子的数据包。函数处理 NF_STOLEN:模块接管该数据报,不要继续传输该数据报;
怎。辗援一定戆策略潺嚣给蠹核进行下一步懿处瑾。 NF
9UEUE:露该炎籽缀送辛亏辩沃f遴常焉子将数据摄给
网络报文按照浆源和去向,可以分为三类:流入的、流经
用户空间的进程进行处理1;
的和流出的,其中流人和流经的撤文需要经过路由才能区分, NFREPEAT:再次调用该钩子函数。
两流经翻流出的报文贝l需要经过投递,此强,漉经的报文j丕有
文档评论(0)