NAT机制分析讲解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NAT机制分析讲解

NAT技术的分析与测试 1. NAT概述 NAT,英文全称为Network Address Translation,即网络地址转换。通过该技术手段,可使得局域网内部网络中使用内部地址,并利用在网关处的特定设置,将内部地址替换成公用地址,从而保证内网主机可以正常的上网。NAT可以使多台计算机共享Internet连接,这一功能很好地解决了IPv4地址枯竭的问题。 图1 NAT工作原理 NAT服务需要依赖于iptables来进行网络包的转发,其中iptables是一个类似于防火墙的软件,能进行网络报的过滤和转发。若内网某机器需要使用NAT服务发送网络包的时,网络包通过 “Prerouting” –”Forward”-”Postrouting”将网络包转发出网卡。其中,Prerouting过程无操作,Forward过程进行包的转发,Postrouting过程更改网络包的源地址为NAT服务主机的ip地址。 2. Netfilter/iptables技术分析 Netfilter/iptables是实现NAT的基础。它可以为内核防火墙模块提供有状态或无状态的包过滤服务,从而实现NAT、IP伪装等,也可以因高级路由或连接状态管理的需要而修改IP头信息。故首先介绍Netfilter/iptables。 说明:本文与内核相关的全部代码都是基于2.6.36版,iptables相关的源代码部分则是基于1.4.10版本。本文的流程图中有两种类型的箭头,表示函数调用关系,表示执行流程。 2.1 Netfilter/iptables简介 Netfilter/iptables的I P信息包过滤系统由两个组件Netfilter和?iptables?组成。Netfilter是内核中的一组提供网络协议栈控制的程序框架,它通过在钩子hook注册回调函数,使得每个经过该hook的数据包都会调用这些函数,完成一定的控制功能。iptables是2.2.x的ipchains的后继工具,是用户空间中用于管理包过滤及NAT等的工具。它设置防火墙的过滤规则,并将规则添加到内核空间的特定信息包过滤表内的链中,通过Netfilter框架hook点的回调函数完成对数据报进行过滤、地址转换、处理等操作。而NAT正是通过在用户态设置的iptables过滤规则,使得从内网流出的包在通过hook点时被捕获,修改其包头信息,以转发到外网。 2.2 Netfilter/iptables-IPv4体系结构 (1) Netfilter的HOOK机制: Netfilter通用框架不依赖具体的协议,不同的网络协议在IP协议栈建立了5个HOOK点,在每个HOOK点对数据包进行有选择的处理。 内核任何模块可对一个或多个钩子函数进行注册,实现挂接,这样当某个数据包传递给Netfilter时,内核检测是否有模块对该协议和钩子函数进行注册。若注册了,则调用内核模块注册时的回调函数,模块便有机会检查并且在数据报经过这些钩子函数时被调用,从而模块可以修改、丢弃这些数据报及指示Netfilter将该数据报传入用户空间,并向Netfilter返回相应的值,以确定是否正常传输数据包,还是丢弃数据包。 图1 IPV4中的处理点 表1 Netfilter框架中各个hook作用 hook序号 内容 作用 HOOK1 NF_INET_PRE_ROUTING 当进入系统的数据包在进行路由选择之前进行的防火墙检测处理 HOOK2 NF_ INET _LOCAL_IN 经由路由选择后的数据包,在传给本地进程处理之前所进行的防火墙检测处理 HOOK3 NF_ INET _FORWARD 在经由路由转发后的数据包处理 HOOK4 NF_ INET _LOCAL_OUT 本地进程产生的数据包在进行路由选择之前进行的防火墙检测处理 HOOK5 NF_INET_POST_ROUTING 该处理点对应于进入防火墙的数据包和由防火墙本地进程产生的数据包,这些数据包在出防火墙时进行的控制处理 第一个ROUTE针对收到的包做路由检查并判断这个包是需要转发还是发往上层的包,第二个ROUTE是针对发出包进行的路由。NF_ INET_PRE_ROUTING点对所有传入IP层的数据包进行检查,在这之前,有关数据包的版本、长度、校验和等正确性检查已经完成;NF_INET_LOCAL_IN对发往上层的数据包进行检查;NF_INET_FORWARD检查需要转发的数据包;NF_INET_POST_ROUTING则对所有向链路层传递的数据包进行检查,在此处数据包的路由已经确定。NF_INET_LOCAL_OUT对本机发出的包进行检查,此处的路由还没有确定,所以可以做目的地址转换。 (2) iptables基础模块 Netfilter框架需要在内核模块注册

文档评论(0)

33ggoup + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档