LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1114|回复: 2

“以本地为源的包的经过的表和链” 的疑问

[复制链接]
发表于 2005-7-19 10:21:11 | 显示全部楼层 |阅读模式
Table 3-2. 以本地为源的包
Step         Table          Chain                     Comment
1                                                 本地程序(比如,服务程序或客户程序)
2                                                路由判断,要使用源地址,外出接口,还有其他一些信息。
3         mangle         OUTPUT                在这儿可以mangle包。建议不要在这儿做过滤,可能有副作用哦。
4         nat           OUTPUT             这个链对从防火墙本身发出的包进行DNAT操作。
5         filter           OUTPUT               对本地发出的包过滤。
6         mangle         POSTROUTING         这条链主要在包DNAT之后(译者注:作者把这一次DNAT称作实际的路由,虽然在前面有一次路由。对于本地的包,一旦它被生成,就必须经过路由代码的处理,但这个包具体到哪儿去,要由NAT代码处理之后才能确定。所以把这称作实际的路由。),离开本地之前,对包 mangle。有两种包会经过这里,防火墙所在机子本身产生的包,还有被转发的包。
7         nat         POSTROUTING         在这里做SNAT。但不要在这里做过滤,因为有副作用,而且有些包是会溜过去的,即使你用了DROP策略。
8                             离开接口(比如: eth0)
9                             在线路上传输(比如,Internet)
--------------------------------------------------------------------------------------
上面有一句话(加粗的)

nat           OUTPUT             这个链对从防火墙本身发出的包进行DNAT操作。

1、这个话,我有点糊涂。  能否解释下这个DNAT的过程,或者举个例子来说。
2、这一步是否只对防火墙本身发出的包有效。最好举个防火墙本身发出的包的例子说明下。嘿嘿
3、这篇文章中,以本地为源的包,是否指firewall(iptables)所在的这台机器?是否就是网关吧。
发表于 2005-7-19 15:30:11 | 显示全部楼层
一般情况下一个DNAT地址会和一个SNAT地址对应

NAT有两种基本类型,一种是SNAT(Source NAT),一种是DNAT(Dest. NAT).SNAT即源NAT是改变数据包的IP层中的源IP地址,一般是用来将不合法的IP外出请求转换成合法的IP的外出请求,就是普通的用一个或者几个合法IP来带动一整个非法IP段接入。 DNAT即目的NAT,就是改变数据包的目标IP地址,使得能对数据包重新定向,可以用做负载均衡或者用于将外部的服务请求重定向到内网的非法IP的服务器上

具体可参考文档
http://iptables-tutorial.frozent ... rial-cn-1.1.19.html
回复 支持 反对

使用道具 举报

发表于 2005-7-19 16:51:50 | 显示全部楼层
前面版主对NAT的解释很清楚;
我来回答一下2和3:
3.以本地为源的包,就是指firewall(iptables)所在的这台机器发出去的包。
2.如果要对流经防火墙的包做DNAT,需要在PREROUTING链的mangle表上进行。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表