NAT(网络地址转换)技术与代理服务器原理
一、????Nat技術:
NAT英文全稱是“Network Address Translation”,中文意思是“網絡地址轉換”,它是一個IETF(Internet Engineering Task Force,Internet工程任務組)標準,允許一個整體機構以一個公用IP(Internet Protocol)地址出現在Internet上。顧名思義,它是一種把內部私有網絡地址(IP地址)翻譯成合法網絡IP地址的技術,如下圖所示。因此我們可以認為,NAT在一定程度上,能夠有效的解決公網地址不足的問題。
簡單地說,NAT就是在局域網內部網絡中使用內部地址,而當內部節點要與外部網絡進行通訊時,就在網關(可以理解為出口,打個比方就像院子的門一樣)處,將內部地址替換成公用地址,從而在外部公網(internet)上正常使用,NAT可以使多臺計算機共享Internet連接,這一功能很好地解決了公共 IP地址緊缺的問題。通過這種方法,可以只申請一個合法IP地址,就把整個局域網中的計算機接入Internet中。這時,NAT屏蔽了內部網絡,所有內部網計算機對于公共網絡來說是不可見的,而內部網計算機用戶通常不會意識到NAT的存在。如下圖所示。這里提到的內部地址,是指在內部網絡中分配給節點的私有IP地址,這個地址只能在內部網絡中使用,不能被路由轉發。
NAT 功能通常被集成到路由器、防火墻、ISDN路由器或者單獨的NAT設備中。
二、 分類:
? NAT有三種類型:靜態NAT(Static NAT)、動態地址NAT(Pooled NAT)、網絡地址端口轉換NAPT(Port-Level NAT)。
1、靜態NAT
通過手動設置,使 Internet 客戶進行的通信能夠映射到某個特定的私有網絡地址和端口。如果想讓連接在 Internet 上的計算機能夠使用某個私有網絡上的服務器(如網站服務器)以及應用程序(如游戲),那么靜態映射是必需的。靜態映射不會從 NAT 轉換表中刪除。
如果在 NAT 轉換表中存在某個映射,那么 NAT 只是單向地從 Internet 向私有網絡傳送數據。這樣,NAT 就為連接到私有網絡部分的計算機提供了某種程度的保護。但是,如果考慮到 Internet 的安全性,NAT 就要配合全功能的防火墻一起使用。
對于以上網絡拓撲圖,當內網主機 10.1.1.1如果要與外網的主機201.0.0.11通信時,主機(IP:10.1.1.1)的數據包經過路由器時,路由器通過查找NAT table 將IP數據包的源IP地址(10.1.1.1)改成與之對應的全局IP地址(201.0.0.1),而目標IP地址201.0.0.11保持不變,這樣,數據包就能到達201.0.0.11。而當主機HostB(IP:201.0.0.11) 響應的數據包到達與內網相連接的路由器時,路由器同樣查找NAT table,將IP數據包的目的IP地址改成10.1.1.1,這樣內網主機就能接收到外網主機發過來的數據包。在靜態NAT方式中,內部的IP地址與公有IP地址是一種一一對應的映射關系,所以,采用這種方式的前提是,機構能夠申請到足夠多的全局IP地址。
2、 動態NAT
動態地址NAT只是轉換IP地址,它為每一個內部的IP地址分配一個臨時的外部IP地址,主要應用于撥號,對于頻繁的遠程聯接也可以采用動態NAT。當遠程用戶聯接上之后,動態地址NAT就會分配給他一個IP地址,用戶斷開時,這個IP地址就會被釋放而留待以后使用。
動態NAT方式適合于 當機構申請到的全局IP地址較少,而內部網絡主機較多的情況。內網主機IP與全局IP地址是多對一的關系。當數據包進出內網時,具有NAT功能的設備對IP數據包的處理與靜態NAT的一樣,只是NAT table表中的記錄是動態的,若內網主機在一定時間內沒有和外部網絡通信,有關它的IP地址映射關系將會被刪除,并且會把該全局IP地址分配給新的IP數據包使用,形成新的NAT table映射記錄。
3、端口多路復用?
端口多路復用是指改變外出數據包的源端口并進行端口轉換,即端口地址轉換(PAT,Port Address Translation).采用端口多路復用方式。內部網絡的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節約IP地址資源。同時,又可隱藏網絡內部的所有主機,有效避免來自internet的攻擊。因此,目前網絡中應用最多的就是端口多路復用方式。
1)當內網主機需要與Internet建立連接時,首先將請求發送到端口NAT服務器。NAT服務器接收到請求后,根據接收到的數據包,檢查端口NAT映射表;如果還沒有為該內網主機建立地址轉換映射項,則NAT服務器會創建一個會話,并給該會話分配一個端口。之后將源地址及端口改為企業公網IP地址及相應的端口,發送數據包到Internet主機上;
2)Internet主機接收到信息后,將應答信息返回給端口NAT服務器;
3)當端口NAT服務器接收到應答信息后,檢查端口NAT映射表。如果端口NAT表存在匹配的映射項,則將目標地址及端口轉換為對應的內網IP及端口,將數據包轉發給內網主機。如果不存在匹配映射項,就將數據包丟棄;
?
?
?
三、nat原理
1、地址轉換
NAT的基本工作原理是,當私有網主機和公共網主機通信的IP包經過NAT網關時,將IP包中的源IP或目的IP在私有IP和NAT的公共IP之間進行轉換。
如下圖所示,NAT網關有2個網絡端口,其中公共網絡端口的IP地址是統一分配的公共 IP,為202.20.65.5;私有網絡端口的IP地址是保留地址為192.168.1.1。私有網中的主機192.168.1.2向公共網中的主機202.20.65.4發送了1個IP包(Dst=202.20.65.4,Src=192.168.1.2)。
?當IP包經過NAT網關時,NAT Gateway會將IP包的源IP轉換為NAT Gateway的公共IP并轉發到公共網,此時IP包(Dst=202.20.65.4,Src=202.20.65.5)中已經不含任何私有網IP的信息。由于IP包的源IP已經被轉換成NAT Gateway的公共IP,Web Server發出的響應IP包(Dst= 202.20.65.5,Src=202.20.65.4)將被發送到NAT Gateway。
這時,NAT Gateway會將IP包的目的IP轉換成私有網中主機的IP,然后將IP包(Des=192.168.1.2,Src=202.20.65.4)轉發到私有網。對于通信雙方而言,這種地址的轉換過程是完全透明的。轉換示意圖如下。
如果內網主機發出的請求包未經過NAT,那么當Web Server收到請求包,回復的響應包中的目的地址就是私有網絡IP地址,在Internet上無法正確送達,導致連接失敗。
2、連接跟蹤
在上述過程中,NAT Gateway在收到響應包后,就需要判斷將數據包轉發給誰。此時如果子網內僅有少量客戶機,可以用靜態NAT手工指定;但如果內網有多臺客戶機,并且各自訪問不同網站,這時候就需要連接跟蹤(connection track)。如下圖所示:
在NAT Gateway收到客戶機發來的請求包后,做源地址轉換,并且將該連接記錄保存下來,當NAT Gateway收到服務器來的響應包后,查找Track Table,確定轉發目標,做目的地址轉換,轉發給客戶機。
3、端口轉換
以上述客戶機訪問服務器為例,當僅有一臺客戶機訪問服務器時,NAT Gateway只須更改數據包的源IP或目的IP即可正常通訊。但是如果Client A和Client B同時訪問Web Server,那么當NAT Gateway收到響應包的時候,就無法判斷將數據包轉發給哪臺客戶機,如下圖所示。
?此時,NAT Gateway會在Connection Track中加入端口信息加以區分。如果兩客戶機訪問同一服務器的源端口不同,那么在Track Table里加入端口信息即可區分,如果源端口正好相同,那么在實行SNAT和DNAT的同時對源端口也要做相應的轉換,如下圖所示。
四、nat應用及產品
???? NAT主要可以實現以下幾個功能:數據包偽裝、平衡負載、端口轉發和透明代理。
?
數據偽裝:?可以將內網數據包中的地址信息更改成統一的對外地址信息,不讓內網主機直接暴露在因特網上,保證內網主機的安全。同時,該功能也常用來實現共享上網。例如,內網主機訪問外網時,為了隱藏內網拓撲結構,使用全局地址替換私有地址。
?
端口轉發:?當內網主機對外提供服務時,由于使用的是內部私有IP地址,外網無法直接訪問。因此,需要在網關上進行端口轉發,將特定服務的數據包轉發給內網主機。例如公司小王在自己的服務器上架設了一個Web網站,他的IP地址為192.168.0.5,使用默認端口80,現在他想讓局域網外的用戶也能直接訪問他的Web站點。利用NAT即可很輕松的解決這個問題,服務器的IP地址為210.59.120.89,那么為小王分配一個端口,例如81,即所有訪問210.59.120.89:81的請求都自動轉向192.168.0.5:80,而且這個過程對用戶來說是透明的。
?
負載平衡:目的地址轉換NAT可以重定向一些服務器的連接到其他隨機選定的服務器。例如1.2.3所講的目的NAT的例子。
失效終結:目的地址轉換NAT可以用來提供高可靠性的服務。如果一個系統有一臺通過路由器訪問的關鍵服務器,一旦路由器檢測到該服務器當機,它可以使用目的地址轉換NAT透明的把連接轉移到一個備份服務器上,提高系統的可靠性。
?
透明代理:例如自己架設的服務器空間不足,需要將某些鏈接指向存在另外一臺服務器的空間;或者某臺計算機上沒有安裝IIS服務,但是卻想讓網友訪問該臺計算機上的內容,這個時候利用IIS的Web站點重定向即可輕松的幫助我們搞定。
?
五、代理服務器
所謂“代理”,就是代而勞之的意思。代理服務器就是代理網絡用戶去取得網絡信息,形象的說:它是網絡信息的中轉站,使得一個網絡終端和另一個網絡終端不直接進行相連,代理網絡用戶去取得信息。主要工作在OSI的會話層中。
一個完整的代理請求過程為:客戶端首先與代理服務器創建連接,接著根據代理服務器所使用的代理協議,請求對目標服務器創建連接或者獲得目標服務器的指定資源(如文件)。在后一種情況中,代理服務器可能對目標服務器的資源下載至緩存,如果客戶端索要獲取的資源在代理服務器的緩存之中,則代理服務器并不會向目標服務器發送請求,而是直接返回了緩存的資源。一些代理協議允許代理服務器改變客戶端的原始請求、目標服務器的原始響應,以滿足代理協議的需要。代理服務器的選項和設置在計算機程序中,通常只包括一個“防火墻”,允許用戶輸入代理地址,他會這該他們的網絡活動,可以允許繞過互聯網過濾實現網絡訪問。
代理服務器(Proxy Server)是Internet鏈路級網關所提供的一種重要的安全功能,主要的功能有:
1.突破自身IP訪問限制,訪問國外站點。教育網,過去的169網等。
2.提高訪問速度:通常代理服務器都設置了一個較大的硬盤緩沖區,當有外界的信息通過的時候,同時也將其保存在緩沖區中,當其他用戶在訪問相同的信息時,則直接有緩沖區取出信息,傳給用戶,以提高訪問速度
3.鏈接內網與Internet,充當防火墻:因為所有的內部網用戶通過代理服務器訪問外界時,只映射一個IP地址,所以外界不能直接訪問到內部網;同時可以設置IP地址過濾,限制內部網對外部的訪問權限
4.節省IP開銷:代理服務器允許使用大量的偽IP地址,節約上網資源,即代理服務器可以減少對IP地址的需求,對于使用局域網方式接入Internet,如果為局域網(LAN)內的每一個用戶都申請一個IP地址,其費用可想而知。但使用代理服務器之后,只需代理服務器上有一個合法的IP地址,LAN內其他用戶可以使用10.*.*.*這樣的私有IP地址,這樣可以節約大量的IP,降低網路的維護成本。
5.隱藏真實IP:上網者可以通過這種方式隱藏自己的IP,以免受到攻擊;
6.設置用戶驗證和記賬功能,沒有登記的用戶無權通過代理服務器訪問Internet網。并對用戶的訪問時間、訪問地點、信息流量進行統計。
?
?
六、二者之間的聯系:
??? 常見的局域網接入Internet的技術有三種:
?
總結
以上是生活随笔為你收集整理的NAT(网络地址转换)技术与代理服务器原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 随机森林:对UCI数据集的分类实现
- 下一篇: 周志华《机器学习》习题3.4——用UCI