NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)是1994年提出的。當(dāng)在專用網(wǎng)內(nèi)部的一些主機(jī)本來已經(jīng)分配到了本地IP地址(即僅在本專用網(wǎng)內(nèi)使用的專用地址),但又想和因特網(wǎng)上的主機(jī)通信(并不需要加密)時(shí),可使用NAT方法。這種方法需要在專用網(wǎng)(私網(wǎng)IP)連接到因特網(wǎng)(公網(wǎng)IP)的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫做NAT路由器,它至少有一個(gè)有效的外部全球IP地址(公網(wǎng)IP地址)。這樣,所有使用本地地址(私網(wǎng)IP地址)的主機(jī)在和外界通信時(shí),都要在NAT路由器上將其本地地址轉(zhuǎn)換成全球IP地址,才能和因特網(wǎng)連接。另外,這種通過使用少量的全球IP地址(公網(wǎng)IP地址)代表較多的私有IP地址的方式,將有助于減緩可用的IP地址空間的枯竭。在RFC 2663中有對NAT的說明。
NAT不僅能解決IP地址不足的問題,而且還能夠有效地避免來自網(wǎng)絡(luò)外部的攻擊,隱藏并保護(hù)網(wǎng)絡(luò)內(nèi)部的計(jì)算機(jī)。1.寬帶分享:這是 NAT 主機(jī)的最大功能。2.安全防護(hù):NAT 之內(nèi)的 PC 聯(lián)機(jī)到 Internet 上面時(shí),他所顯示的 IP 是 NAT 主機(jī)的公共 IP,所以 Client 端的 PC 當(dāng)然就具有一定程度的安全了,外界在進(jìn)行 portscan(端口掃描) 的時(shí)候,就偵測不到源Client 端的 PC 。
NAT的實(shí)現(xiàn)方式有三種,即靜態(tài)轉(zhuǎn)換Static Nat、動態(tài)轉(zhuǎn)換Dynamic Nat和端口多路復(fù)用OverLoad。靜態(tài)轉(zhuǎn)換是指將內(nèi)部網(wǎng)絡(luò)的私有IP地址轉(zhuǎn)換為公有IP地址,IP地址對是一對一的,是一成不變的,某個(gè)私有IP地址只轉(zhuǎn)換為某個(gè)公有IP地址。借助于靜態(tài)轉(zhuǎn)換,可以實(shí)現(xiàn)外部網(wǎng)絡(luò)對內(nèi)部網(wǎng)絡(luò)中某些特定設(shè)備(如服務(wù)器)的訪問。動態(tài)轉(zhuǎn)換是指將內(nèi)部網(wǎng)絡(luò)的私有IP地址轉(zhuǎn)換為公用IP地址時(shí),IP地址是不確定的,是隨機(jī)的,所有被授權(quán)訪問上Internet的私有IP地址可隨機(jī)轉(zhuǎn)換為任何指定的合法IP地址。也就是說,只要指定哪些內(nèi)部地址可以進(jìn)行轉(zhuǎn)換,以及用哪些合法地址作為外部地址時(shí),就可以進(jìn)行動態(tài)轉(zhuǎn)換。動態(tài)轉(zhuǎn)換可以使用多個(gè)合法外部地址集。當(dāng)ISP提供的合法IP地址略少于網(wǎng)絡(luò)內(nèi)部的計(jì)算機(jī)數(shù)量時(shí)。可以采用動態(tài)轉(zhuǎn)換的方式。端口多路復(fù)用(Port address Translation,PAT)是指改變外出數(shù)據(jù)包的源端口并進(jìn)行端口轉(zhuǎn)換,即端口地址轉(zhuǎn)換(PAT,Port Address Translation).采用端口多路復(fù)用方式。內(nèi)部網(wǎng)絡(luò)的所有主機(jī)均可共享一個(gè)合法外部IP地址實(shí)現(xiàn)對Internet的訪問,從而可以最大限度地節(jié)約IP地址資源。同時(shí),又可隱藏網(wǎng)絡(luò)內(nèi)部的所有主機(jī),有效避免來自internet的攻擊。
因此,網(wǎng)絡(luò)中應(yīng)用最多的就是端口多路復(fù)用方式。ALG(Application Level Gateway),即應(yīng)用程序級網(wǎng)關(guān)技術(shù):傳統(tǒng)的NAT技術(shù)只對IP層和傳輸層頭部進(jìn)行轉(zhuǎn)換處理,但是一些應(yīng)用層協(xié)議,在協(xié)議數(shù)據(jù)報(bào)文中包含了地址信息。為了使得這些應(yīng)用也能透明地完成NAT轉(zhuǎn)換,NAT使用一種稱作ALG的技術(shù),它能對這些應(yīng)用程序在通信時(shí)所包含的地址信息也進(jìn)行相應(yīng)的NAT轉(zhuǎn)換。例如:對于FTP協(xié)議的PORT/PASV命令、DNS協(xié)議的 "A" 和 "PTR" queries命令和部分ICMP消息類型等都需要相應(yīng)的ALG來支持。如果協(xié)議數(shù)據(jù)報(bào)文中不包含地址信息,則很容易利用傳統(tǒng)的NAT技術(shù)來完成透明的地址轉(zhuǎn)換功能,通常我們使用的如下應(yīng)用就可以直接利用傳統(tǒng)的NAT技術(shù):HTTP、TELNET、FINGER、NTP、NFS、ARCHIE、RLOGIN、RSH、RCP等。
在配置網(wǎng)絡(luò)地址轉(zhuǎn)換的過程之前,首先必須搞清楚內(nèi)部接口和外部接口,以及在哪個(gè)外部接口上啟用NAT。通常情況下,連接到用戶內(nèi)部網(wǎng)絡(luò)的接口是NAT內(nèi)部接口,而連接到外部網(wǎng)絡(luò)(如Internet)的接口是NAT外部接口。