姜貴平 張 松 楊傳棟 王 魯
1.山東農業(yè)大學 山東泰安 271018 2.中共濱州市委宣傳部互聯網信息研究中心 山東濱州 256603
網絡地址轉換技術原理探析
姜貴平1張 松2楊傳棟1王 魯1
1.山東農業(yè)大學 山東泰安 271018 2.中共濱州市委宣傳部互聯網信息研究中心 山東濱州 256603
通過具體的網絡拓撲結構圖,展現了NAT設備對特定數據報進行網絡地址轉換處理的全過程。
網絡地址轉換;重疊網絡;技術原理
隨著因特網的飛速發(fā)展,因特網上豐富的資源吸引著越來越多的用戶接入因特網,但在快速發(fā)展過程中卻出現了幾個問題,阻礙我們對因特網的正常使用。隨著因特網的膨脹式發(fā)展,IPv4協議規(guī)定的32位IP地址資源越來越少。因特網中基于IP地址的惡意攻擊嚴重威脅著因特網用戶,特別是對外提供服務的網絡服務器的使用安全。對于網絡服務器來說,要接受數量巨大的連接請求,單臺計算機不可能負載如此大的流量,為了保證網絡服務的暢通,必須多臺計算機對連接請求進行負載均衡,同時也起到了冗余備份的目的。網絡地址轉換技術的產生解決了上述問題。
網絡地址轉換(Network Address Translation,NAT)是一種網絡層技術,并具有擴展到傳輸層的特性。NAT設備通過動態(tài)改變通過它的數據報的源IP地址和(或)目的IP地址,將內部網絡中使用的私有IP地址和在因特網上使用的公有IP地址進行轉換,達到將內部網絡接入因特網的目的。NAT轉換有3種方式:靜態(tài)方式(Static NAT)、動態(tài)方式(Pooled NAT)和端口方式(Port NAT)。
網絡地址轉換技術原理可以通過下面4個過程展現出來。
1.1 內部地址翻譯(Translation Inside Local Address)
當內部網絡與外部網絡通訊時,需要配置NAT,將內部私有IP地址轉換成外部合法IP地址。內部地址翻譯的整個過程如圖1所示。
圖1 內部地址翻譯
當內部網絡中一臺主機訪問外部網絡資源時,詳細過程描述如下:
(1)內部主機192.168.1.2發(fā)起一個到外部主機202.194.133.1的連接。
(2)當路由器(NAT設備)接收到以192.168.1.2為源地址的第一個數據報時,引起路由器檢查NAT映射表:
①如果配置有關于該地址的靜態(tài)映射時,就執(zhí)行第三步。
②如果沒有靜態(tài)映射,就建立動態(tài)映射,路由器就從內部全局地址池中選擇一個有效的內部全局地址,并在NAT映射表中創(chuàng)建NAT轉換記錄。這種記錄叫做基本記錄。
(3)路由器用192.168.1.2對應的NAT轉換記錄中的內部全局地址,替換數據報源地址,經過轉換后,數據報的源地址變?yōu)?02.194.141.1,然后轉發(fā)該數據報。
(4)外部主機202.194.133.1接收到數據報后,將向主機202.194.141.1發(fā)送響應包。
(5)當路由器接收到目的地址為內部全局地址202.194.141.1的數據報時,將以內部全局地址為關鍵字查找NAT映射表,根據找到的基本記錄將數據報的目的地址轉換成192.168.1.2并轉發(fā)給主機192.168.1.2。
(6)主機192.168.1.2接收到應答包,并繼續(xù)保持會話。第一步到第五步將一直重復,直到會話結束。
當內部網絡中某臺主機對外提供網絡服務時,網絡管理員必須手動建立靜態(tài)NAT,以方便外部主機主動訪問服務器。
1.2 內部全局地址復用(Overloading Inside Global Address)
在內部全局地址復用操作中,NAT設備使用“內部全局地址+TCP/UDP端口號”的形式來區(qū)分不同的內部主機。這也是所謂的“端口地址轉換(PAT,Port Address Translation)”技術。
內部全局地址復用的整個過程如圖2所示。詳細過程描述如下:
圖2 內部全局地址復用
(1)內部主機192.168.1.2發(fā)起一個到外部主機202.194.133.1的連接。
(2)當路由器接收到以192.168.1.2為源地址的第一個數據報時,引起路由器檢查NAT映射表:
①如果NAT沒有轉換記錄,路由器就為192.168.1.2作地址轉換,并創(chuàng)建一條轉換記錄。
②如果啟用了PAT,就進行另外一次轉換,路由器將復用全局地址并保存足夠的信息以便能夠將全局地址轉換回本地地址。PAT的地址轉換記錄稱為擴展記錄。
(3)路由器用內部本地地址192.168.1.2對應的NAT轉換記錄中的內部全局地址,替換數據報源地址,經過轉換后,數據報的源地址變?yōu)?02.194.141.1,然后轉發(fā)該數據報。
(4)外部主機202.194.133.1接收到數據報后,將向202.194.141.1發(fā)送響應包。
(5)當路由器接收到內部全局地址的數據報時,將以內部全局地址202.194.141.1及其端口號、外部全局地址及其端口號為關鍵字查找NAT映射表,根據NAT映射表中的擴展記錄將數據報的目的地址轉換成192.168.1.2,并轉發(fā)數據報給192.168.1.2。
(6)192.168.1.2接收到應答包,并繼續(xù)保持會話。第一步到第五步將一直重復,直到會話結束。
圖2中,外部主機202.194.133.1以為是在跟同一臺主機通信,實際上是分別與內部網絡兩臺地址不同的主機通信,它們的內部本地地址分別為192.168.1.2和192.168.1.3。
1.3 TCP負載重分配(TCP Load Distributing)
NAT設備創(chuàng)建一臺虛擬主機對外提供TCP服務,該虛擬主機(分配有內部全局地址)對應內部多臺實際的主機,當外部主機向虛擬主機通訊時,NAT設備接受外部主機的連接請求,并依據NAT映射表建立與內部主機的連接,把來自外部網絡的數據報的目的地址(內部全局地址)按照輪詢的原則轉換成不同的內部本地地址,將TCP請求定位到不同的內部主機,達到負載分流的目的。
TCP負載重分配的整個過程如圖3所示。
圖3 TCP負載重分配
圖3中,實際提供TCP服務的主機有兩臺,地址分別為192.168.1.2和192.168.1.3,對外公布了一個虛擬主機地址202.194.141.1,外部網絡通過虛擬主機地址202.194.141.1訪問TCP服務。以下為NAT設備實現TCP負載重分配過程的詳細描述:
(1)外部主機202.194.133.1向虛擬主機202.194.141.1發(fā)起FTP連接服務。
(2)路由器(NAT設備)接收到FTP連接請求包,建立一個NAT轉換記錄,為內部全局地址202.194.141.1分配一個內部實際主機地址192.168.1.2。
(3)路由器用實際的內部主機地址192.168.1.2替換數據報的目的地址,然后將數據報轉發(fā)到實際主機192.168.1.2。
(4)實際主機192.168.1.2接收到該數據報并發(fā)送應答包。
(5)路由器接收到應答包,以內部本地地址及端口號和外部全局地址及端口號為關鍵字,在NAT映射表查找匹配轉換記錄。然后將數據報的源地址轉換為虛擬主機地址,并轉發(fā)數據報。
(6)如果再來一個TCP連接請求,路由器將按照輪詢分配方式將192.168.1.3的地址作為內部本地地址,替換數據報的目的地址,將該連接請求定位到實際主機192.168.1.3,并建立一個不同的NAT轉換記錄,從而達到負載均衡的目的。
1.4 處理重疊網絡(Handing Overlapping Networks)
兩個需要互聯的私有網絡分配了同樣的IP地址,或者一個私有網絡和公有網絡分配了同樣的全局IP地址,這種情況稱為地址重疊。兩個重疊地址的網絡主機之間是不可能通信的,因為它們相互認為對方的主機在本地網絡中。
NAT設備如何對重疊地址網絡進行地址轉換的整個過程如圖4所示。
圖4 處理重疊網絡
詳細過程描述如下:(1)內部主機192.168.1.2通過FTP遠程登錄主機sdau.edu.cn,首先向DNS服務器202.194.133.1發(fā)送地址解析請求。該過程包含了內部源地址轉換:192.168.1.2→202.194.141.1。
(2)路由器截獲DNS應答包,應答包中包含外部主機sdau.edu.cn對應的IP地址192.168.1.5。路由器檢查應答包中解析后返回的IP地址是否屬于重疊地址(即與內部網絡地址相同)。如果是重疊地址,就進行地址轉換,圖4中將192.198.1.5轉換成172.16.198.2,然后將DNS響應包發(fā)送給內部網絡主機192.168.1.2。
(3)內部主機192.198.1.2獲知sdau.edu.cn主機的IP地址為172.16.198.2,就向172.16.198.2的TCP 21號端口發(fā)送連接請求包。請求包的源地址是192.168.1.2,目的地址是172.16.198.2。
(4)路由器接收到該TCP連接請求包,就建立轉換映射記錄,內部本地地址為192.198.1.2,內部全局地址為202.194.141.1,外部本地地址為172.16.198.2,外部全局地址為192.198.1.5。
(5)根據NAT映射記錄,將數據報的源地址轉換為202.194.141.1,目標地址置換為192.198.1.5,然后將數據報發(fā)送給外部主機192.198.1.5。
(6)外部主機sdau.edu.cn接收到數據報,發(fā)送確認包給內部主機。第一步到第六步將一直重復,直到會話結束。
通過對網絡地址轉換技術原理的學習可以看到,NAT技術不僅完美地解決了IPv4協議中IP地址不足的問題,而且還能有效避免來自外部網絡的攻擊,隱藏并保護內部網絡中的計算機;同時NAT技術還可以實現TCP流量的負載均衡,對于Web,FTP服務器等需要處理大量連接請求的服務器來說,保證了網絡服務的暢通,不失為一種很好的解決途徑。對于在大型局域網中常見的重疊網絡地址問題,NAT技術也提供了很好的解決方案,通過在路由器上配置NAT就可以實現擁有重疊地址的兩個網絡的正常訪問。正因為NAT技術擁有上述功能,即便IPv6協議全面應用,NAT技術也不會就此被淘汰。
[1] 姜貴平,武裝,姜貴君,等.局域網組建與管理實訓教程[M].北京:清華大學出版社,2007
[2] 吳企淵.計算機網絡(第2版)[M].北京:清華大學出版社,2004
[3] 福建星網銳捷網絡有限公司網絡大學.實用網絡技術配置指南進階篇[M].北京:北京希望電子出版社,2005
[4] Cisco System公司Cisco Networking Academy Program著.天津大學,電子科技大學,中山大學譯.Cisco Networking Academy Program CCNA 3 and 4[M].北京:人民郵電出版社,2005
[5] 姜貴平,姜貴君,張松,等.網絡地址轉換技術實驗的設計與實現[J].實驗科學與技術,2008,6(3):54~58
[6] 劉風華,丁賀龍,張永平.關于NAT技術的研究與應用[J].計算機工程與設計,2006,27(10):1814~1817
An analysis of the principle of network address translation technology
Jiang Guiping1, Zhang Song2, Yang Chuandong1, Wang Lu1
1.Shandong agricultural university, Taian, 271018, China 2. The internet information research centre ,the public information department, municipal party committee, the CPC, Binzhou city, Binzhou, 256603, China
The article took the form of texts and pictures to reveal the process that NAT device carries out the network address translation for specif c data gram with an aid of concrete topology maps of network.
network address translation; overlapping networks; technical principle
2011-04-19 稿件編號:1104109
姜貴平,本科,實驗師。