NAT 网络地址转换技术(一)NAT原理介绍:静态NAT、动态NAT、NAPT、Easy IP、NAT ALG、NAT服务器、双向NAT技术
文章目錄
- 出現(xiàn)原因
- 基本概念
- NAT技術(shù)基本原理
- 源NAT技術(shù)
- 靜態(tài)NAT
- 動(dòng)態(tài)NAT
- NAPT
- Easy IP
- NAT ALG
- NAT服務(wù)器
- 雙向NAT技術(shù)
- 域間雙向NAT(NAT Server+源NAT)
- 域內(nèi)雙向NAT
出現(xiàn)原因
由于互聯(lián)網(wǎng)快速發(fā)展,以及IPv4地址規(guī)劃不合理的問(wèn)題,導(dǎo)致了IPv4地址短缺。為了解決由于IPv4地址短缺問(wèn)題,有以下幾種解決方法:
但是由于從IPv4到IPv6技術(shù)的遷移,需要非常多的時(shí)間,以及IPv6技術(shù)相對(duì)于IPv4不成熟等問(wèn)題,目前IPv6并沒(méi)有得到廣泛的應(yīng)用。所以NAT這種臨時(shí)解決方案顯得尤為重要。
基本概念
NAT:
Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)。是將私網(wǎng)地址與公網(wǎng)地址進(jìn)行轉(zhuǎn)換,實(shí)現(xiàn)私網(wǎng)用戶能在公網(wǎng)上通信。
優(yōu)點(diǎn):
缺點(diǎn):
限制某些具體應(yīng)用
由于需要對(duì)數(shù)據(jù)報(bào)文進(jìn)行IP地址的轉(zhuǎn)換,涉及IP地址的數(shù)據(jù)報(bào)文的報(bào)頭不能被加密。在應(yīng)用協(xié)議中,如果報(bào)文中有地址或端口需要轉(zhuǎn)換,則報(bào)文不能被加密。例如,不能使用加密的FTP連接,否則FTP的port命令不能被正確轉(zhuǎn)換。
網(wǎng)絡(luò)監(jiān)控難度大
網(wǎng)絡(luò)監(jiān)管變得更加困難。例如,如果一個(gè)黑客從內(nèi)網(wǎng)攻擊公網(wǎng)上的一臺(tái)服務(wù)器,那么要想追蹤這個(gè)攻擊者很難。因?yàn)樵趫?bào)文經(jīng)過(guò)NAT轉(zhuǎn)換設(shè)備的時(shí)候,地址經(jīng)過(guò)了轉(zhuǎn)換,不能確定哪臺(tái)才是黑客的主機(jī)。
NAT一般配置在網(wǎng)絡(luò)路由器或防火墻上。
NAT技術(shù)基本原理
源NAT技術(shù)
靜態(tài)NAT
靜態(tài)NAT實(shí)現(xiàn)了私有地址和公有地址的一對(duì)一映射。如果希望一臺(tái)主機(jī)優(yōu)先使用某個(gè)關(guān)聯(lián)地址,或者想要外部網(wǎng)絡(luò)使用一個(gè)指定的公網(wǎng)地址訪問(wèn)內(nèi)部服務(wù)器時(shí),可以使用靜態(tài)NAT。但是在大型網(wǎng)絡(luò)中,這種一對(duì)一的IP地址映射無(wú)法緩解公用地址短缺的問(wèn)題。、
如上圖,源地址為192.168.1.1的報(bào)文需要發(fā)往公網(wǎng)地址100.1.1.1。在網(wǎng)關(guān)RTA上配置了一個(gè)私網(wǎng)地址192.168.1.1到公網(wǎng)地址200.10.10.1的映射。當(dāng)網(wǎng)關(guān)收到主機(jī)A發(fā)送的數(shù)據(jù)包后,會(huì)先將報(bào)文中的源地址192.168.1.1轉(zhuǎn)換為200.10.10.1,然后轉(zhuǎn)發(fā)報(bào)文到目的設(shè)備。目的設(shè)備回復(fù)的報(bào)文目的地址是200.10.10.1。當(dāng)網(wǎng)關(guān)收到回復(fù)報(bào)文后,也會(huì)執(zhí)行靜態(tài)地址轉(zhuǎn)換,將200.10.10.1轉(zhuǎn)換成192.168.1.1,然后轉(zhuǎn)發(fā)報(bào)文到主機(jī)A。和主機(jī)A在同一個(gè)網(wǎng)絡(luò)中其他主機(jī),如主機(jī)B,訪問(wèn)公網(wǎng)的過(guò)程也需要網(wǎng)關(guān)RTA做靜態(tài)NAT轉(zhuǎn)換。
注意:
- 靜態(tài)NAT實(shí)現(xiàn)了私有地址和共有地址一對(duì)一的映射(一個(gè)私有地址對(duì)應(yīng)一個(gè)共有地址),并沒(méi)有做到緩解地址短缺的問(wèn)題,只是做到了地址轉(zhuǎn)換。
- 一個(gè)公網(wǎng)地址只會(huì)分配給唯一且固定的內(nèi)網(wǎng)地址(相當(dāng)于上圖主機(jī)A綁定了兩個(gè)地址)
動(dòng)態(tài)NAT
動(dòng)態(tài)NAT通過(guò)使用地址池來(lái)實(shí)現(xiàn)。
如上圖,當(dāng)內(nèi)部主機(jī)A和主機(jī)B需要與公網(wǎng)中的目的主機(jī)通信時(shí),網(wǎng)關(guān)RTA會(huì)從配置的公網(wǎng)地址池中選擇一個(gè)未使用的公網(wǎng)地址與之做映射。每臺(tái)主機(jī)都會(huì)分配到地址池中的一個(gè)唯一地址。當(dāng)不需要此連接時(shí),對(duì)應(yīng)的地址映射將會(huì)被刪除,公網(wǎng)地址也會(huì)被恢復(fù)到地址池中待用。當(dāng)網(wǎng)關(guān)收到回復(fù)報(bào)文后,會(huì)根據(jù)之前的映射再次進(jìn)行轉(zhuǎn)換之后轉(zhuǎn)發(fā)給對(duì)應(yīng)主機(jī)。
注意:
- 動(dòng)態(tài)NAT實(shí)際上實(shí)現(xiàn)的還是私有地址和公有地址一對(duì)一的關(guān)系,但是共有地址不再綁定給特定的內(nèi)網(wǎng)地址。實(shí)現(xiàn)了一定程度的緩解地址短缺問(wèn)題。
- 動(dòng)態(tài)NAT地址池中的地址用盡以后,只能等待被占用的公用IP被釋放后,其他主機(jī)才能使用它來(lái)訪問(wèn)公網(wǎng)。
NAPT
NAPT:Network Address Port Translation 網(wǎng)絡(luò)端口地址轉(zhuǎn)換技術(shù)
如上圖,RTA收到一個(gè)私網(wǎng)主機(jī)發(fā)送的報(bào)文,源IP地址是192.168.1.1,源端口號(hào)是1025,目的IP地址是100.1.1.1,目的端口是80。RTA會(huì)從配置的公網(wǎng)地址池中選擇一個(gè)空閑的公網(wǎng)IP地址和端口號(hào),并建立相應(yīng)的NAPT表項(xiàng)。這些NAPT表項(xiàng)指定了報(bào)文的私網(wǎng)IP地址和端口號(hào)與公網(wǎng)IP地址和端口號(hào)的映射關(guān)系。之后,RTA將報(bào)文的源IP地址和端口號(hào)轉(zhuǎn)換成公網(wǎng)地址200.10.10.1和端口號(hào)2843,并轉(zhuǎn)發(fā)報(bào)文到公網(wǎng)。當(dāng)網(wǎng)關(guān)RTA收到回復(fù)報(bào)文后,會(huì)根據(jù)之前的映射表再次進(jìn)行轉(zhuǎn)換之后轉(zhuǎn)發(fā)給主機(jī)A。主機(jī)B同理。
注意:
- NAPT技術(shù)允許多個(gè)內(nèi)部地址映射到同一個(gè)公有地址的不同端口。
- NAPT實(shí)現(xiàn)了私有地址對(duì)共有地址多對(duì)一
Easy IP
- Easy IP本質(zhì)上是NAPT(所以原理與NAPT大致相似)
- 由于網(wǎng)關(guān)設(shè)備出接口IP地址為公網(wǎng)地址,所以可以利用該出接口地址來(lái)作為地址轉(zhuǎn)換的公有地址。
Easy IP適用于小規(guī)模局域網(wǎng)中的主機(jī)訪問(wèn)Internet的場(chǎng)景。小規(guī)模局域網(wǎng)通常部署在小型的網(wǎng)吧或者辦公室中,這些地方內(nèi)部主機(jī)不多,出接口可以通過(guò)撥號(hào)方式獲取一個(gè)臨時(shí)公網(wǎng)IP地址。Easy IP可以實(shí)現(xiàn)內(nèi)部主機(jī)使用這個(gè)臨時(shí)公網(wǎng)IP地址訪問(wèn)Internet。
NAT ALG
NAT ALG(Application Level Gateway,應(yīng)用級(jí)網(wǎng)關(guān))是特定的應(yīng)用協(xié)議的轉(zhuǎn)換代理,可以完成應(yīng)用層數(shù)據(jù)中攜帶的地址及端口號(hào)信息的轉(zhuǎn)換。
在以太網(wǎng)數(shù)據(jù)幀結(jié)構(gòu)中,IP首部包含32位的源IP地址和32位的目的IP地址,TCP首部包含16位的源端口號(hào)和16位的目的端口號(hào)。但是很多協(xié)議會(huì)通過(guò)IP報(bào)文的數(shù)據(jù)載荷進(jìn)行新端口甚至新IP地址的協(xié)商。協(xié)商完成之后,通信雙方會(huì)根據(jù)協(xié)商結(jié)果建立新的連接進(jìn)行后續(xù)報(bào)文的傳輸。而這些協(xié)商出來(lái)的端口和IP地址往往是隨機(jī)的,管理員并不能為其提前配置好相應(yīng)的NAT規(guī)則,這些協(xié)議在NAT轉(zhuǎn)換過(guò)程中就會(huì)出現(xiàn)問(wèn)題。
普通NAT實(shí)現(xiàn)了對(duì)UDP或TCP報(bào)文頭中的的IP地址及端口轉(zhuǎn)換功能,但對(duì)應(yīng)用層數(shù)據(jù)載荷中的字段無(wú)能為力,在許多應(yīng)用層協(xié)議中,比如多媒體協(xié)議(H.323、SIP等)、FTP、SQLNET等,TCP/UDP載荷中帶有地址或者端口信息,這些內(nèi)容不能被NAT進(jìn)行有效的轉(zhuǎn)換,就可能導(dǎo)致問(wèn)題。而NAT ALG(Application Level Gateway,應(yīng)用層網(wǎng)關(guān))技術(shù)能對(duì)多通道協(xié)議進(jìn)行應(yīng)用層報(bào)文信息的解析和地址轉(zhuǎn)換,將載荷中需要進(jìn)行地址轉(zhuǎn)換的IP地址和端口或者需特殊處理的字段進(jìn)行相應(yīng)的轉(zhuǎn)換和處理,從而保證應(yīng)用層通信的正確性。
例如,FTP應(yīng)用就由數(shù)據(jù)連接和控制連接共同完成,而且數(shù)據(jù)連接的建立動(dòng)態(tài)地由控制連接中的載荷字段信息決定,這就需要ALG來(lái)完成載荷字段信息的轉(zhuǎn)換,以保證后續(xù)數(shù)據(jù)連接的正確建立。
為了實(shí)現(xiàn)應(yīng)用層協(xié)議的轉(zhuǎn)發(fā)策略而提出了ASPF功能。ASPF功能的主要目的是通過(guò)對(duì)應(yīng)用層協(xié)議的報(bào)文分析,為其開(kāi)放相應(yīng)的包過(guò)濾規(guī)則,而NAT ALG的主要目的,是為其開(kāi)放相應(yīng)的NAT規(guī)則。由于兩者通常都是結(jié)合使用的,所以使用同一條命令就可以將兩者同時(shí)開(kāi)啟。
圖中私網(wǎng)側(cè)的主機(jī)要訪問(wèn)公網(wǎng)的FTP服務(wù)器。NAT設(shè)備上配置了私網(wǎng)地址192.168.1.2到公網(wǎng)地址8.8.8.11的映射,實(shí)現(xiàn)地址的NAT轉(zhuǎn)換,以支持私網(wǎng)主機(jī)對(duì)公網(wǎng)的訪問(wèn)。組網(wǎng)中,若沒(méi)有ALG對(duì)報(bào)文載荷的處理,私網(wǎng)主機(jī)發(fā)送的PORT報(bào)文到達(dá)服務(wù)器端后,服務(wù)器無(wú)法根據(jù)私網(wǎng)地址進(jìn)行尋址,也就無(wú)法建立正確的數(shù)據(jù)連接。整個(gè)通信過(guò)程包括如下四個(gè)階段:
l
NAT服務(wù)器
使外網(wǎng)用戶能夠訪問(wèn)私網(wǎng)服務(wù)器
一般采用靜態(tài)映射(NAT Server):公網(wǎng)地址和私網(wǎng)地址一對(duì)一進(jìn)行映射。外網(wǎng)用戶想要訪問(wèn)內(nèi)網(wǎng)用戶只需要目的IP地址為設(shè)置好的公網(wǎng)地址。
為什么?:因?yàn)橥饩W(wǎng)用戶訪問(wèn)私網(wǎng)服務(wù)器,若不指定一個(gè)公網(wǎng)地址,則外網(wǎng)用戶不能訪問(wèn)私網(wǎng)服務(wù)器;若不做靜態(tài)映射,沒(méi)有固定的公網(wǎng)地址,那么公網(wǎng)用戶訪問(wèn)時(shí)需要每次都輸入不同的地址。
雙向NAT技術(shù)
雙向NAT應(yīng)用場(chǎng)景的通信雙方訪問(wèn)對(duì)方的時(shí)候目的地址都不是真實(shí)的地址,而是NAT轉(zhuǎn)換后的地址。
一般來(lái)說(shuō),內(nèi)網(wǎng)屬于高優(yōu)先級(jí)區(qū)域,外網(wǎng)屬于低優(yōu)先級(jí)區(qū)域。當(dāng)?shù)蛢?yōu)先級(jí)安全區(qū)域的外網(wǎng)用戶訪問(wèn)內(nèi)部服務(wù)器的公網(wǎng)地址時(shí),會(huì)將報(bào)文的目的地址轉(zhuǎn)換為內(nèi)部服務(wù)器的私網(wǎng)地址,但內(nèi)部服務(wù)器需要配置到該公網(wǎng)地址的路由。
l如果要避免配置到公網(wǎng)地址的路由,則可以配置從低優(yōu)先級(jí)安全區(qū)域到高優(yōu)先級(jí)安全區(qū)域方向的NAT。同一個(gè)安全區(qū)域內(nèi)的訪問(wèn)需要作NAT,則需要配置域內(nèi)NAT功能。
域間雙向NAT(NAT Server+源NAT)
當(dāng)配置NAT Server時(shí),服務(wù)器需要配置到公網(wǎng)地址的路由才可正常發(fā)送回應(yīng)報(bào)文。如果要簡(jiǎn)化配置,避免配置到公網(wǎng)地址的路由,則可以對(duì)外網(wǎng)用戶的源IP地址也進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換后的源IP地址與服務(wù)器的私網(wǎng)地址在同一網(wǎng)段。這樣內(nèi)部服務(wù)器會(huì)缺省將回應(yīng)報(bào)文發(fā)給網(wǎng)關(guān),即設(shè)備本身,由設(shè)備來(lái)轉(zhuǎn)發(fā)回應(yīng)報(bào)文。
域內(nèi)雙向NAT
若需要地址轉(zhuǎn)換的雙方都在同一個(gè)安全域內(nèi),那么就涉及到了域內(nèi)NAT的情況。當(dāng)FTP服務(wù)器和用戶均在Trust區(qū)域,用戶訪問(wèn)FTP服務(wù)器的對(duì)外的公網(wǎng)IP地址,這樣用戶與FTP服務(wù)器之間所有的交互報(bào)文都要經(jīng)過(guò)防火墻。這時(shí)需要同時(shí)配置內(nèi)部服務(wù)器和域內(nèi)NAT。
域內(nèi)NAT是指當(dāng)內(nèi)網(wǎng)用戶和服務(wù)器部署在同一安全區(qū)域的情況下,仍然希望內(nèi)網(wǎng)用戶只能通過(guò)訪問(wèn)服務(wù)器的公網(wǎng)地址的場(chǎng)景。在實(shí)現(xiàn)域內(nèi)NAT過(guò)程中,既要將訪問(wèn)內(nèi)部服務(wù)器的報(bào)文的目的地址由公網(wǎng)地址轉(zhuǎn)換為私網(wǎng)地址,又需要將源地址由私網(wǎng)地址轉(zhuǎn)換為公網(wǎng)地址。
總結(jié)
以上是生活随笔為你收集整理的NAT 网络地址转换技术(一)NAT原理介绍:静态NAT、动态NAT、NAPT、Easy IP、NAT ALG、NAT服务器、双向NAT技术的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 报错记录-unpected width
- 下一篇: mii-tool的限制/mii-tool