在計算機網路中,網路位址轉換(Network Address Translation,縮寫為NAT),也稱為網路遮蔽或IP遮罩(IP masquerading),是一種在IP封包通過路由器或防火牆時重寫入來源IP位址或目的IP位址的技術。這種技術普遍被使用在有多台主機但只透過一個公有IP位址存取網際網路的私有網路。它是一個方便且廣泛應用的技術。 當然,NAT也讓主機之間的通訊變得複雜,導致了通訊效率的降低。
概述
無NAT網絡,假設每個存取子網都需要一組/24的IP ,而且還能對外連接,對外的路由至少要保留或申請1000個對外IP帶NAT網絡,透過NAT轉換,接入子網可以使用私人IP,對外連接時由路由綁定私人IP與對外IP的關係,修改傳輸的IP包上的位址,因此只需要255個對外IP就能滿足內部接取子網路的對外連線需求。 (建議學習:PHP影片教學)
1990年代中期,NAT是作為一種解決IPv4位址短缺以避免保留IP位址困難的方案而流行起來的。網路位址轉換在許多國家廣泛使用。所以NAT就成了家庭和小型辦公室網路連線上的路由器的一個標準特徵,因為對他們來說,申請獨立的IP位址的代價要高於所帶來的效益。
在一個典型的設定中,一個本地網路使用一個專有網路的指定子網路(例如192.168.x.x或10.x.x.x)和連在這個網路上的一個路由器。這個路由器佔有這個網路位址空間的一個專有位址(例如192.168.0.1),同時它也透過一個或多個因特網服務供應商提供的公有的IP位址(叫做「過載」NAT)連接到網際網路上。當資訊由本地網路傳遞給因特網時,來源位址會從專有位址轉換為公用位址。由路由器追蹤每個連接上的基本數據,主要是目的位址和連接埠。當有回復返迴路由器時,它會透過輸出階段記錄的連線追蹤資料來決定該轉送給內部網路的哪個主機;如果有多個公用位址可用,當封包傳回時,TCP或UDP客戶機的連接埠號碼可以用來分解資料包。對於因特網上的通信,路由器本身充源和目的。
流行在網路上的一種看法認為,IPv6的廣泛採用將使得NAT不再需要,因為NAT只是一個處理IPv4的位址空間不足的方法。
分類
NAT有三種:靜態NAT(StaticNAT)、動態位址NAT(PooledNAT)、網路位址連接埠轉換NAPT(Port-LevelNAT)。
其中,網路位址連接埠轉換NAPT(NetworkAddressPortTranslation)則是把內部位址對應到外部網路的一個IP位址的不同連接埠。它可以將中小型的網路隱藏在一個合法的IP位址後面。 NAPT與動態位址NAT不同,它將內部連線對應到外部網路中的一個單獨的IP位址上,同時在該位址上加上一個由NAT裝置選定的連接埠號碼。
NAPT是使用最普遍的一種轉換方式,在HomeGW中也主要使用該方式。它又包含兩種轉換方式:SNAT和DNAT。
(1)來源NAT(SourceNAT,SNAT):修改封包的來源位址。來源NAT改變第一個資料包的來源位址,它永遠會在資料包發送到網路之前完成,資料包偽裝就是一具SNAT的例子。
(2)目的NAT(DestinationNAT,DNAT):修改封包的目的位址。 DestinationNAT剛好與SNAT相反,它是改變第一個資料懈的目的地位址,如平衡負載、連接埠轉送和透明代理就是屬於DNAT。
更多PHP相關技術文章,請造訪PHP圖文教學欄位進行學習!
以上是網路位址轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!