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