網(wǎng)絡(luò)地址轉(zhuǎn)換原理
網(wǎng)絡(luò)地址轉(zhuǎn)換原理及其配置實(shí)例發(fā)表時間:2010-1-4 王茂芝 郭科 來源:萬方數(shù)據(jù)關(guān)鍵字:網(wǎng)絡(luò)模型 尋址 網(wǎng)絡(luò)地址轉(zhuǎn)換 網(wǎng)絡(luò)連接介紹了網(wǎng)絡(luò)分層模型。闡述了不同層次尋址的概念和內(nèi)容以及具體實(shí)施過程。指
網(wǎng)絡(luò)地址轉(zhuǎn)換原理及其配置實(shí)例
發(fā)表時間:2010-1-4 王茂芝 郭科 來源:萬方數(shù)據(jù)
關(guān)鍵字:網(wǎng)絡(luò)模型 尋址 網(wǎng)絡(luò)地址轉(zhuǎn)換 網(wǎng)絡(luò)連接
介紹了網(wǎng)絡(luò)分層模型。闡述了不同層次尋址的概念和內(nèi)容以及具體實(shí)施過程。指出了網(wǎng)絡(luò)地址轉(zhuǎn)換NA T 技術(shù)的核心思想是以端口空間換地址空聞,并詳細(xì)解釋了NAT 技術(shù)的原理和實(shí)施過程。最后給出了一個基于NA T 技術(shù)的配置實(shí)例。
1 引言
隨著計(jì)算機(jī)的普及以及Internet 應(yīng)用的推廣,越來越多的計(jì)算機(jī)通過各種方式接入到Internet 中。但現(xiàn)行Internet 的IP 地址(IPv4)采用的是32位的編址方式,從而導(dǎo)致口地址的分配面臨“枯竭”的危險。針對這一潛在威脅,現(xiàn)已采用了一系列的補(bǔ)救措施。其中最徹底的措施是把IPv4升級為IPv6,使地址空間從32位擴(kuò)充為128位。還有就是基于網(wǎng)絡(luò)私有地址劃分的代理(Proxy)技術(shù)和網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translator,NA T) 技術(shù)心。對一個局域網(wǎng)而言,使用這兩種技術(shù),理論上只需為其分配一個可路由的IP 地址,就可實(shí)現(xiàn)全網(wǎng)絡(luò)機(jī)器接入并訪問Internet ,從而達(dá)到節(jié)約IP 地址的目的。其中,代理技術(shù)是一種應(yīng)用級的解決方案:由于此時網(wǎng)絡(luò)活動的每個報(bào)文,都要從物理層一直上升到應(yīng)用層才能得到處理,所以延時大,效率和通用性較差;而NA T 技術(shù)則是應(yīng)用層以下的解決方案,所以性能和通用性較好。
本文在給出網(wǎng)絡(luò)分層模型和尋址的概念后,探討NAT 技術(shù)的原理,并給出了一個配置實(shí)例。為實(shí)驗(yàn)室網(wǎng)絡(luò)維護(hù)與管理提供了借鑒和參考。
2網(wǎng)絡(luò)分層模型與尋址
基于TCP /IP 技術(shù)的Internet 網(wǎng)絡(luò)分層模型如圖1所示。需要說明的是,關(guān)于TCP /IP 的層次結(jié)構(gòu)模型有些文獻(xiàn)中分為4層:應(yīng)用層、傳輸層、IP 層(互聯(lián)網(wǎng)層) 、網(wǎng)絡(luò)接口層。本文把網(wǎng)絡(luò)接口層分成網(wǎng)絡(luò)接口和物理硬件2部分(見圖1) 。
TCP /IP 模型這種概念分層包含了2個重要的分界線:(1)協(xié)議地址分界線,用以區(qū)分高層和低層的尋址。具體地講就是高層用IP 地址,而低層用的是物理(MAC)地址;(2)操作系統(tǒng)分界線,用以區(qū)分系統(tǒng)程序和應(yīng)用程序。具體講就是傳輸層以上的為應(yīng)用程序,以下的通常為系統(tǒng)程序。應(yīng)用程序通過一種所謂的端口機(jī)制(Socket機(jī)制) 訪問操作系統(tǒng)的內(nèi)容。
除了把口地址映射為物理地址的過程稱為尋址外,我們把端口的確定、域名和IP 地址轉(zhuǎn)換以及IP 地址和物理(MAC)地址的轉(zhuǎn)換都稱為尋址。在這種廣義尋址概念下,尋址就包括3方面的內(nèi)容:(1)應(yīng)用層中的應(yīng)用程序訪問傳輸層時端口的確定;(2)在域名系統(tǒng)(Domain Name System,DNS) 哺1解析出網(wǎng)絡(luò)域名對應(yīng)的IP 地址后,IP 層根據(jù)目的機(jī)器IP 地址進(jìn)一步確定傳送分組時的路由;(3)在利用低層通信鏈路傳送信息時,實(shí)現(xiàn)口地址和物理地址的轉(zhuǎn)換工作。
為此,首先需要明確以下3點(diǎn):(1)在TCP /IP 構(gòu)架下,端口和應(yīng)用是對應(yīng)的,如文件傳輸應(yīng)用(ftp)和端口20與2l 對應(yīng),網(wǎng)頁瀏覽服務(wù)(ht—tp) 和端口80對應(yīng),遠(yuǎn)程登錄(telnet)和端口23對應(yīng)等;(2)IP地址通常和機(jī)器(的連接) 對應(yīng),也就是說,給定一個IP 地址,可以唯一地確定和某臺機(jī)器相連的一個連接,從而進(jìn)一步確定某臺機(jī)器(可以認(rèn)為IP 地址和機(jī)器之間建立了對應(yīng)關(guān)系) ;(3)物理(MAC)地址通常和實(shí)施底層通信的具體物理硬件設(shè)備(如網(wǎng)卡或其他網(wǎng)絡(luò)接口設(shè)備) 聯(lián)系。
這樣,作為端口機(jī)制(在操作系統(tǒng)中通常以Socket 套接字方式予以實(shí)現(xiàn)) 就可實(shí)現(xiàn)應(yīng)用層訪問傳輸層時端口的確定,完成端口的尋址工作;DNS 解析出網(wǎng)絡(luò)域名對應(yīng)機(jī)器的IP 地址,定位該機(jī)器,然后IP 層的路由算法用來確定分組的投遞方向,完成IP 地址的尋址工作;另外,地址轉(zhuǎn)換協(xié)議(Address Resolution Protocol,An_P)用來實(shí)現(xiàn)把IP 地址映射為物理(MAC)
,地址的過程,反向地址轉(zhuǎn)換協(xié)議(Reverse AddressResolution Protocol,RASP) 用來實(shí)現(xiàn)物理地址映射為IP 地址的過程。通過這兩個協(xié)議實(shí)現(xiàn)IP 地址和物理地址的相互映射,完成物理地址的尋址工作,并進(jìn)一步實(shí)現(xiàn)底層鏈路的數(shù)據(jù)通信。
圖1 網(wǎng)絡(luò)分層模型與尋址
3 網(wǎng)絡(luò)地址轉(zhuǎn)換原理
網(wǎng)絡(luò)地址轉(zhuǎn)換指的是NAT ,而不是ASP 或RARP 。在上述TCP /IP 分層模型構(gòu)架下,1個網(wǎng)絡(luò)通信連接由五元組構(gòu)成,即源IP 地址,源端口,目的IP 地址,目的端口,協(xié)議類型。1臺參與通信的主機(jī)可以同時建立的連接數(shù)取決于協(xié)議端口號。在IPv4中,協(xié)議端口號為16 bit ,所以可建立的連接數(shù)最多為。一般情況下,1臺主機(jī)并發(fā)的網(wǎng)絡(luò)連接數(shù)遠(yuǎn)小于216個。根據(jù)統(tǒng)計(jì),1臺普通客戶機(jī)并發(fā)網(wǎng)絡(luò)連接一般為5—50個,而一般的服務(wù)器為50—500個。這樣,如果能夠充分利用協(xié)議端口,就可以使1個IP 地址給很多主機(jī)同時使用。以端口空間換地址空間,這就是NA T 的核心思想。下面通過一個實(shí)例解釋“以端口空間換地址空間的思想”以及NA T 的操作過程。如圖2所示,有1個內(nèi)部局域網(wǎng)絡(luò)(172.20.x .x) 使用的是私有IP 地址(172.20.130.x) ,通過1個NAT 網(wǎng)關(guān)和外部Inter —net 相連。其中,NAT 網(wǎng)關(guān)有兩個接口,一個和內(nèi)部網(wǎng)絡(luò)相連,其接口IP 為172.20.130.168;另一個接I :1和外部網(wǎng)絡(luò)相連,其接口IP 為202.1 15.143.16。在這種結(jié)構(gòu)下,只要配置好NAT 網(wǎng)關(guān),就可實(shí)現(xiàn)內(nèi)部局域網(wǎng)絡(luò)(172.20.L X)所有機(jī)器(其私有IP 地址為:172.20.130.x) 通過1個外部IP 地址(即NAT 網(wǎng)關(guān)和外部網(wǎng)絡(luò)相連的IP 地址:202.115.143.16) 接入Internet 的效果。
如圖2所示,假設(shè)機(jī)器172.20.130.1通過http 向機(jī)器202.115.128.33發(fā)送一個網(wǎng)頁服務(wù)(www)請求。此時網(wǎng)絡(luò)連接對應(yīng)的五元組為(172.20.130.1,Source —Port —AA ,202.115.128.33,80,TCP) ,假定此連接源機(jī)器端口為AA ,并且協(xié)議類型為傳輸層的TCP 而不是應(yīng)用層的http 。
圖2 NAT 網(wǎng)絡(luò)連接示意圖
由于源IP 是一個不可路由的私有IP ,只能在局域網(wǎng)內(nèi)部使用,所以,如果此時五元組不做任何修改的話,那么此網(wǎng)絡(luò)連接返回的信息將不可達(dá)。實(shí)際情況是:在網(wǎng)絡(luò)傳送分組經(jīng)過NAT 網(wǎng)關(guān)時,NAT 網(wǎng)關(guān)要對分組報(bào)頭控制信息做修改(主要是對IP 地址、端口號以及校驗(yàn)和3項(xiàng)進(jìn)行修改) 。表1顯示了局域網(wǎng)內(nèi)部1臺主機(jī)向外部互聯(lián)網(wǎng)某一機(jī)器發(fā)送www 請求以及外部主機(jī)對其請求進(jìn)行響應(yīng)時,2個不同方向分組信息傳送過程網(wǎng)絡(luò)連接五元組數(shù)值在經(jīng)過NAT 網(wǎng)關(guān)前后的調(diào)整情況。從表1可以發(fā)現(xiàn):內(nèi)網(wǎng)主機(jī)對于外網(wǎng)是不可見的,外網(wǎng)看到的只是NAT 網(wǎng)關(guān)。這一點(diǎn)可以從對www 的請求對應(yīng)的網(wǎng)絡(luò)連接五元組的目的IP 地址清楚地得到反映。
既然內(nèi)網(wǎng)主機(jī)對于外網(wǎng)是不可見的,那么信息是如何傳送回發(fā)起請求的源內(nèi)網(wǎng)主機(jī)呢? 這是通過NAT 網(wǎng)關(guān)設(shè)備保留一個如表2所示的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)的。具體就是:產(chǎn)生響應(yīng)的主機(jī)先把信息傳送回NA T 網(wǎng)關(guān),NAT 網(wǎng)關(guān)根據(jù)此時五元組的目的端口號(為NAT 全局端口號) 查表2所示的數(shù)據(jù)結(jié)構(gòu),得到源內(nèi)網(wǎng)主機(jī)IP 和源端口號,從而修改五元組的數(shù)值(見表
1) 把數(shù)據(jù)從NAT 網(wǎng)關(guān)發(fā)送回源內(nèi)網(wǎng)主機(jī)相應(yīng)的端口(應(yīng)用) ,這樣就完成了整個網(wǎng)絡(luò)活動。從表2可見,NAT 網(wǎng)關(guān)設(shè)備中的全局端口號是非常關(guān)鍵的,因?yàn)檎峭ㄟ^它才實(shí)現(xiàn)了內(nèi)網(wǎng)主機(jī)IP 和源端口號與外網(wǎng)主機(jī)IP 和目的端口號之間的映射關(guān)系,這也正是“以端口空間(NAT網(wǎng)關(guān)的全局端口) 換地址空間(內(nèi)網(wǎng)所有主機(jī)IP 地址)”思想的體現(xiàn)。
表1 2個不同方向上網(wǎng)絡(luò)連接(請求和響應(yīng)) 五元組在經(jīng)過NAT 網(wǎng)關(guān)前后時的變化值
表2 NAT網(wǎng)關(guān)中保留的內(nèi)網(wǎng)IP 和源端口號與外網(wǎng)IP 和目的端口號的映射關(guān)系
4 基于NAT 技術(shù)的配置實(shí)例
一個在Linux 環(huán)境下基于NA T 技術(shù)的配置實(shí)例已在筆者所在實(shí)驗(yàn)室通過測試且運(yùn)行穩(wěn)定。其中,內(nèi)網(wǎng)主機(jī)136臺,只搭配一臺NA T 服務(wù)器和占用1個外部可路由IP 。NAT 網(wǎng)
,關(guān)設(shè)備所處的網(wǎng)絡(luò)環(huán)境如圖2所示。并且假定NA T 網(wǎng)關(guān)與外部網(wǎng)絡(luò)互連的網(wǎng)卡名為ethO 。
如果eth0對應(yīng)IP 地址是通過動態(tài)方式獲得,配置如下:
其中語句1:打開口轉(zhuǎn)發(fā)功能,語句2:裝載nat 模塊,語句3和4:保證在應(yīng)用NAT 技術(shù)時ftp 操作的順利進(jìn)行,語句5:清空nat 表中的所有規(guī)則,語句6和7:配置NAT 轉(zhuǎn)發(fā)功能。語句6和語句7的區(qū)別在于一個針對的是動態(tài)IP ,而另一個則是靜態(tài)IP 。每個語句的細(xì)節(jié)限于篇幅在此不作詳細(xì)介紹,有興趣的讀者可以參閱Linux 相關(guān)書籍。 5 結(jié)論
NAT 技術(shù)是一種實(shí)用性較強(qiáng)并且經(jīng)過了實(shí)踐檢驗(yàn)的比較成熟的技術(shù),它能較好地解決部分單位IP 地址短缺的問題。特別是由于它能完全隱藏內(nèi)網(wǎng)信息,并保持較高的吞吐量和較低的延遲,因此它經(jīng)常和包過濾技術(shù)相結(jié)合并成為新一代防火墻構(gòu)筑的基礎(chǔ)。它的不足之處在于仍有部分應(yīng)用需要特殊處理才能通過NA T 。