NAT(Network Address Translation)是一種網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù),是一種將私有地址轉(zhuǎn)化為合法IP地址的轉(zhuǎn)換技術(shù)。它被廣泛應(yīng)用于各種數(shù)據(jù)中心網(wǎng)絡(luò)中。NAT不僅完美地解決了IP地址不足的問題,還能夠有效地避免來自網(wǎng)絡(luò)外部的攻擊,隱藏并保護(hù)網(wǎng)絡(luò)內(nèi)部的服務(wù)器。數(shù)據(jù)中心內(nèi)部的服務(wù)器一般提供內(nèi)網(wǎng)和外網(wǎng)兩個網(wǎng)卡,內(nèi)網(wǎng)訪問主要采用的是私有地址,外網(wǎng)訪問采用的是公有地址,由于公有地址的數(shù)量是有限的,所以內(nèi)網(wǎng)中要使用大量的私有地址,通過NAT的方式實現(xiàn)私有地址與公有地址之間的轉(zhuǎn)換,實現(xiàn)私有地址也可以訪問外網(wǎng)的功能。這么有用的功能,怎能不趕快去了解一下,本文將詳細(xì)介紹一下NAT技術(shù)。NAT可以分為兩大類技術(shù):基礎(chǔ)NAT和NAPT兩大部分。基礎(chǔ)NAT,它僅將私有主機(jī)的私有IP地址轉(zhuǎn)換成公有IP地址,但并不將TCP/UDP端口信息進(jìn)行轉(zhuǎn)換,有動態(tài)和靜態(tài)之區(qū)分。NAPT是人們比較熟悉的一種轉(zhuǎn)換方式。NAPT普遍應(yīng)用于數(shù)據(jù)中心網(wǎng)絡(luò)接入設(shè)備中,它可以將中小型的網(wǎng)絡(luò)隱藏在一個合法的IP地址后面,它將私有連接映射到公有網(wǎng)絡(luò)中的一個單獨(dú)的IP地址上,同時在該地址上加上一個由NAT設(shè)備選定的TCP端口號。NAPT又分為對稱型NAT和非對稱型NAT。
對稱型NAT
對稱型NAT也叫圓錐型NAT,是指私有地址設(shè)備用同一個IP和端口去連接外面任何一臺服務(wù)器,它在NAT服務(wù)器上映射的都是同一個IP地址和端口,也就是說同一個私有地址和端口在NAT上都只有一個出口,是個一對多的關(guān)系,這個就有點(diǎn)像圓錐,故此得名是圓錐型NAT。圓錐形NAT又可以分為三類:完全圓錐型NAT,這種NAT會將私有地址轉(zhuǎn)換成公有地址并綁定,任何數(shù)據(jù)報文都可以通過公有地址送到私有主機(jī)地址上。從一個私有IP地址和端口來的所有請求,都映射到相同的公有IP地址和端口。并且,任何公有主機(jī)通過向映射的公有地址發(fā)送報文,都可以實現(xiàn)和私有主機(jī)進(jìn)行通信。這是一種比較寬松的策略,只要建立了私有網(wǎng)絡(luò)的IP地址和端口與公有IP地址和端口的映射關(guān)系,所有的Internet上的主機(jī)都可以訪問該NAT之后的主機(jī);地址限制圓錐型NAT,這種NAT會將從相同的私有IP地址和端口來的所有請求映射到相同的公有IP地址和端口。但是與完全圓錐型NAT不同,當(dāng)且僅當(dāng)私有主機(jī)之前已經(jīng)向公有主機(jī)發(fā)送過報文,此時公有主機(jī)才能向私有主機(jī)發(fā)送報文;端口限制圓錐型NAT,這種NAT與地址限制圓錐型NAT類似,但是更為嚴(yán)格,端口受限圓錐型NAT增加了端口號的限制。當(dāng)前,僅當(dāng)私有主機(jī)之前已經(jīng)向公有主機(jī)發(fā)送了報文,公有主機(jī)才能和此私有主機(jī)通信。
圓錐NAT主要部署與用戶對應(yīng)用體驗非常敏感的地方,如P2P下載,由于破壞了端到端的網(wǎng)絡(luò)模型,如果應(yīng)用不支持NAT穿越協(xié)議,由公網(wǎng)側(cè)發(fā)起對NAT后私網(wǎng)的下載報文將被NAT設(shè)備丟棄,部署圓錐NAT將改善這種情況。目前各種UDP協(xié)議也考慮了NAT設(shè)備,一些基于UDP協(xié)議的應(yīng)用自身就可以穿越NAT設(shè)備,如QQ等。地址限制圓錐型NAT及端口限制圓錐NAT,這兩種NAT無非就是對外部設(shè)備的IP及端口進(jìn)行進(jìn)一步的限制,如限制圓錐NAT就是對PC的IP地址進(jìn)行限制,只有PC的所有端口才可以對這地址及端口進(jìn)行訪問,而端口限制圓錐NAT就是對端口進(jìn)行限制,所有PC的端口只有一個,不像圓錐NAT對所有的IP及端口都沒有限制。
非對稱型NAT
圓錐型NAT也可以叫做非對稱型NAT,與之對應(yīng)的就是對稱型NAT。對稱型NAT是指把所有來自相同私有IP地址和端口號,到特定目的IP地址和端口號的請求映射到相同的公有IP地址和端口。如果同一主機(jī)使用不同的源地址和端口對,發(fā)送的目的地址不同,則使用不同的映射。只有收到了一個IP包的公有主機(jī)才能夠向該私有主機(jī)發(fā)送回一個UDP包。對稱的NAT不保證所有會話中的私有地址、私有端口和公有IP,公有端口之間綁定的一致性。相反,它為每個新的會話分配一個新的端口號。
根據(jù)以往的介紹,可以將NAT做一個大致的分類,如圖1所示:
圖1:NAT分類
當(dāng)然,NAT技術(shù)還不止這些,比如還有花生殼NAT-DDNS技術(shù),這是國內(nèi)知名品牌花生殼推出的NAT技術(shù)。NAT-DDNS利用動態(tài)域名服務(wù)(DDNS)和網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)的服務(wù)器實現(xiàn)公私網(wǎng)動態(tài)映射方法。NAT-DDNS 實現(xiàn)難度比傳統(tǒng) DDNS 大,采用“域名+端口”的訪問方式。新花生殼服務(wù)器會記錄每個新花生殼客戶端設(shè)置的映射,為不同內(nèi)網(wǎng)服務(wù)器的映射分配不同的訪問端口號,訪問者通過域名+端口號,就可以訪問到相應(yīng)內(nèi)網(wǎng)服務(wù)器的內(nèi)容。還有NAT444、NAT64、NAT-PT等一系列NAT新功能,這里提一下NAT444,NAT444是日本NTT公司提出來的NAT新技術(shù),是兩層NAT44的簡稱,屬于IPV6過渡技術(shù)的一種,它采用端口塊分配方式,可以從根本上解決用戶的溯源問題。
NAT是數(shù)據(jù)中心網(wǎng)絡(luò)必備設(shè)備之一,除非數(shù)據(jù)中心獲得的公有地址是充足的,或者數(shù)據(jù)中心完全作為內(nèi)網(wǎng)使用,與外網(wǎng)隔離,只要不是這樣的情況,就需要部署NAT設(shè)備。NAT設(shè)備往往會部署在數(shù)據(jù)中心的網(wǎng)絡(luò)出口處,所有從數(shù)據(jù)中心內(nèi)部訪問外部,或者從外部訪問數(shù)據(jù)中心內(nèi)部的流量都要經(jīng)過NAT設(shè)備,由NAT設(shè)備完整內(nèi)外網(wǎng)地址的映射。顯然,NAT設(shè)備的表項非常關(guān)鍵,一旦NAT出現(xiàn)問題,往往造成內(nèi)外網(wǎng)之間的業(yè)務(wù)互通出現(xiàn)問題,相互地址的對應(yīng)關(guān)系找不到,所以一般對于NAT設(shè)備數(shù)據(jù)中心都會做備份,將NAT數(shù)據(jù)在多臺設(shè)備上做備份,萬一其中的部分設(shè)備發(fā)生故障,還可以由其它設(shè)備接管,完成內(nèi)外網(wǎng)的地址映射。