陸軍,劉佳,楊俊葉
(石家莊理工職業(yè)學院,河北石家莊050228)
NAT技術(shù)的具體應用與實踐
陸軍,劉佳,楊俊葉
(石家莊理工職業(yè)學院,河北石家莊050228)
本文闡述了NAT技術(shù)產(chǎn)生的原因,分析了NAT的工作原理和類型,并舉例說明在思科路由器上如何配置網(wǎng)絡(luò)地址端口轉(zhuǎn)換,以實現(xiàn)局域網(wǎng)主機訪問互聯(lián)網(wǎng)上的服務(wù)器。
NAT;PAT;路由器
隨著網(wǎng)絡(luò)用戶的迅猛增長,IPv4的地址空間日趨緊張,在將地址空間從IPv4轉(zhuǎn)到IPv6之前,需要將日益增多的單位內(nèi)部網(wǎng)絡(luò)接入外部網(wǎng)。在申請不到足夠的公網(wǎng)IP地址的情況下,要使單位主機都能連接到Internet上,必須使用NAT技術(shù)。
NAT英文全稱是NetworkAddress Translation,稱為網(wǎng)絡(luò)地址轉(zhuǎn)換,它是一個IETF標準,允許一個用戶眾多的機構(gòu)僅用少量的公網(wǎng)地址連接到Internet上。
(1)內(nèi)部網(wǎng)絡(luò)(Inside):指那些由單位所擁有的網(wǎng)絡(luò),與NAT路由器上被定義為inside的接口相連接。
(2)外部網(wǎng)絡(luò)(Outside):指除了內(nèi)部網(wǎng)絡(luò)之外的所有網(wǎng)絡(luò),稱為Internet網(wǎng)絡(luò),與NAT路由器上被定義為outside的接口相連接。
(3)內(nèi)部本地地址(InsideLocalAddress):內(nèi)部網(wǎng)絡(luò)主機使用的IP地址。這些地址一般為私有IP地址,它們不能直接在Internet上路由,因而也就不能直接用于對Internet的訪問,必須通過網(wǎng)絡(luò)地址轉(zhuǎn)換,以合法的公網(wǎng)IP地址的身份來訪問Internet。
(4)內(nèi)部全局地址(InsideGlobal Address):內(nèi)部網(wǎng)絡(luò)使用的公有IP地址,這些地址是向ICANN申請才可取得的公有IP地址。當使用內(nèi)部本地地址的主機要與Internet通信時,NAT轉(zhuǎn)換時使用的地址。
(5)外部本地地址(OutsideLocal Address):外部網(wǎng)絡(luò)主機使用的IP地址,這些地址不一定是公有IP地址。
(6)外部全局地址(OutsideGlobal Address):外部網(wǎng)絡(luò)主機使用的IP地址。這些地址是全局可路由的公有IP地址。
NAT進行地址轉(zhuǎn)換的過程就是本地地址與全局地址之間的轉(zhuǎn)換過程,無論數(shù)據(jù)包是從內(nèi)部網(wǎng)絡(luò)發(fā)往外部網(wǎng)絡(luò),還是從外部網(wǎng)絡(luò)發(fā)往內(nèi)部網(wǎng)絡(luò)。不同的只是本地地址和全局地址所對應的網(wǎng)絡(luò)不同,以及數(shù)據(jù)包重新封裝的源和目的地址不同。
在轉(zhuǎn)換過程中,當數(shù)據(jù)包還在內(nèi)部網(wǎng)絡(luò)位置時有一個作為源地址的內(nèi)部本地地址和一個作為目的地址的外部本地地址。此數(shù)據(jù)包首先發(fā)往路由器連接內(nèi)部網(wǎng)絡(luò)的接口中。當數(shù)據(jù)包被轉(zhuǎn)發(fā)到外部網(wǎng)絡(luò)時,數(shù)據(jù)包的源地址就會轉(zhuǎn)變?yōu)閮?nèi)部全局地址,而目的地址被轉(zhuǎn)變?yōu)橥獠咳值刂贰R簿褪前褦?shù)據(jù)包的所有源和目的地址全部由本地地址轉(zhuǎn)換為全局地址。這個過程是通過NAT中的本地地址與全局地址映射條目來實現(xiàn)的,所以事先要在NAT路由器上配置這樣的映射條目。
相反,當數(shù)據(jù)包是從外部網(wǎng)絡(luò)位置發(fā)來,并且仍位于外部網(wǎng)絡(luò)中時,則它的源地址就是外部全局地址,目的地址就是內(nèi)部全局地址。相當于由內(nèi)部網(wǎng)絡(luò)向外部網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包時,外部網(wǎng)絡(luò)主機接收到的數(shù)據(jù)包中的源地址和目的地址的互換。而當數(shù)據(jù)包被路由器轉(zhuǎn)發(fā)到本地網(wǎng)絡(luò)時,源地址被轉(zhuǎn)變?yōu)橥獠勘镜氐刂罚康牡刂繁晦D(zhuǎn)變?yōu)閮?nèi)部本地地址,也相當于由內(nèi)部網(wǎng)絡(luò)向外部網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包時,內(nèi)部網(wǎng)絡(luò)主機發(fā)送的數(shù)據(jù)包中的源地址和目的地址的互換。
NAT有三種類型:靜態(tài)NAT(StaticNAT)、動態(tài)NAT(DynamicNAT)和網(wǎng)絡(luò)地址端口轉(zhuǎn)換PAT(PortAddressTranslation)。
(1)靜態(tài)地址轉(zhuǎn)換:局域網(wǎng)內(nèi)部的私網(wǎng)地址,一對一地映射為一個公網(wǎng)地址。
(2)動態(tài)地址轉(zhuǎn)換:有一個供轉(zhuǎn)換用的公網(wǎng)地址池,從地址池中選擇未用的公網(wǎng)地址,實現(xiàn)私網(wǎng)地址與公網(wǎng)地址間一對一對映射轉(zhuǎn)換。可提高公網(wǎng)地址的利用率。
(3)網(wǎng)絡(luò)地址端口轉(zhuǎn)換:用一個公網(wǎng)地址的一個端口來對應一個私網(wǎng)地址,從而建立起基于IP地址和端口的一一對應關(guān)系。對于一個公網(wǎng)IP地址,由于有6萬多個TCP端口,因此,理論上可代理6萬多臺使用私網(wǎng)地址的主機訪問因特網(wǎng)。但實際上,用戶訪問一個網(wǎng)站,通常要建立多個TCP連接,實際能代理的主機數(shù)通常為4000臺左右。
4.1 在思科路由器配置NAT的命令
在企業(yè)、學校的局域網(wǎng)訪問Internet時,廣泛使用的是網(wǎng)絡(luò)地址端口轉(zhuǎn)換,網(wǎng)絡(luò)地址端口轉(zhuǎn)換在思科路由器上配置的命令為:
ipnatinside|
ipnatoutside
ipnatpoolnamestart-ipend-ipnetmasknetmask
access-list access-list-numberpermitsource
source-wildcard
ipnatinsidesourcelistaccess–list-number pool
nameoverload
4.2 一個應用NAT配置的實例
網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖所示:

主機0的ip地址為:172.16.1.2/24默認網(wǎng)關(guān):172.16.1.1
主機1的ip地址為:172.16.1.3/24默認網(wǎng)關(guān):172.16.1.1。
主機2的ip地址為:172.16.1.4/24默認網(wǎng)關(guān):172.16.1.1。
服務(wù)器0的ip地址為:135.128.1.2/24默認網(wǎng)關(guān):135.128.1.1。
具體配置步驟如下:在路由器0上操作:
Router>en
Router#conf t
Router(config)#host A
A(config)#int f0/0
A(config-if)#ipadd 172.16.1.1 255.255.255.0
A(config-if)#noshut
A(config-if)#intf0/1
A(config-if)#ipadd 210.28.1.2 255.255.255.252
A(config-if)#noshut
A(config-if)#exit
A(config)#iproute 0.0.0.0 0.0.0.0 f0/1
A(config)#intf0/0
A(config-if)#ipnatinside
A(config-if)#intf0/1
A(config-if)#ipnatoutside
A(config-if)#exit
A(config)#ip nat pool jspinj 210.28.1.2 210.28.1.2
netmask 255.255.255.252
A(config)#acc 10 per 172.16.1.0 0.0.0.255
A(config)#ip nat inside source list 10 pool jspi-nj
overload
A(config)#end
A#wri
在路由器1上操作:
Router>en
Router#conf t
Router(config)#host B
B(config)#int f0/0
B(config-if)#ip add 135.128.1.1 255.255.255.0
B(config-if)#no shut
B(config-if)#int f0/1
B(config-if)#ip add 210.28.1.1 255.255.255.252
B(config-if)#no shut
B(config-if)#end
B#wri
用主機0訪問服務(wù)器0的內(nèi)容,在路由器0上執(zhí)行show ip nat translations可查看NAT轉(zhuǎn)換情況。
(1)NAT使得IP協(xié)議從面向無連接變成面向連接。NAT必須維護專用IP地址與公用IP地址以及端口號的映射關(guān)系。在TCP/IP協(xié)議體系中,如果一個路由器出現(xiàn)故障,不會影響到TCP協(xié)議的執(zhí)行。因為只要幾秒收不到應答,發(fā)送進程就會進入超時重傳處理。而當存在NAT時,最初設(shè)計的TCP/IP協(xié)議過程將發(fā)生變化,Internet可能變得比較脆弱。
(2)NAT違反了基本的網(wǎng)絡(luò)分層結(jié)構(gòu)模型的設(shè)計原則。因為在傳統(tǒng)的網(wǎng)絡(luò)分層結(jié)構(gòu)模型中,第N層是不能修改第N+1層的報頭內(nèi)容的。NAT破壞了這種各層獨立的原則。
(3)有些應用是將IP地址插入到正文的內(nèi)容中,例如標準的FTP協(xié)議與IPPhone協(xié)議H.323。如果NAT與這一類協(xié)議一起工作,那么NAT協(xié)議一定要做適當?shù)匦拚M瑫r,網(wǎng)絡(luò)的傳輸層也可能使用TCP與UDP協(xié)議之外的其他協(xié)議,那么NAT協(xié)議必須知道并且做相應的修改。由于NAT的存在,使得P2P應用實現(xiàn)出現(xiàn)困難,因為P2P的文件共享與語音共享都是建立在IP協(xié)議的基礎(chǔ)上的。
總的來說,NAT帶來了很大的優(yōu)越性,可以節(jié)約地址空間、可以簡化配置、使網(wǎng)絡(luò)規(guī)劃更靈活。但是,它對網(wǎng)絡(luò)應用帶來了一定的影響,也給網(wǎng)絡(luò)管理帶來了一定的復雜性,并且會潛在的影響網(wǎng)絡(luò)安全性,所以在使用時一定要仔細的規(guī)劃。
[1]馮昊.交換機/路由器配置與管理[M].北京:清華大學大學出版社,2010
[2]胡芝.計算機網(wǎng)絡(luò)實驗指南[M].杭州:浙江大學出版社,2011
[3]蔣玲.網(wǎng)絡(luò)工程師培訓教程[M].成都:四川大學出版社,2010
TP393.2
A
JL01-0229(2013)04-0015-03
2013-09-26
責任編輯:封軍來
校對:曹軍校
陸軍(1969-),男,漢族,河北石家莊市人,網(wǎng)絡(luò)與信息學院,高級工程師,主要從事計算機網(wǎng)絡(luò)教學與研究工作。