首页 > 代码库 > iptables 垫脚石之 NAT DNAT SNAT 代理 深度理解

iptables 垫脚石之 NAT DNAT SNAT 代理 深度理解

NAT:

        SNAT:内网主机访问外网的时候,当外网主机响应的时候路由无法识别源地址,因此需要做源地址转换,

                其实,当响应的时候,源地址已经变为目标地址,因此路由也做了DNAT,源地址转换可以隐藏内

                网主机,因此,最早是设计来保证内网主机的安全的,但是后来,作为了ipv4公网地址不够用的完

                美解决办法,因此,除了安全,还是实现内网中的私网地址通过一个公网地址上网的功能。

                其实,做SNAT的时候,可以通过修改公网服务器主机的路由网关,把自己的网关指向路由服务器

                的网关也可。

        DNAT:把内网主机扮作服务器,可供外网主机访问,当访问时,无法路由,因次,需要把路由服务器的

                DNAT打开,把目标地址转换为公网网关,内网主机响应时,把源地址转换为公网网关地址。这样

                做可以把内网N个主机扮演为,一个公共网关公网地址的服务器,并且如果iptables规格设置的几

                个主机的条件一样,就可以实现负载均衡。

                DNAT因为在请求时已经知道是请求的内网路由,并无法路由,因此需要在路由服务器的

                PREROUTING设置iptables规则,而SNAT因为在请求时要先分析源地址是内网地址,所以要进ip

                路由分析池出来之后才知道,因此需要在POSTROUTING处设置iptables规则。

        另外补充,在DNS中也能通过DNS解析实现负载均衡,而这里ipttables的DNAT也能实现负载均衡,并

                且后期的内核中更强大的负载均衡工具也行。

                代理跟NAT的区别在于,代理在应用层,主要负责你干什么?而NAT工作在网络层和传输层,主要

                负责怎么去到要干事情的地方!!


本文出自 “心留美” 博客,请务必保留此出处http://lvxibb.blog.51cto.com/7553022/1844981

iptables 垫脚石之 NAT DNAT SNAT 代理 深度理解