数十年专注企业数字化转型、智能化升级、企业上云解决方案服务商
工单提交 腾佑科技咨询热线咨询热线: 400-996-8756
百度云服务中心腾佑科技公司
云服务器活动 服务器租用 服务器托管 机柜租赁 带宽租赁
  • 最新资讯
  • 热门资讯
  • 最热资讯
智能建站

基于netfilteriptables的NAT如何工作

发布时间:2012-07-18 作者:admin

简述:Linux下的NAT是基于netfilter/iptables的。netfilter/iptables内核空间默认的表和链说明:filter表用来过滤数据包,我们可以在任何时候匹配包并过滤它们。Man

Linux下的NAT 是基于netfilter/iptables的。netfilter/iptables 内核空间默认的表和链说明:filter 表用来过滤数据包,我们可以在任何时候匹配包并过滤它们。Mangle不经常使用还在开发当中。我们下面主要介绍Nat表来实现NAT功能。

(1)用户使用iptables命令在用户空间设置NAT规则,通过使用用户空间iptables命令,可以构建用户自己的定制NAT规则。所有规则存储在内核空间的nat表中。根据规则所处理的信息包类型,将规则分组在链中。要做SNAT的信息包被添加到POSTROUTING链中。要做DNAT的信息包被添加到PREROUTING链中。直接从本地出站的信息包的规则被添加到OUTPUT 链中。

(2)内核空间接管NAT工作

做过NAT操作的数据包的地址就被改变了,当然这种改变是根据我们的规则进行的。属于一个流的包只会经过这个表一次。如果第一个包被允许做NAT或Masqueraded,那么余下的包都会自动地被做相同的操作。也就是说,余下的包不会再通过这个表,一个一个的被NAT,而是自动地完成。这就是我们为什么不应该在这个表中做任何过滤的主要原因。PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。图4 是数据包穿越整个netfilter/iptables的流程图。

(3)NAT工作步骤

DNAT:若包是被送往PREROUTING链的,并且匹配了规则, 则执行DNAT或REDIRECT目标。为了使数据包得到正确路由, 必须在路由之前进行DNAT。

路由:内核检查信息包的头信息,尤其是信息包的目的地。

处理本地进程产生的包:对nat表OUTPUT链中的规则实施规则检查, 对匹配的包执行目标动作。

SNAT:若包是被送往POSTROUTING链的,并且匹配了规则, 则执行SNAT或MASQUERADE目标。 系统在决定了数据包的路由之后才执行该链中的规则。

本文由专业服务器托管——腾佑科技(http://www.tuidc.com)提供。

点击展开全文

郑州腾佑科技有限公司(以下简称“腾佑科技”)成立于2009年, 总部位于郑州,是 一家致力于互联网服务业的高新技术企业,公司主营业务以互联网数据中心、云计算、人 工智能、软件开发、安全服务“互联网+”行业解决方案及行业应用等相关业务。

售前咨询热线:400-996-8756

备案提交:0371-89913068

售后客服:0371-89913000

热门活动

百度云服务中心
标签:
  • 热门资讯
  • 随便看看