席東
(河南省駐馬店財(cái)經(jīng)學(xué)校,駐馬店463000)
當(dāng)前使用的IP 地址為IPv4 版本,它由32 位二進(jìn)制組成,共有2 的32 次方,即大概42.9 億個(gè)IP 地址,但是這些IP 地址中還有一部分保留地址、網(wǎng)絡(luò)地址、廣播地址、本地環(huán)回地址、組播地址,所以能夠被分配使用的IP 數(shù)量非常有限。
根據(jù)網(wǎng)絡(luò)協(xié)議,要求網(wǎng)絡(luò)設(shè)備如需接入網(wǎng)絡(luò),就必須要給網(wǎng)絡(luò)設(shè)備配置一個(gè)IP 地址,于是IPv4 地址資源就顯得嚴(yán)重不足,那么如何才能使用有限的IP 地址將無(wú)數(shù)個(gè)網(wǎng)絡(luò)設(shè)備接入到互聯(lián)網(wǎng)中呢?
人們從有限的IP 地址中劃分出一部分作為私有地址,這部分私有地址分別是:
A 類:10.0.0.0~10.255.255.255
B 類:172.16.0.0~172.31.255.255
C 類:192.168.0.0~192.168.255.255
這些地址不向任何用戶分配,被IANA 作為私有地址保留下來(lái),這些地址可以被任何組織、企業(yè)或個(gè)人內(nèi)部使用。除去各種保留地址及私有地址剩下的都是公有地址。公有地址可以在互聯(lián)網(wǎng)進(jìn)行路由,需要申請(qǐng),繳費(fèi)才能使用。私有地址與公有地址的區(qū)別在于,私有地址僅能在企業(yè)、組織、個(gè)人內(nèi)部(局域網(wǎng))使用,不能作為全球路由地址,也就是說(shuō),出了組織的局域網(wǎng)這些地址就不再有意義了。那么對(duì)于一個(gè)局域網(wǎng)來(lái)說(shuō),如果不需要連接到Internet,就可以使用私有地址而不用向任何組織申請(qǐng)、注冊(cè)。
那么使用私有地址的設(shè)備如要訪問(wèn)互聯(lián)網(wǎng),就需要進(jìn)行地址轉(zhuǎn)換,將私有地址轉(zhuǎn)換為公有地址。
NAT:網(wǎng)絡(luò)地址轉(zhuǎn)換,就是將IP 數(shù)據(jù)報(bào)頭中的IP地址轉(zhuǎn)換為另一個(gè)IP 地址的過(guò)程,可以實(shí)現(xiàn)私有IP 地址與公網(wǎng)IP 地址間的轉(zhuǎn)換。
OSI 的網(wǎng)絡(luò)層將數(shù)據(jù)封裝成數(shù)據(jù)包時(shí),IP 數(shù)據(jù)包需要兩個(gè)非常重要的信息分別是,源地址(發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)設(shè)備的接口地址)及目標(biāo)地址(接收數(shù)據(jù)包的網(wǎng)絡(luò)設(shè)備的接口地址)。
配置有NAT 功能的三層設(shè)備,在解析接收到的數(shù)據(jù)包時(shí),如果匹配既定的NAT 規(guī)則,則會(huì)對(duì)IP 數(shù)據(jù)包中的源IP 地址或目標(biāo)IP 地址進(jìn)行轉(zhuǎn)換。
NAT 技術(shù)一般可以分為動(dòng)態(tài)NAT、靜態(tài)NAT 和PNAT 三種。
(1)靜態(tài)NAT(Static Nat)
靜態(tài)NAT 是指將內(nèi)部網(wǎng)絡(luò)的私有IP 地址轉(zhuǎn)換為外部公有IP 地址時(shí)是一一對(duì)應(yīng)的,是靜態(tài)的,是不會(huì)改變的。即某個(gè)私有IP 地址只能轉(zhuǎn)換為某個(gè)固定的公有IP 地址,這樣應(yīng)用的情況較少,因?yàn)檫@需要大量的公有IP 地址。舉例如下:
①網(wǎng)絡(luò)環(huán)境
圖1
內(nèi)網(wǎng)中的計(jì)算機(jī)通過(guò)三層交換機(jī)(sw1)連接到一臺(tái)邊緣路由器(r1),邊緣路由器(r1)連接外網(wǎng),server1模擬外網(wǎng)服務(wù)器。
pc1:
IP:192.168.0.2 netmask :255.255.255.0 gateway:192.168.0.1
pc2:
IP:192.168.0.3 netmask:255.255.255.0 gateway:192.168.0.1
server1:
IP:1.1.1.2 netmask:255.255.255.0
②需求
內(nèi)網(wǎng)中的計(jì)算機(jī)需要訪問(wèn)外網(wǎng),那就需要進(jìn)行地址轉(zhuǎn)換,轉(zhuǎn)換關(guān)系如表1。
表1
③主要配置
邊緣路由器(r1):
interface FastEthernet0/0
IP address 192.168.1.2 255.255.255.0
IP nat inside
#設(shè)置路由器r1 的fa0/0 接口為NAT 的入口
interface FastEthernet0/1
IP address 1.1.1.1 255.255.255.0
IP nat outside
#設(shè)置路由器r1 的fa0/1 接口為NAT 的出口
IP nat inside source static 192.168.0.2 1.1.1.3
#將內(nèi)部私有地址(192.168.0.2)與內(nèi)部公有地址(1.1.1.3)進(jìn)行靜態(tài)對(duì)應(yīng)。
IP nat inside source static 192.168.0.3 1.1.1.4
#將內(nèi)部私有地址(192.168.0.3)與內(nèi)部公有地址(1.1.1.4)進(jìn)行靜態(tài)對(duì)應(yīng)。
④實(shí)現(xiàn)的效果
內(nèi)部計(jì)算機(jī)通過(guò)NAT,將私有地址轉(zhuǎn)換為公有地址,轉(zhuǎn)換過(guò)程如圖2。
圖2
通過(guò)命令:show IP nat translations 可以得到NAT地址轉(zhuǎn)換列表,由圖2 得出:
內(nèi)部私有地址:192.168.0.2 對(duì)應(yīng)內(nèi)部公有地址:1.1.1.3
內(nèi)部私有地址:1921.68.0.3 對(duì)應(yīng)內(nèi)部公有地址:1.1.1.4
通過(guò)數(shù)據(jù)包頭信息,如圖3 所示。
圖3
Pc1 發(fā)送的數(shù)據(jù)包經(jīng)過(guò)NAT 轉(zhuǎn)換后,數(shù)據(jù)包的源IP 地址轉(zhuǎn)換為1.1.1.3;pc2 發(fā)送的數(shù)據(jù)包經(jīng)過(guò)NAT 轉(zhuǎn)換后,數(shù)據(jù)包的源IP 地址轉(zhuǎn)換為1.1.1.4。
靜態(tài)NAT 的另一個(gè)功能是能夠?qū)崿F(xiàn)將內(nèi)部服務(wù)器映射為內(nèi)部公有地址,這樣就能夠?qū)崿F(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)服務(wù)器。在本例中,外網(wǎng)用戶在訪問(wèn)公有地址1.1.1.3 時(shí),其實(shí)訪問(wèn)的是內(nèi)部的192.168.0.2,如圖4所示。
圖4
外網(wǎng)用戶在訪問(wèn)公有地址1.1.1.4 時(shí),其實(shí)訪問(wèn)的是內(nèi)部的192.168.0.3,如圖5 所示。
圖5
(2)動(dòng)態(tài)NAT(Dynamic Nat)
動(dòng)態(tài)NAT 是指在具備NAT 技術(shù)的網(wǎng)絡(luò)設(shè)備上配置由多個(gè)公有IP 地址組成的地址池,在進(jìn)行內(nèi)部網(wǎng)絡(luò)的私有IP 地址轉(zhuǎn)換為公用IP 地址時(shí),私有地址與公有地址的對(duì)應(yīng)關(guān)系不是確定的,而是隨機(jī)的。所有允許被NAT 進(jìn)行轉(zhuǎn)換的私有IP 地址可以隨機(jī)轉(zhuǎn)換為公有地址池中任一個(gè)公有IP 地址。也就是說(shuō),只要指定哪些內(nèi)部地址可以進(jìn)行轉(zhuǎn)換,以及用哪些合法地址作為公有地址池,就可以進(jìn)行IP 地址的動(dòng)態(tài)轉(zhuǎn)換。
(1)網(wǎng)絡(luò)環(huán)境
圖6
內(nèi)網(wǎng)中的計(jì)算機(jī)通過(guò)三層交換機(jī)(sw1)連接到一臺(tái)邊緣路由器(r1),邊緣路由器(r1)連接外網(wǎng),server1模擬外網(wǎng)服務(wù)器。
(2)需求
內(nèi)網(wǎng)中192.168.0.0/24 所有地址發(fā)出的數(shù)據(jù)包的源IP 地址均可以通過(guò)NAT 轉(zhuǎn)換為公有地址(1.1.1.3-1.1.1.4),從而實(shí)現(xiàn)訪問(wèn)外網(wǎng)。
(3)主要配置
邊緣路由器(r1):
interface FastEthernet0/0
IP address 192.168.1.2 255.255.255.0
IP nat inside
interface FastEthernet0/1
IP address 1.1.1.1 255.255.255.0
IP nat outside
access-list 1 permit 192.168.0.0 0.0.0.255
#定義一個(gè)基礎(chǔ)列表1,允許192.168.0.0 網(wǎng)段所有主機(jī)進(jìn)行轉(zhuǎn)換。
IP nat pool IPs 1.1.1.3 1.1.1.4 netmask 255.255.255.0
#定義一個(gè)由1.1.1.3 到1.1.1.4 組成的公有地址池(IPs)
IP nat inside source list 1 pool IPs
#開啟NAT 動(dòng)態(tài)轉(zhuǎn)換
(4)實(shí)現(xiàn)的效果
內(nèi)網(wǎng)192.168.0.0/24 網(wǎng)段的計(jì)算機(jī)發(fā)出的數(shù)據(jù)包的源IP 地址,均可以被NAT 轉(zhuǎn)換為公有地址池(IPs)中的IP 地址。如圖7 所示。
圖7
由圖7 可見,內(nèi)網(wǎng)192.168.0.2 經(jīng)NAT 轉(zhuǎn)換為1.1.1.4;內(nèi)網(wǎng)192.168.0.4 經(jīng)NAT 轉(zhuǎn)換為1.1.1.3。但由于公用地址池中只有兩個(gè)公用IP(1.1.1.3 和1.1.1.4),已經(jīng)被192.168.0.2 和192.168.0.4 占用,由于公有地址池中可用IP 已經(jīng)用盡,所以內(nèi)網(wǎng)中的其他私有地址,將不能進(jìn)行轉(zhuǎn)換,如圖8 所示。
圖8
由此得出,動(dòng)態(tài)NAT 雖然能夠動(dòng)態(tài)進(jìn)行私有地址與公有地址間的地址轉(zhuǎn)換,但要求公有地址池中要有足夠的公用IP 地址。動(dòng)態(tài)NAT 在公有IP 地址不足時(shí),采取先到先得,如果公有地址分配完畢,其他的地址轉(zhuǎn)換請(qǐng)求就不再進(jìn)行的策略,弊端很多,一般很少使用。
(3)NAT 重載
動(dòng)態(tài)NAT 及靜態(tài)NAT 技術(shù)都不能滿足大量私有地址同時(shí)訪問(wèn)外網(wǎng)的需求。PNAT 改進(jìn)了地址轉(zhuǎn)換機(jī)制,在內(nèi)網(wǎng)進(jìn)行對(duì)外的訪問(wèn)時(shí),除了將數(shù)據(jù)包源地址改為外網(wǎng)地址以外,同時(shí)還將各個(gè)數(shù)據(jù)包所包含的通訊端口號(hào)進(jìn)行了修改,以保證當(dāng)數(shù)據(jù)包從NAT 設(shè)備轉(zhuǎn)發(fā)出去后各個(gè)主機(jī)的源端口號(hào)不同。當(dāng)數(shù)據(jù)從外部返回時(shí),NAT 設(shè)備根據(jù)其中的目的端口號(hào)和內(nèi)網(wǎng)地址的對(duì)應(yīng)關(guān)系再將數(shù)據(jù)包轉(zhuǎn)發(fā)回到內(nèi)網(wǎng)主機(jī)。這樣就可以實(shí)現(xiàn)使用一個(gè)或少量的公網(wǎng)IP 地址,完成局域網(wǎng)中大量使用私有地址的網(wǎng)絡(luò)設(shè)備同時(shí)接入互聯(lián)網(wǎng)。
網(wǎng)絡(luò)環(huán)境和網(wǎng)絡(luò)需求與動(dòng)態(tài)NAT 保持一致,最主要的區(qū)別在于多路復(fù)用NAT,在配置NAT 地址轉(zhuǎn)換時(shí)加上overload,允許公有地址復(fù)用,如圖9 所示。
圖9
可以得出公有地址1.1.1.3 通過(guò)使用不同端口實(shí)現(xiàn)了三個(gè)私有地的復(fù)用地址轉(zhuǎn)換。
NAT 重載也是一種動(dòng)態(tài)NAT,它利用端口將多個(gè)私有IP 地址映射到一個(gè)(或多個(gè),能夠?qū)崿F(xiàn)負(fù)載分擔(dān),提高時(shí)效)公網(wǎng)IP 地址(實(shí)現(xiàn)多個(gè)私有地址對(duì)一個(gè)公有地址)。通過(guò)使用PNAT(NAT 重載),只需使用一個(gè)或幾個(gè)公網(wǎng)IP 地址,就可將成百上千個(gè)網(wǎng)絡(luò)設(shè)備連接到互聯(lián)網(wǎng)。
NAT 重載最大限度地節(jié)約了IP 地址資源,NAT 重載是現(xiàn)實(shí)生活中使用最為廣泛的一種NAT 技術(shù)。
NAT 緩解IPv4 地址不足的問(wèn)題,在地址重疊時(shí)也可以提供解決方案,能夠更加靈活地將網(wǎng)絡(luò)設(shè)備連接到互聯(lián)網(wǎng)。但是由于NAT 轉(zhuǎn)換需要消耗網(wǎng)絡(luò)設(shè)備的軟、硬件資源,勢(shì)必會(huì)造成路由延遲;由于IP 地址經(jīng)過(guò)了轉(zhuǎn)換也會(huì)導(dǎo)致端到端的IP 追蹤無(wú)法進(jìn)行;甚至?xí)斐梢恍?yīng)用程序無(wú)法正常運(yùn)行。
NAT 技術(shù)緩解了IPv4 地址資源不足的問(wèn)題,并且在一定程序上能夠?qū)崿F(xiàn)路由的負(fù)載分擔(dān)。但是IPv4地址在不久的將來(lái)勢(shì)必枯竭,NAT 技術(shù)不能徹底解決IP 地址空間不足的實(shí)質(zhì)問(wèn)題。使用IPv6 技術(shù)才能從根本上解決IP 地址不足的問(wèn)題,不過(guò)NAT 技術(shù)在IPv4 轉(zhuǎn)換到IPv6 的過(guò)程中,發(fā)揮著不可或缺的作用。