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

主機0的ip地址為:172.16.1.2/24默認網關:172.16.1.1
主機1的ip地址為:172.16.1.3/24默認網關:172.16.1.1。
主機2的ip地址為:172.16.1.4/24默認網關:172.16.1.1。
服務器0的ip地址為:135.128.1.2/24默認網關: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訪問服務器0的內容,在路由器0上執行show ip nat translations可查看NAT轉換情況。
(1)NAT使得IP協議從面向無連接變成面向連接。NAT必須維護專用IP地址與公用IP地址以及端口號的映射關系。在TCP/IP協議體系中,如果一個路由器出現故障,不會影響到TCP協議的執行。因為只要幾秒收不到應答,發送進程就會進入超時重傳處理。而當存在NAT時,最初設計的TCP/IP協議過程將發生變化,Internet可能變得比較脆弱。
(2)NAT違反了基本的網絡分層結構模型的設計原則。因為在傳統的網絡分層結構模型中,第N層是不能修改第N+1層的報頭內容的。NAT破壞了這種各層獨立的原則。
(3)有些應用是將IP地址插入到正文的內容中,例如標準的FTP協議與IPPhone協議H.323。如果NAT與這一類協議一起工作,那么NAT協議一定要做適當地修正。同時,網絡的傳輸層也可能使用TCP與UDP協議之外的其他協議,那么NAT協議必須知道并且做相應的修改。由于NAT的存在,使得P2P應用實現出現困難,因為P2P的文件共享與語音共享都是建立在IP協議的基礎上的。
總的來說,NAT帶來了很大的優越性,可以節約地址空間、可以簡化配置、使網絡規劃更靈活。但是,它對網絡應用帶來了一定的影響,也給網絡管理帶來了一定的復雜性,并且會潛在的影響網絡安全性,所以在使用時一定要仔細的規劃。
[1]馮昊.交換機/路由器配置與管理[M].北京:清華大學大學出版社,2010
[2]胡芝.計算機網絡實驗指南[M].杭州:浙江大學出版社,2011
[3]蔣玲.網絡工程師培訓教程[M].成都:四川大學出版社,2010
TP393.2
A
JL01-0229(2013)04-0015-03
2013-09-26
責任編輯:封軍來
校對:曹軍校
陸軍(1969-),男,漢族,河北石家莊市人,網絡與信息學院,高級工程師,主要從事計算機網絡教學與研究工作。