NAT-網路地址轉換
藉助於NAT,"內部"網路透過路由器傳送資料包時,私有地址被轉換成合法的IP地址,一個區域網只需使用少量IP地址(甚至是1個)即可實現私有地址網路內所有計算機與Internet的通訊需求。
NAT可以藉助於某些代理伺服器來實現,但考慮到運算成本和網路效能,很多時候都是在路由器上來實現的。
NAT將自動修改IP報文頭申的源IP地址和目的IP地址,Ip地址校驗則在NAT處理過程中自動完成。有些應用程式將源IP地址嵌入到IP報文的資料部分中,所以還需要同時對報文進行修改,以匹配IP頭中已經修改過的源IP地址。
NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網路外部的攻擊,隱藏並保護網路內部的計算機.
[@more@]NAT的實現方式有三種,即靜態轉換Static Nat、動態轉換Dynamic Nat 和 埠多路複用OverLoad。
靜態轉換是指將內部網路的私有IP地址轉換為公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換為某個公有IP地址。藉助於靜態轉換,可以實現外部網路對內部網路中某些特定裝置(如伺服器)的訪問(需要使用Inbound static mapping 技術A web server hosted on the internal private network can be accessed from the Internet if an inbound static mapping is defined)。
動態轉換是指將內部網路的私有IP地址轉換為公用IP地址時,IP地址對是不確定的,而是隨機的,所有被授權訪問上Internet的私有IP地址可隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少於網路內部的計算機數量時。可以採用動態轉換的方式。
埠多路複用(Port address Translation,PAT)是指改變外出資料包的源埠並進行埠轉換,即埠地址轉換(PAT,Port Address Translation).採用埠多路複用方式。內部網路的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節約IP地址資源。同時,又可隱藏網路內部的所有主機,有效避免來自internet的攻擊。因此,目前網路中應用最多的就是埠多路複用方式。
基於埠的網路地址轉換的實現
1. NAT轉發資料包(TCP UDP)
每當一個外出的封包進入NAT盒。NAT會對改封包的進行改裝。封包的源IP地址(如192.168.X.Y 等內部地址)就會被該NAT的對外IP地址所替代。
(也許該NAT的對外IP地址也是個內部地址,發出的改裝後的封包需要下個NAT的處理,直到被轉換成一個真正的IP地址的封包出現在Internet上)
在封包的源IP地址被替代後,它的埠(TCP UDP)會被一個索引替換,該索引是指向NAT盒內部的有65536個表項的轉換表。表中的表項包含了原來的IP地址和源埠號。最後IP頭和TCP或UDP頭的校驗和都會被重新計算插入封包。這樣做的緣由是,對於NAT來說,有可能收到來自內部網路的兩個內部地址不用但源埠號相同的封包,所以從埠號上不能唯一確定這個資料包。
2. NAT接受來自外部網路的封包並轉發到內部網路。
前提:這個封包必須是作為NAT發出的資料包的回應,否則NAT就拋棄這個不請自來的封包
當封包到達NAT時,該封包的目的埠號就會被提取出來。作為索引在NAT裝換表中找到相應的表項,然後用內部的IP和埠號替換封包的目的IP和埠,重新計算IP和TCP UDP頭的校驗和,整理號封包後,該封包就會被轉發到內部網路的某個機器。
所對於外部伺服器來說,它自身認為只是與一個有真實IP的客戶通訊。對於內部網路中的機器來說,它自身認為是與伺服器在直接交換。NAT中間的封包的傳送和接受處理對於二者來說都是透明的。
NAT的缺點:NAT的設計沒有考慮讓其後面的主機去被動的接受連線,所以要隱藏在NAT後面的兩臺主機建立TCP/UDP連線,就需要一箇中介伺服器來幫助它們完成初始化工作。這裡都需要進行一個UDP和TCP的打洞的過程了。
NAT Inbound Mapping
Recall that by default, a NAT server will drop all packets that are not replies to requests that were originated from the internal private network
在各種各樣的NAT中,最常見的型別是傳統的(外出式OutBand)NAT,外出式NAT預設狀況下,僅允許開往外地的會話(IP封包)透過,到來的封包會被拋棄,除非NAT標識它們是從內部網路初始化的現存會話的一部分,也就是說是對內部網路外出會話請求的回應。所在要讓兩個在不用NAT後面的節點進行通訊時,外出式NAT與點與點通訊相牴觸。因為不管哪一方初始化這個會話,另一方都會拒絕。所以必須藉助伺服器的幫助使p2p會話看起來像兩個NAT的外出會話。
對於內部網路放置web伺服器,肯定是不能用到外出式NAT,外出式NAT會拋棄所有的不是對內部網路會話的回應的封包。讓伺服器放置到內部網路,需要使用Indound
Static mapping技術,可以把NAT路由器上的特定外部埠靜態對映到內部網路上的某個IP的埠上(如果有很多IP地址,可以把一個外部地址對映到內部的節點上)。
對於內建web伺服器,就向內對映80埠。
當配置NAT建立好向內的靜態對映後,當NAT路由器接收到TCP 80埠的封包後,路由器會將其轉發到內部網路的web伺服器上。由於web服務其是隱藏在內部網路的,所以外部的客戶端根本不會知道伺服器的確切位置。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23410886/viewspace-1031634/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網路埠地址轉換 NAPT 配置APT
- 網路裝置配置與管理————17、網路地址轉換NAT
- 網路地址轉換 NAT 配置
- NAT(網路地址轉換)(三)
- NAT(網路地址轉換)(四)
- iptables(三)網路地址轉換NAT
- 網路地址轉換(NAT)技術是否拖慢了網際網路發展?
- 靜態地址轉換+埠複用地址轉換
- 動態地址轉換+埠複用地址轉換
- 網路地址轉換NAT原理及其作用
- Excel地址轉換Excel
- vbox 網路地址轉換(NAT) 埠轉發
- CCNA/CCNP學習教程:網路地址轉換(NAT)(轉)
- Solaris網路管理:網路地址和掩碼(轉)
- 網路地址轉換(NAT)的報文跟蹤
- 如何配置網路地址轉換(NAT)—Vecloud微雲Cloud
- 網路地址轉換NAT原理及應用-連線跟蹤--埠轉換*******************
- 使用Javascript將相對路徑地址轉換為絕對路徑JavaScript
- URL地址特殊字元轉換字元
- 網段隔離器的網路地址轉換NAT技術
- 《Unix 網路程式設計》11:名字和地址轉換程式設計
- Windows下換網路卡IP地址佔用的解決(轉)Windows
- java將IP地址轉換為數字以及逆向轉換Java
- 網路基礎知識 Network Address Translations 網路地址轉換
- ARP協議 地址解析協議:IP地址轉換為MAC地址協議Mac
- 埠複用動態地址轉換
- 【Go】IP地址轉換:數字與字串之間高效轉換Go字串
- IP地址、子網掩碼、網路號、主機號、網路地址、主機地址
- 利用網路請求將網路圖片轉換成Bitmap格式
- 西安網路 繳費地址
- 網際網路IP地址備案管理辦法 (2005)[轉]
- 為什麼IPv6不能擺脫NAT網路地址轉換?
- 網頁地址編碼解碼(網頁地址明文密文轉換)url編碼解碼 Python3網頁Python
- PTA 7-18 IP地址轉換(JAVA)Java
- LVS - 地址轉換(NAT)模式示例模式
- retrofit網路請求框架的地址及方法地址框架
- 《網路IP地址管理》IP地址重要性薦
- 轉換RDBA的檔案和資料塊地址(轉)