【防火牆技術連載18】強叔侃牆 NAT篇 雙劍合璧,無往不利——雙向NAT


 

強叔侃牆  官方號 2014-5-21 14:27:48 最新回復:2020-12-08 23:27:00
 4.4W  40  7  19

經過前面幾篇貼子的介紹,相信大家已經對源NAT和NAT Server有了相當了解。NAT功能就像一個武林高手,可內可外,游刃有余,那么這“一內一外”能否配合使用呢?答案當然是肯定的!
如果需要同時改變報文的源地址和目的地址,就可以配置“源NAT+NAT server”,華為防火牆稱此類NAT配置為雙向NAT。這里要注意:雙向NAT不是一個單獨的功能,他僅僅是源NAT和NAT Server的組合。這里“組合”的含義是針對同一條流(例如外網主機訪問內網服務器的流量),在其經過防火牆時同時轉換報文的源地址和目的地址。大家千萬不能理解為“防火牆上同時配置了源NAT和NAT Server就是雙向NAT”,這是不對的,因為源NAT和NAT Server可能是為不同流配置的。
之前介紹源NAT功能時,強叔為了更利於大家理解相關概念和原理,都是按照內網用戶訪問外網資源的思路進行組網設計和驗證的。實際上,源NAT還可以根據報文的源地址和目的地址所在安全區域進行分類:

1、域間NAT

報文的源地址和目的地址屬於不同的安全區域。按照轉換報文的方向,又可以分為以下兩類:

(1)NAT Inbound(外網訪問內網)

報文由低安全級別的安全區域向高安全級別的安全區域方向傳輸時,基於源地址進行的轉換。一般來說,NAT Inbound都會和NAT Server配合使用。

(2)NAT Outbound(內網訪問外網)

報文由高安全級別的安全區域向低安全級別的安全區域方向傳輸時,基於源地址進行的轉換。之前介紹的“內網用戶訪問外網資源”場景大多使用NAT Outbound。
2、域內NAT(內網訪問內網)

報文的源地址和目的地址屬於相同的安全區域。一般來說,域內NAT都會和NAT Server配合使用,單獨配置域內NAT的情況較少見。
當域間NAT或域內NAT和NAT Server一起配合使用時,就實現了雙向NAT。當然,上述內容的一個大前提就是:合理設置安全區域的級別並規划網絡――內網設備屬於Trust域(高級別),內網服務器屬於DMZ域(中級別),外網設備屬於Untrust域(低級別)。
雙向NAT從技術和實現原理上講並無特別之處,但是他和應用場景有着強相關性。究竟什么時候需要配置雙向NAT?配置后有什么好處?不配置雙向NAT行不行?這都是實際規划和部署網絡時需要思考的問題,且聽強叔一一道來。

1、NAT Inbound+NAT Server
下圖示意了一個最常見的場景:外網PC訪問內網服務器,防火牆做服務器的網關。這個時候我們一般會用到的NAT技術是…(畫外音:“強叔,我知道,是NAT Server!這個場景不就是NAT Server的典型場景嗎?”)沒錯,大家果然認真看了強叔之前的貼子!但是強叔下面要講的是如何在這個場景中應用雙向NAT,以及這么做的好處,大家接着看吧。

server以公網IP對外提供服務,防火牆上配置NAT Server,這個大家肯定沒有疑問。同時,防火牆上配置NAT Inbound,令PC以私網IP訪問server,這個大家可能有疑問,別着急,我們先來看看具體配置。
例1 配置NAT Inbound+NAT Server
#
 nat address-group 1 10.1.1.20 10.1.1.25  //地址池中的IP為私網IP ,且和server的私網IP同網段
 nat server 0 global 210.1.1.15 inside 10.1.1.3
#
nat-policy interzone dmz untrust inbound
 policy 1
  action source-nat
  policy destination 10.1.1.3 0  //由於防火牆先做NAT Server轉換,再做源NAT轉換,所以此處的目的IP是NAT Server轉換后的IP
  address-group 1
這里NAT Server的配置和以前見過的類似,但是源NAT的配置和以前見過的不一樣:以前地址池中配置的都是公網地址,而這次配置的卻是私網地址。
我們通過下圖再來看一下報文的地址轉換過程:PC訪問server的流量經過防火牆時,目的地址(server的公網地址)通過NAT Server轉換為私網地址,源地址(PC的公網地址)通過NAT Inbound也轉換為私網地址,且和server的私網地址同網段,這樣就同時轉換了報文的源地址和目的地址,即完成了雙向NAT轉換。當server的回應報文經過防火牆時,再次做雙向NAT轉換,報文的源地址和目的地址均轉換為公網地址。

從PC上ping server,通過防火牆上的會話表和Server-map表可以更清楚的看到雙向NAT轉換:PC的地址通過NAT Inbound轉換為私網地址,而server的地址也按照NAT Server的Server-map表轉換為私網地址。

好了,我們回過頭來看為什么要配置NAT Inbound吧。如果不配置NAT Inbound,行不行?行!不配置NAT Inbound並不影響PC訪問server。那配置NAT Inbound有什么好處?好處就是server上可以不用設置網關,當然,前提條件是地址池中的地址需要和server的私網地址同網段。當server回應PC時,server發現自己的地址和目的地址在同一網段,這時server就不會去查路由,而是發送ARP廣播報文詢問目的地址對應的MAC地址。由於目的地址是地址池中的地址,所以他沒有對應的MAC地址,但是防火牆此時挺身而出,防火牆將自己與server直連接口的MAC地址發給server,告訴server“把回應報文給我吧”,所以回應報文將轉發到防火牆上。由於server回應報文是通過二層轉發,而不是三層轉發,所以server上不用配置網關。也許有人說“配置網關還是挺方便的,不用配置NAT Inbound這么麻煩吧”如果只有一台服務器時,的確感受不到有什么好處,但是如果有幾十台甚至上百台服務器需要配置或修改網關時,我們就會發現配置NAT Inbound是多么方便了。
如果對之前的組網做一點改變,增加一個Trust區域,該域內的PC2要訪問server時,我們該如何配置雙向NAT呢?和之前相比,報文的源地址所在安全域發生了變化,原來是Untrust域到DMZ域的報文(Inbound方向),現在變成了Trust域到DMZ域的報文(Outbound方向),所以雙向NAT也變化為NAT Outbound+NAT Server,它的轉換原理和NAT Inbound+NAT Server完全一樣,只不過源NAT的轉換方向發生了改變而已。

 

2、域內NAT+NAT Server
域內NAT的場景多見於小型網絡,如下圖中的PC和server通過交換機與防火牆相連,管理員在規划網絡時“偷懶”,將PC和server置於同一安全區域,並分配相同網段地址。

此時,如果希望PC像外網用戶一樣通過公網地址訪問server,就要在防火牆上配置NAT Server。到此就配置完了嗎?我們通過下圖來看看吧:如果只配置了NAT Server,報文到達防火牆后轉換目的地址,server回應報文時發現自己的地址和目的地址在同一網段,這就和之前分析的組網是同樣情況了――server通過二層轉發報文,回應報文經交換機直接轉發到PC,不會經過防火牆轉發!

所以,如果希望提高內網的安全性,讓回應報文也經過防火牆,就需要配置域內NAT。下面列出了關鍵的配置步驟。地址池中的地址可以是公網地址,也可以是私網地址,關鍵是不能和server的私網地址在同一網段。域內NAT的配置和域間NAT幾乎完全一樣,只不過前者應用在域內做NAT轉換,后者應用在域間做NAT轉換。
例2 配置域內NAT+NAT Server
#
 nat address-group 1 210.1.1.20 210.1.1.20
 nat server 0 global 210.1.1.15 inside 10.1.1.3
#
nat-policy zone trust  //注意是域內NAT
 policy 1
  action source-nat
  policy destination 10.1.1.3 0  //此處的目的IP是NAT Server轉換后的IP
  address-group 1
從PC上ping server,通過防火牆上的會話表和Server-map表可以看到:PC的地址通過域內NAT轉換為公網地址,server的地址按照NAT Server的Server-map表轉換為私網地址。雙向NAT轉換后,server回復報文時發現自己的地址和目的地址不在同一網段,此時就需要查路由,通過三層轉發報文,所以回應報文需經過防火牆轉發。

如果在上面組網的基礎上做一個變化,將PC和server分開,通過不同的接口和防火牆相連,此時應該如何配置雙向NAT呢?在這個組網中所有報文都需要經過防火牆轉發,只配置NAT Server是可以的。如果要配置雙向NAT,那么就是域內NAT+NAT Server,具體配置方法和上面是類似的,此處就不再介紹了。

其實雙向NAT的原理和配置並不復雜,關鍵是要想明白NAT轉換的方向和轉換后地址的作用,而不要糾結於轉換后是公網地址還是私網地址。雙向NAT並不是必配的功能,有時只配置源NAT或NAT Server就可以達到同樣的效果,但是靈活應用雙向NAT可以起到簡化網絡配置、方便網絡管理的作用,也就達到了一加一大於二的效果!

 

強叔提問:
對於域內NAT,是否需要配置安全策略?如果不配置,且關閉缺省包過濾,PC能否成功訪問server?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM