溫馨提示:
前言:
從根本上來說,NAT就是允許一台或者多台機器共享一個公網IP位址;第一種情況,以内網為例,把這些機器的預設網關設定為 NAT伺服器後,這樣所有的封包都會通過網關發送出去(SNAT),還有一種情況,如果我們内網有多個對外網的伺服器,基于節約IP位址資源的考慮也可以使用的NAT技術,将内網中的多個伺服器給外網使用者提供服務(DNAT).
一、NAT之SNAT
NAT伺服器能夠改變封包的源和目的位址成另外一個不同的位址。NAT 伺服器接收到一個封包,接着就改寫它的源/目的位址,其次在重新計算這個封包的校驗和。其中很重要的一個用途就是源位址NAT(SNAT),源位址NAT其實就是解決隻有一個公網 IP,但是有多台計機器需要上網,這樣我們就打開SNAT功能,這樣内網中多台計算機就能夠共享這一個公網IP 位址上網了。(如圖,下圖如引起您的各種不适,與本人無關)
<a href="http://s3.51cto.com/wyfs02/M02/23/7C/wKioL1M3-YqSetzMAAOm-cmMAmo312.jpg" target="_blank"></a>
注:另外一個 SNAT 就是僞裝(Masquerade),它主要應用于動态位址配置設定的場合,對于MASQUERADE它會自動用出接口上面的位址作為封包新位址。
上圖注解
源位址
192.168.1.20
目标位址
www.essun.org
規則
#echo 1 >/proc/sys/net/ipv4/ip_forward(臨時啟用轉發)
#sysctl -p
#iptables -t nat -I POSTROUTING -s 192.168.1.0/24 --dport 80 -j SNAT --to-source 202.106.32.132
注:
如果是動态擷取公網IP,可使用(Masquerade)
#iptables -t nat -I POSTROUTING -s 192.168.1.0/24 --dport 80 -o eth1 -j MASQUERADE
二、NAT之DNAT
DNAT 在我們假設自己的伺服器時候特别有用。首先它能夠幫助我們節約 IP 位址(多台伺服器共享一個IP),其次在 NAT 伺服器和實際的伺服器之間相當于增加了一個防護體系,增強了伺服器的安全系數。例如一些公司可能對外網運作 web 和 ftp 伺服器,他們可能在同一台機器上面,也有可能是實體上分開的機器,這樣就可以借助DNAT,通過同一個IP提供上述的所有服務。(如圖)
<a href="http://s3.51cto.com/wyfs02/M00/23/7E/wKioL1M4K5aDVuiZAAPQzqfQlJA295.jpg" target="_blank"></a>
目地位址
202.106.32.132
6.6.6.6
#iptables -t nat -A PREROUTING -d 202.106.32.132 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.20:80
=======================================完=========================================
本文轉自 jinlinger 51CTO部落格,原文連結:http://blog.51cto.com/essun/1389294,如需轉載請自行聯系原作者