IPtables中SNAT、DNAT和MASQUERADE的區(qū)別以及用法

IPtables中SNAT、DNAT和MASQUERADE的區(qū)別以及用法

?轉(zhuǎn)自?linux運維_SEO優(yōu)化的博客

masquerade

IPtables中可以靈活的做各種網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT),網(wǎng)絡(luò)地址轉(zhuǎn)換主要有兩種:SNAT和DNAT

SNAT是source network address translation的縮寫,即源地址目標轉(zhuǎn)換比如,多個PC機使用ADSL路由器共享上網(wǎng),每個PC機都配置了內(nèi)網(wǎng)IP,PC機訪問外部網(wǎng)絡(luò)的時候,路由器將數(shù)據(jù)包的報頭中的源地址替換成路由器的ip,當外部網(wǎng)絡(luò)的服務(wù)器比如網(wǎng)站web服務(wù)器接到訪問請求的時候,他的日志記錄下來的是路由器的ip地址,而不是pc機的內(nèi)網(wǎng)ip,這是因為,這個服務(wù)器收到的數(shù)據(jù)包的報頭里邊的“源地址”,已經(jīng)被替換了所以叫做SNAT,基于源地址的地址轉(zhuǎn)換。

DNAT是destination network address translation的縮寫,即目標網(wǎng)絡(luò)地址轉(zhuǎn)換,典型的應(yīng)用是,有個web服務(wù)器放在內(nèi)網(wǎng)配置內(nèi)網(wǎng)ip,前端有個防火墻配置公網(wǎng)ip,互聯(lián)網(wǎng)上的訪問者使用公網(wǎng)ip來訪問這個網(wǎng)站當訪問的時候,客戶端發(fā)出一個數(shù)據(jù)包,這個數(shù)據(jù)包的報頭里邊,目標地址寫的是防火墻的公網(wǎng)ip,防火墻會把這個數(shù)據(jù)包的報頭改寫一次,將目標地址改寫成web服務(wù)器的內(nèi)網(wǎng)ip,然后再把這個數(shù)據(jù)包發(fā)送到內(nèi)網(wǎng)的web服務(wù)器上,這樣,數(shù)據(jù)包就穿透了防火墻,并從公網(wǎng)ip變成了一個對內(nèi)網(wǎng)地址的訪問了,即DNAT,基于目標的網(wǎng)絡(luò)地址轉(zhuǎn)換。

MASQUERADE,地址偽裝,在iptables中有著和SNAT相近的效果,但也有一些區(qū)別,但使用SNAT的時候,出口ip的地址范圍可以是一個,也可以是多個,例如:如下命令表示把所有10.8.0.0網(wǎng)段的數(shù)據(jù)包SNAT成192.168.5.3的ip然后發(fā)出去iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.5.3如下命令表示把所有10.8.0.0網(wǎng)段的數(shù)據(jù)包SNAT成192.168.5.3/192.168.5.4/192.168.5.5等幾個ip然后發(fā)出去iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.5.3-192.168.5.5這就是SNAT的使用方法,即可以NAT成一個地址,也可以NAT成多個地址,但是,對于SNAT,不管是幾個地址,必須明確的指定要SNAT的ip。假如當前系統(tǒng)用的是ADSL動態(tài)撥號方式,那么每次撥號,出口ip192.168.5.3都會改變,而且改變的幅度很大,不一定是192.168.5.3到192.168.5.5范圍內(nèi)的地址,這個時候如果按照現(xiàn)在的方式來配置iptables就會出現(xiàn)問題了,因為每次撥號后,服務(wù)器地址都會變化,而iptables規(guī)則內(nèi)的ip是不會隨著自動變化的,每次地址變化后都必須手工修改一次iptables,把規(guī)則里邊的固定ip改成新的ip,這樣是非常不好用的。MASQUERADE就是針對這種場景而設(shè)計的,他的作用是,從服務(wù)器的網(wǎng)卡上,自動獲取當前ip地址來做NAT。比如下邊的命令:iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE如此配置的話,不用指定SNAT的目標ip了,不管現(xiàn)在eth0的出口獲得了怎樣的動態(tài)ip,MASQUERADE會自動讀取eth0現(xiàn)在的ip地址然后做SNAT出去,這樣就實現(xiàn)了很好的動態(tài)SNAT地址轉(zhuǎn)換。

分享:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文整理了在實踐過程中使用的Linux網(wǎng)絡(luò)工具,這些工具提供的功能非常強大,我們平時使用的只是冰山一角,比如lso...
    老夫劉某閱讀 3,795評論 0 7
  • 防火墻的概念iptables的簡介iptables命令網(wǎng)絡(luò)防火墻NATfirewalld服務(wù) 一、防火墻的概念 (...
    哈嘍別樣閱讀 1,969評論 0 1
  • I should work. I should not work. 7.15 USAGE Tense of pre...
    jiajiasoso閱讀 768評論 0 0
  • 今天還主題可能更多的需要自己在實際中操作,并且熟練應(yīng)用。通過學(xué)習(xí),每天都能直接將學(xué)到的東西應(yīng)用到自己的工作中,例如...
    cc_eb31閱讀 153評論 0 0

友情鏈接更多精彩內(nèi)容