快速业务通道

iptables DNAT功能介绍及案例分析

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-31

iptables DNAT功能就是重写包的目的IP地址.如果一个包被匹配了,那么它所有的包都会被自动转换,然后被路由到正确的主机或网络.

DNAT target是非常有用的一项功能. 如果我的Web服务器在LAN内部,没有可在Internet上使用的公网IP地址,那就可以使用DNAT让防火墙把所有到它自己:80(web)端口的包转发给LAN内部真正的Web服务器.

另外目的地址也可以是一个范围,这样的话DNAT会为每一次请求随机分配一个地址.,我们可以用这个DNAT做简单的负载平衡.

注意,DNAT 只能用在nat表的PREROUTING和OUTPUT链中,或者是被这两条链调用的链里.

DNAT 选项: --to-destination
范例:iptables -t nat -A PREROUTING -p tcp -d 202.123.45.67 --dport 80 -j DNAT --to-destination 192.168.10.8:80
范例说明:
-t nat 指定要在nat表中添加一条PREROUTING链 -p tcp -d 15.45.23.67 --dport 80 所有要送往202.123.45.67的80端口的数据包 -j DNAT --to-destination 192.168.10.8:80 被DNAT转向192.168.10.8:80端口(也就是LAN内的web服务器上)
这是一个典型的将内部web服务器通过防火墙202.123.45.67发布的案例.要注意:--dport的使用只有先用-p指定了TCP或 UDP协议才能使用.

DNAT的处理过程要做很多工作,我们再通过一个例子来大致理解一下它是如何工作的:
比如,我想通过Internet连接发布我们的网站,但是web server在我们的内网里,我们对外只有一个合法的IP,就是防火墙那个对外的IP(eth1=202.123.45.67).防火墙还有一个内网的IP($AIP0=192.168.10.1),web server的IP也是内网的($BIP=192.168.10.8)为了完成我们发布的要求,要做的第一件事就是把下面的这个简单的规则加入到nat表的PREROUTING链中:

iptables -t nat -A PREROUTING -d 202.123.45.67 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.8:80

现在,所有从Internet到防火墙的80端口去的包都会被转发(被DNAT )到在内网的web服务器上.
注意哦:是所有internet来的包会被转发.如果你在Internet上试验一下,一切正常吧.OK 我们完成了web的对外发布.

这时我们再从内网里试验一下“C计算机”通过internet访问web服务器,肯定是不能用的.这是路由的问题,下面我们来好好分析这个问题.
为了容易阅读,我们把在外网上访问我们服务器的那台机子的IP地址记为“D计算机”.
包从地址为D的机子出发——》去往地址为eth1=202.123.45.67(防火墙)——》包到达防火墙——》防火墙匹配此包为DNAT规则——》转发这个包到eth0—— 》包离开防火墙A向192.168.10.8 web server前进. 包到达web服务器——》80端口回复数据——》防火墙(经过反向DNAT处理)——这样就好像是防火墙自己回复了那个来自外网的请求包.——》发送给计算机D.(这里要求把防火墙作为web到达internet的网关)
现在,我们来考虑和web服务器在同一个内网(这里是指所有机子不需要经过路由器而可以直接互相访问的网络,不是把服务器和客户机又分在不同子网的情况)的C客户机访问它时会发生什么.我们假设客户机的IP为192.168.10.7,其他设置同上.

A是C的网关.C发送请求去往A——》A接到请求后包被DNAT后送往B——》但是包没有经过SNAT 的处理,包还是使用它自己的源地址,就是192.168.10.7(译者注:这就是IP 传输包的特点,只根据目的地的不同改变目的地址,但不因传输过程中要经过很多路由器而随着路由器改变其源地址,除非你单独进行源地址的改变.其实这一步的处理和对外来包的处理是一样的,只不过内网包的问题就在于此,这里交待一下原因). —&

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号