NAT技術(shù)的基本功能就是,用1個或幾個IP地址來實現(xiàn)1個私有網(wǎng)中的所有主機和公共網(wǎng)中主機的IP通信.NAT技術(shù)可為TCP,
UDP以及
ICMP數(shù)據(jù)包提供透明轉(zhuǎn)發(fā).
1,NAT工作原理
NAT的基本工作原理是,當私有網(wǎng)主機和公共網(wǎng)主機通信的IP包經(jīng)過NAT網(wǎng)關(guān)時,將IP包中的源IP或目的IP在私有IP和NAT的公共IP之間進行轉(zhuǎn)換.
NAT網(wǎng)關(guān)有2個網(wǎng)絡(luò)端口,其中公共網(wǎng)絡(luò)端口的IP地址是統(tǒng)一分配的公共IP,為202.204.65.2;私有網(wǎng)絡(luò)端口的IP地址是保留地址,為192.168.1.1.私有網(wǎng)中的主機192.168.1.2向公共網(wǎng)中的主機166.111.80.200發(fā)送了1個IP包(Des=166.111.80.200,Src=192.168.1.2).當IP包經(jīng)過NAT網(wǎng)關(guān)時,NAT會將IP包的源IP轉(zhuǎn)換為NAT的公共IP并轉(zhuǎn)發(fā)到公共網(wǎng),此時IP包(Des=166.111.80.200,Src=202.204.65.2)中已經(jīng)不含任何私有網(wǎng)IP的信息.由于IP包的源IP已經(jīng)被轉(zhuǎn)換成NAT的公共IP,響應(yīng)的IP包(Des=202.204.65.2,Src=166.111.80.200)將被發(fā)送到NAT.這時,NAT會將IP包的目的IP轉(zhuǎn)換成私有網(wǎng)中主機的IP,然后將IP包(Des=192.168.1.2,Src=166.111.80.200)轉(zhuǎn)發(fā)到私有網(wǎng).對于通信雙方而言,這種地址的轉(zhuǎn)換過程是完全透明的.
2, NAPT技術(shù)
由于NAT實現(xiàn)是私有IP和NAT的公共IP之間的轉(zhuǎn)換,那么,私有網(wǎng)中同時與公共網(wǎng)進行通信的主機數(shù)量就受到NAT的公共IP地址數(shù)量的限制.為了克服這種限制,NAT被進一步擴展到在進行IP地址轉(zhuǎn)換的同時進行Port的轉(zhuǎn)換,這就是網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Network Address Port Translation)技術(shù).
NAPT與NAT的區(qū)別在于,NAPT不僅轉(zhuǎn)換IP包中的IP地址,還對IP包中TCP和
UDP的Port進行轉(zhuǎn)換.這使得多臺私有網(wǎng)主機利用1個NAT公共IP就可以同時和公共網(wǎng)進行通信.
如圖2所示,私有網(wǎng)主機192.168.1.2要訪問公共網(wǎng)中的Http服務(wù)器166.111.80.200.首先,要建立TCP連接,假設(shè)分配的TCP Port是1010,發(fā)送了1個IP包(Des=166.111.80.200:80,Src=192.168.1.2:1010),當IP包經(jīng)過NAT網(wǎng)關(guān)時,NAT會將IP包的源IP轉(zhuǎn)換為NAT的公共IP,同時將源Port轉(zhuǎn)換為NAT動態(tài)分配的1個Port.然后,轉(zhuǎn)發(fā)到公共網(wǎng),此時IP包(Des=166.111.80.200:80,Src=202.204.65.2:2010)已經(jīng)不含任何私有網(wǎng)IP和Port的信息.由于IP包的源IP和Port已經(jīng)被轉(zhuǎn)換成NAT的公共IP和Port,響應(yīng)的IP包(Des=202.204.65.2:,Src=2010166.111.80.200:80)將被發(fā)送到NAT.這時NAT會將IP包的目的IP轉(zhuǎn)換成私有網(wǎng)主機的IP,同時將目的Port轉(zhuǎn)換為私有網(wǎng)主機的Port,然后將IP包(Des=192.168.1.2:1010,Src=166.111.80.200:80)轉(zhuǎn)發(fā)到私網(wǎng).對于通信雙方而言,這種IP地址和Port的轉(zhuǎn)換是完全透明的.
3,NAPT映射條目:記錄上面所說的轉(zhuǎn)化IP地址和端口的條目.
NAPT映射表:NAPT映射條目的集合.
4,NAPT帶來的后果:路由器只能根據(jù)動態(tài)建立的NAPT表來轉(zhuǎn)發(fā)來自外網(wǎng)的數(shù)據(jù)包,外網(wǎng)不能主動建立到內(nèi)網(wǎng)的連接.虛擬服務(wù)器和UPNP等轉(zhuǎn)發(fā)設(shè)置就是為了解決這個問題而產(chǎn)生的,人為(虛擬服務(wù)器)或者通過軟件(UPNP組件)打開一條到內(nèi)網(wǎng)的通道.
---------------------------------------------------------------------------------
NAPT 分類: 網(wǎng)絡(luò)協(xié)議
NAT英文全稱是“Network Address Translation”,中文意思是“網(wǎng)絡(luò)地址轉(zhuǎn)換”,NAT有三種類型:靜態(tài)NAT(Static NAT)、動態(tài)地址NAT(Pooled NAT)、網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Port-Level NAT)。 其中靜態(tài)NAT設(shè)置起來最為簡單和最容易實現(xiàn)的一種,內(nèi)部網(wǎng)絡(luò)中的每個主機都被永久映射成外部網(wǎng)絡(luò)中的某個合法的地址。而動態(tài)地址NAT則是在外部網(wǎng)絡(luò)中定義了一系列的合法地址,采用動態(tài)分配的方法映射到內(nèi)部網(wǎng)絡(luò)。NAPT則是把內(nèi)部地址映射到外部網(wǎng)絡(luò)的一個IP地址的不同端口上。根據(jù)不同的需要,三種NAT方案各有利弊。 動態(tài)地址NAT只是轉(zhuǎn)換IP地址,它為每一個內(nèi)部的IP地址分配一個臨時的外部IP地址,主要應(yīng)用于撥號,對于頻繁的遠程聯(lián)接也可以采用動態(tài)NAT。當遠程用戶聯(lián)接上之后,動態(tài)地址NAT就會分配給他一個IP地址,用戶斷開時,這個IP地址就會被釋放而留待以后使用。 網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Network Address Port Translation)是人們比較熟悉的一種轉(zhuǎn)換方式。NAPT普遍應(yīng)用于接入設(shè)備中,它可以將中小型的網(wǎng)絡(luò)隱藏在一個合法的IP地址后面。NAPT與動態(tài)地址NAT不同,它將內(nèi)部連接映射到外部網(wǎng)絡(luò)中的一個單獨的IP地址上,同時在該地址上加上一個由NAT設(shè)備選定的TCP端口號。 在Internet中使用NAPT時,所有不同的信息流看起來好像來源于同一個IP地址。這個優(yōu)點在小型辦公室內(nèi)非常實用,通過從ISP處申請的一個IP地址,將多個連接通過NAPT接入Internet。實際上,許多SOHO遠程訪問設(shè)備支持基于PPP的動態(tài)IP地址。這樣,ISP甚至不需要支持NAPT,就可以做到多個內(nèi)部IP地址共用一個外部IP地址上Internet,雖然這樣會導(dǎo)致信道的一定擁塞,但考慮到節(jié)省的ISP上網(wǎng)費用和易管理的特點,用NAPT還是很值得的。
NAPT(Network Address Port Translation)即網(wǎng)絡(luò)端口地址轉(zhuǎn)換,就是將多個內(nèi)部地址映射為一個合法公網(wǎng)地址,但以不同的協(xié)議端口號與不同的內(nèi)部地址相對應(yīng)。也就是<內(nèi)部地址+內(nèi)部端口>與<外部地址+外部端口>之間的轉(zhuǎn)換。NAPT普遍用于接入設(shè)備中,它可以將中小型的網(wǎng)絡(luò)隱藏在一個合法的IP地址后面。
NAPT使得一組主機可以共享唯一的外部地址,當位于內(nèi)部網(wǎng)絡(luò)中的主機通過NAT設(shè)備向外部主機發(fā)起會話請求時,NAT設(shè)備就會查詢NAT表,看是否有相關(guān)會話記錄,如果有相關(guān)記錄,就會將內(nèi)部IP地址及端口同時進行轉(zhuǎn)換,再轉(zhuǎn)發(fā)出去;如果沒有相關(guān)記錄,進行IP地址和端口轉(zhuǎn)換的同時,還會在NAT表增加一條該會話的記錄。外部主機接收到數(shù)據(jù)包后,用接受到的合法公網(wǎng)地址及端口作為目的IP地址及端口來響應(yīng),NAT設(shè)備接收到外部回來的數(shù)據(jù)包,再根據(jù)NAT表中的記錄把目的地址及端口轉(zhuǎn)換成對應(yīng)的內(nèi)部IP地址及端口,轉(zhuǎn)發(fā)給該內(nèi)部主機。 |