NAT技术及应用
之前我們討論了, IPv4協議中, IP地址數量不充足的問題。
(對于IP協議請看文章這里寫鏈接內容)
我們再來了解一個技術:NAT技術(網絡地址轉換)
什么是NAT
簡單點說,就是在局域網中使用內部地址,而當內部要與外網進行通訊時,需要經過網關,就在網關處,將內部地址替換成公用地址。
從外在外部公網上正常使用,NAT可以使多臺計算機共享internet連接,這一功能很好地解決了公共IP地址緊缺的問題。
通常這種方法,可以只申請一個合法IP地址,就是把整個局域網中的計算機接入internet中。這時NAT屏蔽了計算機網絡,所有內部網計算機對于公共網絡來說是不可見的,而內部網計算機用戶通常不會意識到NAT的存在。
用以下圖來表示:
NAT功能通常被集成路由器,防火墻,ISDN路由器或者單獨的NAT設備中。
NAT的分類
1. 靜態NAT
通過手動設置,使internet客戶進行的通信能夠映射到某個特定的私有網絡地址和端口。
1、如果想讓連接在Internet上的計算機能夠使用某個網絡上的服務器以及應用程序,那么靜態映射是必須的,靜態映射不會從NAT轉換表中刪除。
2、如果在NAT轉換表中存在某個映射,那么NAT只是單向的從internet向私有網絡傳送數據。
3、這樣,NAT就為鏈接私有網絡部分的計算機提供了某種程度的保護,但是為了考慮internet的安全性,NAT就要配合全功能的防火墻一起使用。
2. 動態NAT
所謂的動態NAT只是轉換IP地址,為每一個內部的IP地址分配一個臨時的外部IP地址,主要應用于撥號,對于頻繁的遠程連接也可以采用動態NAT。當遠程用戶連接上之后,動態地址NAT就會分配給它一個IP地址,用戶斷開時,這個IP地址就會被釋放。
3. NAPT網絡地址轉換
兩種轉換方式:SNAT、DNAT
(1)、SNAT:修改數據包的源地址,源NAT改變第一個數據包的來源地址,它永遠會在數據包發送到網絡之前完成。
(2)、DNAT:修改數據包的目的地址,與SNAT相反,它是改變第一個數據包的目的地址。
NAPT的過程
如果說,NAT是IP的映射,那么NAPT就是端口的映射。
那么有什么作用呢?
按照NAT的思想,如果局域網內,有多個主機都訪問同一個外網服務器, 那么對于服務器返回的數據中, 目的IP都是相同的。
那么NAT路由器如何判定將這個數據包轉發給哪個局域網的主機?
這時候NAPT就可以解決這個問題,使用IP+port來建立這個映射關系。
如下圖:
這種關聯關系也是由NAT路由器自動維護的。
例如在TCP的情況下, 建立連接時, 就會生成這個表項;
在斷開連接后, 就會刪除這個表項。
NAT原理
1、地址轉換
NAT基本工作原理:
當私有網主機和公共網主機通信的IP包經過NAT網關時,將IP包中的源IP或目的IP在私有IP和NAT的公共IP之間進行轉換
2、連接跟蹤
NAT Gateway在收到響應包后,就需要判斷將數據包轉發給誰。此時如果子網內僅有少量客戶機,可以用靜態NAT手工指定;但如果內網有多臺客戶機,并且各自訪問不同網站,這時候就需要連接跟蹤(connection track)。
3、端口轉換
客戶機訪問服務器為例,當僅有一臺客戶機訪問服務器時,NAT Gateway只須更改數據包的源IP或目的IP即可正常通訊。但是如果Client A和Client B同時訪問Web Server,那么當NAT Gateway收到響應包的時候,就無法判斷將數據包轉發給哪臺客戶機。
NAT應用
| 端口轉發 | 當內網主機對外提供服務時,使用的內部私有IP地址,外網無法直接訪問。故需要在網關上進行端口轉發,將特定服務的數據包轉發給內網主機 |
| 負載平衡 | 目的地址轉換NAT可以重定向一些服務器的連接到其他隨機選定的服務器 |
| 失效終結 | 目的地址轉換NAT可以用來提供高可靠性的服務。比如某系統有通過路由器訪問的關鍵服務器,路由器檢測到該服務器關機,便使用目的地址轉換NAT透明的把連接轉移到一個備份服務器上,提高系統的可靠性 |
| 透明代理 | 例如自己架設的服務器空間不足,需要將某些鏈接指向存在另外一臺服務器的空間,或者某臺計算機上沒有安裝IIS服務,但是卻想讓網友訪問該臺計算機上的內容,這個時候利用IIS的Web站點重定向即可輕松的幫助我們搞定。 |
NAT的缺陷
由于NAT依賴轉換表, 所以有諸多限制:
(1)不能處理嵌入式IP地址或端口
NAT設備不能翻譯那些嵌入到應用數據部分的IP地址或端口信息,它只能翻譯那種正常位于IP首部中的地址信息和位于TCP/UDP首部中的端口信息
(2)不能從公網訪問內部網絡服務
由于內網是私有IP,所以不能直接從公網訪問內部網絡服務。
(3)有一些應用程序雖然是用A端口發送數據的,但卻要用B端口進行接收,不過NAT設備翻譯時卻不知道這一點,它仍然建立一條針對A端口的映射,結果對方響應的數據要傳給B端口時,NAT設備卻找不到相關映射條目而會丟棄數據包。
NAT和代理服務器
路由器往往都具備NAT設備的功能,通過NAT設備進行中轉,完成子網設備和其他子網設備的通信過程。
代理服務器看起來和NAT設備有一點像,客戶端像代理服務器發送請求, 代理服務器將請求轉發給真正要請求的服務器;服務器返回結果后, 代理服務器又把結果回傳給客戶端。
那么NAT和代理服務器的區別有哪些呢?
(1)從應用上講,NAT設備是網絡基礎設備之一,解決的是IP不足的問題。代理服務器則是更貼近具體應用,通過代理服務器進行翻墻,另外像迅游這樣的加速器, 也是使用代理服務器。
(2)從底層實現上講,NAT是工作在網絡層, 直接對IP地址進行替換。 代理服務器往往工作在應用層。
(3)從使用范圍上講,NAT一般在局域網的出口部署, 代理服務器可以在局域網做, 也可以在廣域網做, 也可以跨網
(4) 從部署位置上看,NAT一般集成在防火墻, 路由器等硬件設備上,代理服務器則是一個軟件程序, 需要部署在服務器上。
代理服務器是一種應用比較廣的技術:
(1) 翻墻:廣域網中的代理
(2) 負載均衡:局域網中的代理
總結
- 上一篇: NAT技术介绍
- 下一篇: 电脑主板不能保存CMOS的问题及解决方法