摘要:本文介紹解決私網地址的網絡接入 Internet 問題的NAT技術,對NAT的工作原理以及4種配置NAT的具體方法進行了深入闡述,并就NAT技術在校園網中的應用作具體配置。
關鍵詞:IP地址;路由器;NAT;PAT
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)12-20ppp-0c
The NAT Technique Principle Investigation and the Applied Example of Campus Net
YAO Zheng
(Maanshan Teachers' College, Maanshan 243041, China)
Abstract: The article introduce the technology of Network address translation,which solves the problem of the private network address when it connected to the Internet, expatiate on the principle of Nat working and 4 kinds of frondose configurations,and apply the technology of Nat to the campus net in frondose configurations.
Key words: IP address; Router; Network address translation; Port address translation
1 引言
Internet(因特網)從1990年代以來發展非常迅速,取得了極大的成功。但是,IP地址短缺已成為一個相當嚴重的問題,因為任何人要想進入因特網,都必須擁有一個合法的IP地址實現與廣域網的互聯,而IPV4的地址供應是有限的,那么IP地址的供應將會被耗盡。隨著新的技術產生和發展,IPV4不再面對迫在眉睫的地址耗盡。一個以幫助IPV4避免地址耗盡的技術是網絡地址轉換(NAT)。
當一個局域網接入到因特網時,往往只能獲得一組很少的合法IP地址,局域網內大部分用戶只有私有IP地址,那么怎樣才能讓私有IP地址的用戶也能上因特網?網絡地址轉換(NAT)是用于將一個地址域映射到另一個地址域的標準方法,如局域網到廣域網的映射。實際上,NAT允許私有地址主機訪問Internet.NAT提供的另一個功能是網絡安全。NAT通過隱藏真實的IP地址來提供安全。使用NAT,可以只有一個合法的外部地址,它是公開知道的,像一個屏蔽或隱藏網絡的真IP地址。
2 NAT拓撲結構及其工作過程
一臺啟用NAT的設備典型的是運行在局域網和廣域網連接的邊界上(局域網到廣域網只有一條鏈路),當局域網內的一個主機想傳輸數據到外部的一個主機時,它要將分組轉發給它的缺省網關,運行在路由器的NAT進程查看內部的IP頭。如果合適,NAT會用一個全球唯一的IP地址來替換本地IP地址。



NAT路由器RTA決定分組的源地址10.1.1.5應當被交換。本例中,RTA會用一個全球或真實的地址170.7.2.1來替換這個私有地址。RTA還將在一個NAT轉換表中保存這個轉換的記錄。
當一個外部主機送一個應答時,NAT路由器收到它,如下圖所示,NAT路由器檢查當前的網絡地址轉換表,并且用最初的內部源地址替換目的地址
3 配置NAT的具體方法
設m為需要地址轉換的源IP地址——內部地址(簡稱源IP)數,n為所能提供的轉換IP地址——內部全局地址(簡稱NAT IP)數。根據m=n或m>n兩種不同情況,可以把NAT技術分為兩類:靜態NAT和動態NAT技術,在源IP和NAT IP間進行一對一的固定轉換稱為靜態NAT技術;而根據具體情況(運行時情況)為每個源IP動態分NAT IP則稱為動態NAT技術;
3.1 靜態NAT技術
源IP數目等于NAT IP數目,m=n。靜態NAT技術的轉換非常簡單,但該技術由于沒有起到節約IP地址資源的目的,應用面不是很廣。
靜態地址轉換基本配置步驟如下:
1.在內部本地地址與內部合法地址之間建立靜態地址轉換。
Router(config)# ip nat inside source static 內部本地地址 內部合法地址
2.指定連接網絡的內部端口。
Router(config)# ip natinside
3.指定連接外部網絡的外部端口。
Router(config)# ip nat outside
3.2 動態NAT技術
當m>n時要采用動態NAT技術。另外,當m=n時,考慮到某些情況下需要非固定地址轉換(如安全原因),也需要動態NAT技術。
NAT路由器動態地為每個IP地址或每次連接提供NAT IP地址。為保證通信的雙向性,NAT路由器必須記錄通信雙方的主機信息甚至連接信息(這有可能要查看數據包中TCP信息)。
從內部來說,當所有能分配的NAT IP都被用完后,就不允許有其他的連接了。從外部來說,內部計算機是不可見的(前提是外部計算機先發起訪問)。
使用動態NAT,NAT轉換表中不存在轉換直到路由器收到需要轉換的流量。一個管理員定義這個流量。動態轉換是暫時的并最終會過期。
動態地址轉換基本配置步驟如下:
1.定義內部合法地址池
Router(config)# ip nat pool 地址池名稱 起始IP地址 終止IP地址 子網掩碼
2.定義一個標準的access-list 規則以允許哪些內部地址可以進行動態地址轉換
Router(config)# access-list 標號 permit 源地址 通配符,其中標號為1-99之間的整數
3.將由access-list指定的內部本地地址與指定的內部合法地址池進行地址轉換
Router(config)# ip natinside source list 訪問列表標號 pool 內部合法地址池名字
4.指定與內部網絡相連的內部端口
Router(config)# ip nat inside
5.指定與外部網絡相連的外部端口
Router(config)# ip nat outside
3.3 NAT過載(端口地址轉換)
動態NAT的一個重要優點是能夠用很少的全球可路由IP地址來服務大量的主機。轉換表項的超時很重要,這使得池里面的地址可用于其他主機。
但是,如果轉換表項不能盡快地過期,整個地址池會都在使用,并且額外的主機將不能訪問Internet。地址過載就是用很少的地址服務大量的主機。
端口地址轉換PAT(Port Address Translation)也稱為NAPT,普遍應用于接入設備中,它可以將中小型的網絡隱藏在一個合法的IP地址后面PAT與動態地址NAT不同,它將內部連接映射到外部網絡中的一個單獨的IP地址上,同時在該地址上加上一個由NAT設備選定TCP端口號。在Internet中使用PAT時,所有不同TCP和UDP信息流看起來源于同一個IP地址。此優點在小型辦公室內非常實用,通過從ISP處申請的一個IP地址,將多個連接通過PAT接入Internet。一條映射一個IP地址和端口對到另一個地址和端口對的轉換條目被稱為一條擴展表項。
配置NAT過載(PAT)步驟如下:
使用關鍵字Overload來配置NAT過載(PAT)
1.定義內部地址池
Router(config)# ip nat pool 地址池名稱 起始IP地址 終止IP地址
Net mask 子網掩碼,其中地址池名字可以任意設定。
2.定義一個標準的 access-list規則以允許那些內部本地地址可以進行地址轉換
Router(config)# access-list 標號 permit 源地址 通配符,其中標號為1-99之間的整數。
3.設置在內部在內部的本地地址與內部合法IP地址間建立端口地址轉換
Router(config)# ip nat inside source list 訪問列表標號 pool 內部合法地址池名字overload
4.指定與內部網絡相連的內部端口
Router(config)# ip nat inside
5.指定與外部網絡相連的外部端口
Router(config)# ip nat outside
3.4 TCP負載負擔
以上所談論的是關于NAT和PAT把內部IP地址轉換成外部合法的IP地址使用。除此之外,NAT還可以用于負載平衡的DNS系列服務器的一個替代品。DNS系列服務器解決了多個IP地址公用一個域名的問題。它會在響應DNS申請時跳躍式地尋找可用的IP地址。達到的效果就是一個域名可以對應多個IP地址。
這種功能可以應用在一個WWW服務器群中,利用它可以平衡多個服務器的負載。Cisco路由器支持TCP負載分擔作為靜態映射的一種擴展。
配置TCP負載分擔步驟如下:
1.定義一個包含真實主機地址的地址池:
Router(config)# ip nat pool 地址池名稱 起始IP地址 終止IP地址
Net mask 子網掩碼 [type rotary]
2.定義一個訪問列表允許虛擬主機的地址:
Router(config)# access-list 標號 permit 源地址 通配符,其中標號為1-99之間的整數。
3.建立動態內部目的轉換,標識步驟2中定義的訪問列表:
Router(config)# ip nat inside destination list 標號 poll name
4.指定內部接口
Router(config)# interface type number
5.將接口標記為連接到內部:
Router(config)# ip nat inside
6.指定外部接口:
Router(config)# interface type number
7.將接口標記為連接到外部:
Router(config)# ip nat outside
4 應用實例
根據某校園的網絡環境利用TCP/UDP端口映射的應用,網絡采用1000Mbps光纖接入Internet.路由器選用擁有2個 10/100/1000Mbps自適應端口的Cisco2821.內部網絡使用的IP地址段為192.168.1.1~192.168.1.254(根據內部網絡規模而定),局域網端口Ethernet 0 的IP地址為192.168.1.1,子網掩碼為255.255.255.0.網絡分配的合法IP地址范圍為 202.99.16.128~202.99.160.135,子網掩碼為255.255.255.248,連接ISP的端口Ethernet 1的IP地址為211.82.220.129,子網掩碼為255.255.255.252,可用于轉換IP地址為211.82.220.130.可以配置相同類型的多個服務器,如多個Web服務器,多個E-mail服務器等。
具體配置文件如下:(其他無關信息省略)
Interface fastethernet 0/0
Ip address 192.168.1.1 255.255.255.0!--定義本地端口IP地址
Ip nat inside !--定義為本地端口
Interface fastethernet 0/1
Ip address 202.99.160.129 255.255.255.252!--定義廣域網端口IP地址
Ip nat outside !--定義為廣域網端口
Access-list 1 permit 192.168.1.0 0.0.0.255 !--定義本地訪問列表
Ip nat pool multiip 202.99.160.130 202.99.160.134 netmask 255.255.255.248
!--定義multiip地址池的IP范圍
Ip nat inside source list 1 mullitip overload
Ip nat inside source static tcp 192.168.1.11 80 202.99.16.130 80
Ip nat inside source static tcp 192.168.1.12 80 202.99.16.131 80
Ip nat inside source static tcp 192.168.1.13 80 202.99.16.132 80
!--將80端口映射為192.168.1.11~13的80端口(WEB1-3)
Ip nat inside source static tcp 192.168.1.14 21 202.99.16.130 21
Ip nat inside source static tcp 192.168.1.15 21 202.99.16.131 21
!--將21端口映射為192.168.1.14~15的21端口(FTP1-2)
Ip nat inside source static tcp 192.168.1.16 25 202.99.16.133 25
Ip nat inside source static tcp 192.168.1.17 25 202.99.16.134 25
!--將25端口映射為192.168.1.16~17的25端口(mail1-2)
5 結束語
雖然NAT帶來了許多優越性,如使現有的網絡不需要重新編址、節約地址空間、減少了ISP的接入費用,還可以起到負載分擔的作用,但是NAT潛在地影響到一些網絡管理功能和安全設施,首先,使用NAT地址轉換會使路由器處理數據包延遲增大。路由器的CPU必須對每個數據包進行檢查,對需要改變地址信息的數據包進行操作,因此會加大運行負擔;同時路由器要使用NAT技術,必須處于處理機交換的工作模式,會降低運行性能。另一方面,NAT隱藏了端到端的IP地址,使得對數據包的跟蹤變得比較困難,由于這個原因,使得一些內嵌的IP地址在應用中會產生問題,如ICMP協議,DNS,FTP等。所以在使用NAT技術時一定要精心的規劃。
參考文獻:
[1]謝希仁. 計算機網絡(第2版)[M]. 北京:電子工業出版社,2002.
[2]Steve McQuerry. Cisco 網絡設備互連[M]. 人民郵電出版社,2006.
[3]BassamHalabi. 因特網的路由選擇技術[M]. 北京:電子工業出版社,2000.
收稿日期:2008-03-25
作者簡介:姚正(1979-),男,安徽省馬鞍山市人,助教,學士,研究方向:網絡設備配置與網絡安全。