NAT 网络地址转换技术(一)NAT原理介绍:静态NAT、动态NAT、NAPT、Easy IP、NAT ALG、NAT服务器、双向NAT技术
文章目錄
- 出現原因
- 基本概念
- NAT技術基本原理
- 源NAT技術
- 靜態NAT
- 動態NAT
- NAPT
- Easy IP
- NAT ALG
- NAT服務器
- 雙向NAT技術
- 域間雙向NAT(NAT Server+源NAT)
- 域內雙向NAT
出現原因
由于互聯網快速發展,以及IPv4地址規劃不合理的問題,導致了IPv4地址短缺。為了解決由于IPv4地址短缺問題,有以下幾種解決方法:
但是由于從IPv4到IPv6技術的遷移,需要非常多的時間,以及IPv6技術相對于IPv4不成熟等問題,目前IPv6并沒有得到廣泛的應用。所以NAT這種臨時解決方案顯得尤為重要。
基本概念
NAT:
Network Address Translation,網絡地址轉換技術。是將私網地址與公網地址進行轉換,實現私網用戶能在公網上通信。
優點:
缺點:
限制某些具體應用
由于需要對數據報文進行IP地址的轉換,涉及IP地址的數據報文的報頭不能被加密。在應用協議中,如果報文中有地址或端口需要轉換,則報文不能被加密。例如,不能使用加密的FTP連接,否則FTP的port命令不能被正確轉換。
網絡監控難度大
網絡監管變得更加困難。例如,如果一個黑客從內網攻擊公網上的一臺服務器,那么要想追蹤這個攻擊者很難。因為在報文經過NAT轉換設備的時候,地址經過了轉換,不能確定哪臺才是黑客的主機。
NAT一般配置在網絡路由器或防火墻上。
NAT技術基本原理
源NAT技術
靜態NAT
靜態NAT實現了私有地址和公有地址的一對一映射。如果希望一臺主機優先使用某個關聯地址,或者想要外部網絡使用一個指定的公網地址訪問內部服務器時,可以使用靜態NAT。但是在大型網絡中,這種一對一的IP地址映射無法緩解公用地址短缺的問題。、
如上圖,源地址為192.168.1.1的報文需要發往公網地址100.1.1.1。在網關RTA上配置了一個私網地址192.168.1.1到公網地址200.10.10.1的映射。當網關收到主機A發送的數據包后,會先將報文中的源地址192.168.1.1轉換為200.10.10.1,然后轉發報文到目的設備。目的設備回復的報文目的地址是200.10.10.1。當網關收到回復報文后,也會執行靜態地址轉換,將200.10.10.1轉換成192.168.1.1,然后轉發報文到主機A。和主機A在同一個網絡中其他主機,如主機B,訪問公網的過程也需要網關RTA做靜態NAT轉換。
注意:
- 靜態NAT實現了私有地址和共有地址一對一的映射(一個私有地址對應一個共有地址),并沒有做到緩解地址短缺的問題,只是做到了地址轉換。
- 一個公網地址只會分配給唯一且固定的內網地址(相當于上圖主機A綁定了兩個地址)
動態NAT
動態NAT通過使用地址池來實現。
如上圖,當內部主機A和主機B需要與公網中的目的主機通信時,網關RTA會從配置的公網地址池中選擇一個未使用的公網地址與之做映射。每臺主機都會分配到地址池中的一個唯一地址。當不需要此連接時,對應的地址映射將會被刪除,公網地址也會被恢復到地址池中待用。當網關收到回復報文后,會根據之前的映射再次進行轉換之后轉發給對應主機。
注意:
- 動態NAT實際上實現的還是私有地址和公有地址一對一的關系,但是共有地址不再綁定給特定的內網地址。實現了一定程度的緩解地址短缺問題。
- 動態NAT地址池中的地址用盡以后,只能等待被占用的公用IP被釋放后,其他主機才能使用它來訪問公網。
NAPT
NAPT:Network Address Port Translation 網絡端口地址轉換技術
如上圖,RTA收到一個私網主機發送的報文,源IP地址是192.168.1.1,源端口號是1025,目的IP地址是100.1.1.1,目的端口是80。RTA會從配置的公網地址池中選擇一個空閑的公網IP地址和端口號,并建立相應的NAPT表項。這些NAPT表項指定了報文的私網IP地址和端口號與公網IP地址和端口號的映射關系。之后,RTA將報文的源IP地址和端口號轉換成公網地址200.10.10.1和端口號2843,并轉發報文到公網。當網關RTA收到回復報文后,會根據之前的映射表再次進行轉換之后轉發給主機A。主機B同理。
注意:
- NAPT技術允許多個內部地址映射到同一個公有地址的不同端口。
- NAPT實現了私有地址對共有地址多對一
Easy IP
- Easy IP本質上是NAPT(所以原理與NAPT大致相似)
- 由于網關設備出接口IP地址為公網地址,所以可以利用該出接口地址來作為地址轉換的公有地址。
Easy IP適用于小規模局域網中的主機訪問Internet的場景。小規模局域網通常部署在小型的網吧或者辦公室中,這些地方內部主機不多,出接口可以通過撥號方式獲取一個臨時公網IP地址。Easy IP可以實現內部主機使用這個臨時公網IP地址訪問Internet。
NAT ALG
NAT ALG(Application Level Gateway,應用級網關)是特定的應用協議的轉換代理,可以完成應用層數據中攜帶的地址及端口號信息的轉換。
在以太網數據幀結構中,IP首部包含32位的源IP地址和32位的目的IP地址,TCP首部包含16位的源端口號和16位的目的端口號。但是很多協議會通過IP報文的數據載荷進行新端口甚至新IP地址的協商。協商完成之后,通信雙方會根據協商結果建立新的連接進行后續報文的傳輸。而這些協商出來的端口和IP地址往往是隨機的,管理員并不能為其提前配置好相應的NAT規則,這些協議在NAT轉換過程中就會出現問題。
普通NAT實現了對UDP或TCP報文頭中的的IP地址及端口轉換功能,但對應用層數據載荷中的字段無能為力,在許多應用層協議中,比如多媒體協議(H.323、SIP等)、FTP、SQLNET等,TCP/UDP載荷中帶有地址或者端口信息,這些內容不能被NAT進行有效的轉換,就可能導致問題。而NAT ALG(Application Level Gateway,應用層網關)技術能對多通道協議進行應用層報文信息的解析和地址轉換,將載荷中需要進行地址轉換的IP地址和端口或者需特殊處理的字段進行相應的轉換和處理,從而保證應用層通信的正確性。
例如,FTP應用就由數據連接和控制連接共同完成,而且數據連接的建立動態地由控制連接中的載荷字段信息決定,這就需要ALG來完成載荷字段信息的轉換,以保證后續數據連接的正確建立。
為了實現應用層協議的轉發策略而提出了ASPF功能。ASPF功能的主要目的是通過對應用層協議的報文分析,為其開放相應的包過濾規則,而NAT ALG的主要目的,是為其開放相應的NAT規則。由于兩者通常都是結合使用的,所以使用同一條命令就可以將兩者同時開啟。
圖中私網側的主機要訪問公網的FTP服務器。NAT設備上配置了私網地址192.168.1.2到公網地址8.8.8.11的映射,實現地址的NAT轉換,以支持私網主機對公網的訪問。組網中,若沒有ALG對報文載荷的處理,私網主機發送的PORT報文到達服務器端后,服務器無法根據私網地址進行尋址,也就無法建立正確的數據連接。整個通信過程包括如下四個階段:
l
NAT服務器
使外網用戶能夠訪問私網服務器
一般采用靜態映射(NAT Server):公網地址和私網地址一對一進行映射。外網用戶想要訪問內網用戶只需要目的IP地址為設置好的公網地址。
為什么?:因為外網用戶訪問私網服務器,若不指定一個公網地址,則外網用戶不能訪問私網服務器;若不做靜態映射,沒有固定的公網地址,那么公網用戶訪問時需要每次都輸入不同的地址。
雙向NAT技術
雙向NAT應用場景的通信雙方訪問對方的時候目的地址都不是真實的地址,而是NAT轉換后的地址。
一般來說,內網屬于高優先級區域,外網屬于低優先級區域。當低優先級安全區域的外網用戶訪問內部服務器的公網地址時,會將報文的目的地址轉換為內部服務器的私網地址,但內部服務器需要配置到該公網地址的路由。
l如果要避免配置到公網地址的路由,則可以配置從低優先級安全區域到高優先級安全區域方向的NAT。同一個安全區域內的訪問需要作NAT,則需要配置域內NAT功能。
域間雙向NAT(NAT Server+源NAT)
當配置NAT Server時,服務器需要配置到公網地址的路由才可正常發送回應報文。如果要簡化配置,避免配置到公網地址的路由,則可以對外網用戶的源IP地址也進行轉換,轉換后的源IP地址與服務器的私網地址在同一網段。這樣內部服務器會缺省將回應報文發給網關,即設備本身,由設備來轉發回應報文。
域內雙向NAT
若需要地址轉換的雙方都在同一個安全域內,那么就涉及到了域內NAT的情況。當FTP服務器和用戶均在Trust區域,用戶訪問FTP服務器的對外的公網IP地址,這樣用戶與FTP服務器之間所有的交互報文都要經過防火墻。這時需要同時配置內部服務器和域內NAT。
域內NAT是指當內網用戶和服務器部署在同一安全區域的情況下,仍然希望內網用戶只能通過訪問服務器的公網地址的場景。在實現域內NAT過程中,既要將訪問內部服務器的報文的目的地址由公網地址轉換為私網地址,又需要將源地址由私網地址轉換為公網地址。
總結
以上是生活随笔為你收集整理的NAT 网络地址转换技术(一)NAT原理介绍:静态NAT、动态NAT、NAPT、Easy IP、NAT ALG、NAT服务器、双向NAT技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 报错记录-unpected width
- 下一篇: HTML5代码大全