網路地址轉換
出自 MBA智库百科(https://wiki.mbalib.com/)
網路地址轉換(Network Address Translation,NAT)
目錄 |
什麼是網路地址轉換[1]
網路地址轉換是用於將一個專用地址域(區域網內部或Intranet)與另一個地址域(如Internet)建立起對應關係的技術。這種對應關係稱為映射。NAT允許一個機構的專用Intranet或區域網中的主機透明地連接到公共域中的主機,不用內部主機擁有註冊的Internet地址。使用內部地址的主機在訪問Internet時,或者被Internet上的主機訪問時,數據包均需要進行內部專用地址與Internet公用地址之問的轉換。
網路地址轉換的特點[2]
(1)將內部網路連接到Internet。NAT可以用少數幾個甚至一個合法的IP地址映射多個內部主機地址,這樣就可大大減緩合法IP地址耗盡的問題。而且NAT修改了數據包的源地址,使外部設備看不到內部設備的地址,因此網路的安全性也得到了一定的保障。
(2)當變更ISP時,雖然ISP分配給用戶的地址變了,但是用戶仍無須改變內部設備的地址,只需在NAT路由器上做出相應的修改就可以輕鬆完成網路的升級,並且NAT在網路合併方面也有著很大的應用場合。
(3)支持TCP負載均衡。通過使用NAT,可以把內部的幾台伺服器捆綁成一臺虛擬伺服器,這些伺服器在外部設備看來只是一臺伺服器。當流量進入內部網路時,NAT可以在這幾台伺服器之間自動進行分流,這樣就增加了網路的可靠性。
網路地址轉換的工作原理[2]
- 圖1 “服務和埠”選項卡
如圖1所示,NAT將網路分為內、外兩部分,位於內部網路和外部網路邊界的NAT路由器執行著地址翻譯的操作。
顧名思義,NAT是一種把內部私有網路地址翻譯成合法網路地址的技術。簡單地說,NAT就是在區域網內部使用私有IP地址,當需要與外部網路進行通信時,就在網關處將內部地址替換成公用地址。通過使用NAT技術,可以只申請一個合法IP地址,就把整個區域網中的電腦接人Internet中。這時,NAT屏蔽了內部網路,所有內網資源對於公共網路來說是不可見的,而內部用戶通常也不會意識到NAT的存在。
NAT功能通常被集成到路由器、防火牆、ISDN路由器或者單獨的NAT設備中。網路管理員只需在路由器的IOS中設置NAT功能,就可以實現對內部網路的屏蔽。另外,對小型企業來說,通過軟體也可以實現這一功能,例如5.1.5節中介紹的WindowsServer2003接人服務中也包含了這一功能。
網路地址轉換的過程[3]
(1)內部主機x用本地地址IPX和網際網路上主機Y通信所發送的數據報必須經過NAT路由器。
(2)NAT路由器將數據報的源地址IP轉換成全球地址IPG,但目的地址IPY保持不變,然後發送到網際網路。
(3)NAT路由器收到主機Y發回的數據報時,知道數據報中的源地址是IPY,而目的地址是IPG。
(4)根據NAT轉換表,NAT路由器將目的地址IPG轉換為IPx,轉發給最終的內部主機X。
網路地址轉換的實現方式[3]
NAT的實現方式有三種,即靜態轉換StaticNat、動態轉換DynamicNat和埠多路復用PAT。
靜態轉換是指將內部網路的私有IP地址轉換為公有IP地址,口地址對是一對一的,是一成不變的,某個私有IP地址只轉換為某個公有IP地址。藉助於靜態轉換,可以實現外部網路對內部網路中某些特定設備(如伺服器)的訪問。
動態轉換是指將內部網路的私有Ip地址轉換為公用IP地址時,IP地址是不確定的,而是隨機的,所有被授權訪問上Internet的私有IP地址可隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少於網路內部的電腦數量時,可以採用動態轉換的方式。
埠多路復用是指改變外出數據包的源埠併進行埠轉換,即埠地址轉換。它採用埠多路復用方式。內部網路的所有主機均可共用一個合法外部口地址實現對Intemet的訪問,從而可以最大限度地節約Ⅲ地址資源。同時,又可隱藏網路內部的所有主機,有效避免來自Intemet的攻擊。因此,目前網路中應用最多的就是埠多路復用方式。
網路地址轉換NAT配置[1]
按轉換方式的不同,NAT包括靜態NAT和動態NAT兩種方式,動態NAT又分為地址池轉換(PoolNAT)和埠地址轉換(PortNAT),分別介紹如下。
- 1.靜態NAT
靜態NAT用於在專用IP地址與公用IP地址之間進行一對一的轉換。其配置過程如下:
!指定參與轉換的專用地址與公用地址
Router(config)#ip nat inside soure static local—ip global—ip
!指定參與轉換的區域網介面
Route(config)#interface E 0
Router(config—if)#ip address ip—address submask
!定義此為網路的內部介面
Router(config—if)# ip nat inside
!指定參與轉換的廣域網介面
Router(config)#interface S 0
Router(config—if)#ip address ip—address submask
!定義此為網路的外部介面
Router(COnfig-if)#ip nat outside
- 2.動態地址轉換
(1)PoolNAT配置
PoolNAT執行專用地址與公用地址的一對一轉換,但是公用地址與專用地址的對應關係不是一成不變的,它是從公用地址池(Pool)中動態地選擇一個公用地址與一個內部專用地址相對應。
定義公用地址池(申請到的合法IP地址的範圍)的命令格式為
IP nat pool name start—ip end—ip netmask
定義一個標準訪問列表,指定哪些專用地址被允許進行轉換,其命令格式為
access—list access—list-number permit source—ip—address [source—wildcard]
其中,access—list—number取值為1~99;通配符掩碼的作用與子網掩碼類似,但它是子網掩碼的反碼。例如,若允許202.173.96.o/24網路的全部主機進行動態地址轉換,則可以使用下列命令:
access—list 1 permit 202.173.96.00.0.0.255
在專用地址與公用地址之間建立動態地址轉換pool NAT,可以使用下列命令:
ip nat inside soure list access一list—number pool pool一name
若地址池名稱為aaa,則命令“ip nat inside source list 1 pool aaa”表示把“access—list l”允許的內部地址映射為地址池aaa定義的公用地址。
(2)Port NAT配置
Port NAT是把專用地址映射到公用地址的不同埠上,因為一個IP地址的埠數有65535個,即一個公用地址可以和最多達65535個內部地址建立映射,故從理論上說,一個公用地址可以供六萬多個內部地址通過NAT連接Internet。
這裡仍需要使用ip nat pool命令定義一個公用地址池,然後利用access—list命令配置訪問列表,指定哪些專用地址被允許進行轉換。最後使用ip nat inside命令,在專用地址與公用地址之間建立埠地址轉換,但是其格式與pool NAT有所不同,格式為:
ip nat inside source list access—list—number pool pool—name over load
; 3.NAT配置示例
企業網Intranet通過DDN專線共用公用地址訪問Internet。已知Intranet內部採用網路地址192.168.1.0 255.255.255.0,申請到的公用Internet地址為202.128.62.33~202.128.62.62,子網掩碼為255.255.255.224,廣域網口地址為201.6.2.5,子網掩碼為255.255.255.252,廣域網口封裝HDLC協議。要求通過動態地址轉換,使內網的主機可以訪問Internet。
根據要求,對Intranet和Internet之間連接的路由器的動態PortNAT配置如下:
!配置區域網口IP地址
Router(config)#interface E 0
Router(config—if)# ip address 192.168.1.1255.255.255.0
!配置廣域網口IP地址
Router(config)#interfaceS 0
Router(config—if)#ip201.6.2.5255.255.255.252
!封裝HDLC協議
Router(config—if)#encapsulation hdlc
!設置keepalive時延為10s
Router(config—if)# keepalire10
Router(config—if)# no shutdown
!設置允許訪問的內部IP地址列表
Router(config)#access一1ist 1 permit 192.168.1.00.0.0.255
!配置公用IP地址池aaa
Router(config)#ip nat pool aaa 202.128.62.33202.128.62.62255.255.255.224
!配置埠地址轉換
Router(config)#ip nat inside source list 1 pool aaa overload
!啟用RIP版本2,配置RIP路由
Router(config)# router rip
Router(config—router)# version 2
Router(config—router)#network 192.168.1.0
Router(config—router)#network 201.6.2.4
!配置預設IP路由
Router(config)#iproute0.0.0.00.0.0.0serial 0
網路地址轉換的作用[1]
NAT有兩個主要的作用:首先,多個內部地址可以共用一個公用地址上網,從而節約了公用地址的使用。另外,因為採用NAT的內部主機不直接使用公用地址,所以,在Internet上不直接可見,可以在一定程度上減少被攻擊的風險,增強網路的安全性。
網路地址轉換功能存在的不足[2]
雖然NAT為網路帶來了不少好處,但是NAT也存在一些不足,主要表現為:
(1)NAT路由器必須保持對每個連接狀態的記錄。對於每次翻譯的流量,NAT都必須記住其轉換的地址和埠,所以當NAT設備出現故障或NAT鄰近的鏈路出現故障時,路由難以快速收斂。NAT也會耗盡大量的CPU和記憶體資源,進而影響網路的性能和數據包的處理,大大增加了網路的延時,這對於部分網路應用程式也是不可接受的。
(2)在進行一些網路安全的設計和實施時,一些加密方法必須對IP包頭的完整性進行校驗,這樣就要求包頭在從源到目的地址之間傳輸時不能被改變。任何在路途中對包頭部分的轉換都會破壞完整性檢查,而NAT重寫了第三層包頭信息,很難實現IP包頭的完整性。因此在做IPSecVPN時,IPSec不能對NAT流量實施端到端的安全保護。
(3)NAT只能支持有限的程式,NAT支持的IP業務和應用有H1vrP、TFTP、Telnet、NTP、NFS、RCP、RSH、ACHIE、FTP、ICMP、DNS等。NAT不支持的IP業務和應用有BOOTP、SNMP、NETSHOW等,特別是各種動態路由協議的路由表更新和DNS資料庫的相互更新。