1. 程式人生 > >NAT技術與代理服務器

NAT技術與代理服務器

換ip tun address wid tar 資料 ip) target 進出

一、NAT技術介紹

1.概念

NAT英文全稱是“Network Address Translation”,中文意思是“網絡地址轉換”,它是一個IETF(Internet Engineering Task Force, Internet工程任務組)標準,允許一個整體機構以一個公用IP(Internet Protocol)地址出現在Internet上。顧名思義,它是一種把內部私有網絡地址(IP地址)轉換成合法公有網絡IP地址的技術,當在專用網內部的一些主機本來已經分配到了本地IP地址(即僅在本專用網內使用的專用地址),但現在又想和因特網上的主機通信(並不需要加密)時,可使用NAT方法。簡單地說,NAT就是在局域網內部網絡中使用內部地址,而當內部節點要與外部網絡進行通訊時,就在網關(可以理解為出口,打個比方就像院子的門一樣)處,將內部地址替換成公用地址,從而在外部公網(internet)上正常使用,NAT可以使多臺計算機共享Internet連接,如下圖所示。因此我們可以認為,NAT在一定程度上,能夠有效的解決公網地址不足的問題。

技術分享

通過這種方法,可以只申請一個合法IP地址,就把整個局域網中的計算機接入Internet中。這時,NAT還屏蔽了內部網絡,所有內部網計算機對於公共網絡來說是不可見的,而內部網計算機用戶通常不會意識到NAT的存在,能夠有效地避免來自網絡外部的攻擊,隱藏並保護網絡內部的計算機。這裏提到的內部地址,是指在內部網絡中分配給節點的私有IP地址,這個地址只能在內部網絡中使用,不能被路由轉發。

這種方法需要在專用網連接到因特網的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫做NAT路由器,它至少有一個有效的外部全球IP地址。這樣,所有使用本地地址的主機在和外界通信時,都要在NAT路由器上將其本地地址轉換成全球IP地址,才能和因特網連接。NAT 功能通常被集成到路由器、防火墻、ISDN路由器或者單獨的NAT設備中。比如Cisco路由器中已經加入這一功能,網絡管理員只需在路由器的IOS中設置NAT功能,就可以實現對內部網絡的屏蔽。再比如防火墻將WEB Server的內部地址192.168.1.1映射為外部地址202.96.23.11,外部訪問202.96.23.11地址實際上就是訪問訪問 192.168.1.1。此外,對於資金有限的小型企業來說,現在通過軟件也可以實現這一功能。Windows 98 SE、Windows 2000 都包含了這一功能。

2.相關概念解析

上面提到了公有IP地址與私有IP地址,這裏也來解釋一下

公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(網絡信息中心)或者ISP(網絡服務提供商)分配的地址,對外代表一個或多個內部局部地址,是全球統一的可尋 址的地址。

私有IP地址:也叫內部地址,是指內部網絡或主機的IP 地址,它屬於非註冊地址,專門為組織機構內部使用。因特網分配編號委員會(IANA)保留了3塊IP地址做為私有IP地址:

10.0.0.0 ——— 10.255.255.255

172.16.0.0——— 172.16.255.255

192.168.0.0———192.168.255.255

地址池:地址池是有一些外部地址(全球唯一的IP地址)組合而成,我們稱這樣的一個地址集合為地址池。在內部網絡的數據包通過地址轉換到達外部網絡時,將會在地址池中選擇某個IP地址作為數據包的源IP地址,這樣可以有效的利用用戶的外部地址,提高訪問外部網絡的能力。

3.功能

隨著接入Internet的計算機數量的不斷猛增,IP地址資源也就愈加顯得捉襟見肘。事實上,除了中國教育和科研計算機網(CERNET)外,一般用戶幾乎申請不到整段的C類IP地址。在其他ISP那裏,即使是擁有幾百臺計算機的大型局域網用戶,當他們申請IP地址時,所分配的地址也不過只有幾個或十幾個IP地址。顯然,這樣少的IP地址根本無法滿足網絡用戶的需求,於是也就產生了NAT技術。NAT不僅能解決了lP地址不足的問題,而且還能夠有效地避免來自網絡外部的攻擊,隱藏並保護網絡內部的計算機。 1.寬帶分享:這是 NAT 主機的最大功能。 2.安全防護:NAT 之內的 PC 聯機到 Internet 上面時,他所顯示的 IP 是 NAT 主機的公共 IP,所以 Client 端的 PC 當然就具有一定程度的安全了,外界在進行 portscan(端口掃描) 的時候,就偵測不到源Client 端的 PC 。

4.原理

NAT的基本工作原理是,當私有網主機和公共網主機通信的IP包經過NAT網關時,將IP包中的源IP或目的IP在私有IP和NAT的公共IP之間進行轉換。私有地址被轉換成合法的IP地址,一個局域網只需使用少量IP地址(甚至是1個)即可實現私有地址網絡內所有計算機與Internet的通信需求。NAT將自動修改IP報文的源IP地址和目的IP地址,Ip地址校驗則在NAT處理過程中自動完成。如圖示: 技術分享 ①這個 client(終端) 的 gateway (網關)設定為 NAT 主機,所以當要連上 Internet 的時候,該封包就會被送到 NAT 主機,這個時候的封包 Header 之 source IP(源IP) 為 192.168.1.100 ; ②而透過這個 NAT 主機,它會將 client 的對外聯機封包的 source IP ( 192.168.1.100 ) 偽裝成 ppp0 ( 假設為撥接情況 )這個接口所具有的公共 IP ,因為是公共 IP 了,所以這個封包就可以連上 Internet 了,同時 NAT 主機並且會記憶這個聯機的封包是由哪一個 ( 192.168.1.100 ) client 端傳送來的; ③由 Internet 傳送回來的封包,當然由 NAT主機來接收了,這個時候, NAT 主機會去查詢原本記錄的路由信息,並將目標 IP 由 ppp0 上面的公共 IP 改回原來的 192.168.1.100 ; ④最後則由 NAT 主機將該封包傳送給原先發送封包的 Client 。

5.分類

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)網絡地址端口轉換NAPT

網絡地址端口轉換NAPT(Network Address Port Translation)則是把內部地址映射到外部網絡的一個IP地址的不同端口上。它可以將中小型的網絡隱藏在一個合法的IP地址後面。NAPT與 動態地址NAT不同,它將內部連接映射到外部網絡中的一個單獨的IP地址上,同時在該地址上加上一個由NAT設備選定的端口號。

NAPT是使用最普遍的一種轉換方式,它又包含兩種轉換方式:SNAT和DNAT。

1)源NAT(Source NAT,SNAT):修改數據包的源地址。源NAT改變第一個數據包的來源地址,它永遠會在數據包發送到網絡之前完成,數據包偽裝就是一具SNAT的例子。

2)目的NAT(Destination NAT,DNAT):修改數據包的目的地址。Destination NAT剛好與SNAT相反,它是改變第一個數據包的目的地地址,如平衡負載、端口轉發和透明代理就是

屬於DNAT。

源NAT舉例:對於以上網絡拓撲圖,內網的主機數量比較多,但是該組織只有一個合法的IP地址,當內網主機(10.1.1.3)往外發送數據包時,則需要修改數據包的IP地址和TCP/UDP端口號,例如將

源IP:10.1.1.3

源port:1493

改成

源IP:201.0.0.1

源port:1492(註意:源端口號可以與原來的一樣也可以不一樣

當外網主機(201.0.0.11)響應內網主機(10.1.1.3)時,應將:

目的IP:201.0.0.1

目的port:1492

改成

目的IP:10.1.1.3

目的port:1493

這樣,通過修改IP地址和端口的方法就可以使內網中所有的主機都能訪問外網,此類NAT適用於組織或機構內只有一個合法的IP地址的情況,也是動態NAT的一種特例。

技術分享

目的NAT舉例:這種方式適用於內網的某些服務器需要為外網提供某些服務的情況。例如以上拓撲結構,內網服務器群(ip地址分別為:10.1.1.1,10.1.1.2,10.1.1.3等)需要為外網提供WEB 服務,當外網主機HostB訪問內網時,所發送的數據包的目的IP地址為10.1.1.127,端口號為:80,當該數據包到達內網連接的路由器時,路由器查找NAT table,路由器通過修改目的IP地址和端口號,將外網的數據包平均發送到不同的主機上(10.1.1.1,10.1.1.2,10.1.1.3等),這樣就實現了負載均衡。

二、代理服務器

1.概念

代理(英語:Proxy),也稱網絡代理,是一種特殊的網絡服務,允許一個網絡終端(一般為客戶端)通過這個服務與另一個網絡終端(一般為服務器)進行非直接的連接。一些網關、路由器等網絡設備具備網絡代理功能。一般認為代理服務有利於保障網絡終端的隱私或安全,防止攻擊。 代理服務器(英文:Proxy Server)是指提供代理服務的電腦系統或其它類型的網絡終端。一個完整的代理請求過程為:客戶端首先與代理服務器創建連接,接著根據代理服務器所使用的代理協議,請求對目標服務器創建連接、或者獲得目標服務器的指定資源(如:文件)。在後一種情況中,代理服務器可能對目標服務器的資源下載至本地緩存,如果客戶端所要獲取的資源在代理服務器的緩存之中,則代理服務器並不會向目標服務器發送請求,而是直接返回緩存了的資源。一些代理協議允許代理服務器改變客戶端的原始請求、目標服務器的原始響應,以滿足代理協議的需要。代理服務器的選項和設置在計算機程序中,通常包括一個“防火墻”,允許用戶輸入代理地址,它會遮蓋他們的網絡活動,可以允許繞過互聯網過濾實現網絡訪問。

2.功能

代理服務器的功能就是代理網絡用戶去取得網絡信息。形象的說:它是網絡信息的中轉站。代理服務器就好象一個大的Cache,這樣就能顯著提高瀏覽速度和效率。更重要的是:Proxy Server(代理服務器)是Internet鏈路級網關所提供的一種重要的安全功能,主要的功能有:
  1. 突破自身IP訪問限制,訪問國外站點。教育網、過去的169網等;
  2. 網絡用戶可以通過代理訪問國外網站;
  3. 訪問一些單位或團體內部資源,如某大學FTP(前提是該代理地址在該資源 的允許訪問範圍之內),使用教育網內地址段免費代理服務器,就可以用於對教育網開放的各類FTP下載上傳,以及各類資料查詢共享等服務;
  4. 突破中國電信的IP封鎖:中國電信用戶有很多網站是被限制訪問的,這種限制是人為的,不同Serve對地址的封鎖是不同的。所以不能訪問時可以換一個國外的代理服務器試試;
  5. 提高訪問速度:通常代理服務器都設置一個較大的硬盤緩沖區,當有外界的信息通過時,同時也將其保存到緩沖區中,當其他用戶再訪問相同的信息時, 則直接由緩沖區中取出信息,傳給用戶,以提高訪問速度;
  6. 隱藏真實IP:上網者也可以通過這種方法隱藏自己的IP,免受攻擊。
其他功能: 1)設置用戶驗證和記賬功能,可按用戶進行記賬,沒有登記的用戶無權通過代理服務器訪問Internet網。並對用戶的訪問時間、訪問地點、信息流量進行統計。 2)對用戶進行分級管理,設置不同用戶的訪問權限,對外界或內部的Internet地址進行過濾,設置不同的訪問權限。 3)增加緩沖器(Cache),提高訪問速度,對經常訪問的地址創建緩沖區,大大提高熱門站點的訪問效率。通常代理服務器都設置一個較大的硬盤緩沖區(可能高達幾個GB或更大),當有外界的信息通過時,同時也將其保存到緩沖區中,當其他用戶再訪問相同的信息時,則直接由緩沖區中取出信息,傳給用戶,以提高訪問速度。 4)連接內網與Internet,充當防火墻(Firewall):因為所有內部網的用戶通過代理服務器訪問外界時,只映射為一個IP地址,所以外界不能直接訪問到內部網;同時可以設置IP地址過濾,限制內部網對外部的訪問權限。 5)節省IP開銷:代理服務器允許使用大量的偽IP地址,節約網上資源,即用代理服務器可以減少對IP地址的需求,對於使用局域網方式接入Internet ,如果為局域網(LAN)內的每一個用戶都申請一個IP地址,其費用可想而知。但使用代理服務器後,只需代理服務器上有一個合法的IP地址,LAN內其他用戶可以使用10.*.*.*這樣的私有IP地址,這樣可以節約大量的IP,降低網絡的維護成本。

3. 常見代理服務器

1)HTTP代理

www對於每一個上網的人都再熟悉不過了,www連接請求就是采用的http協議,所以我們在瀏覽網頁,下載數據(也可采用ftp協議)時就是用http代理。它通常綁定在代理服務器的80、3128、8080等端口上。

2)VPN代理

指在共用網絡上建立專用網絡的技術。之所以稱為虛擬網主要是因為整個VPN網絡的任意兩個結點之間的連接並沒有傳統專網建設所需的點到點的物理鏈路,而是架構在公用網絡服務商ISP所提供的網絡平臺之上的邏輯網絡。用戶的數據是通過ISP在公共網絡(Internet)中建立的邏輯隧道(Tunnel),即點到點的虛擬專線進行傳輸的。通過相應的加密和認證技術來保證用戶內部網絡數據在公網上安全傳輸,從而真正實現網絡數據的專有性。 3)socks代理 相應的,采用socks協議的代理服務器就是SOCKS服務器,是一種通用的代理服務器。Socks是個電路級的底層網關,是DavidKoblas在1990年開發的,此後就一直作為Internet RFC標準的開放標準。Socks 不要求應用程序遵循特定的操作系統平臺,Socks 代理與應用層代理、HTTP層代理不同,Socks 代理只是簡單地傳遞數據包,而不必關心是何種應用協議(比如FTP、HTTP和NNTP請求)。所以,Socks代理比其他應用層代理要快得多。它通常綁定在代理服務器的1080端口上。如果您在企業網或校園網上,需要透過防火墻或通過代理服務器訪問 Internet就可能需要使用SOCKS。一般情況下,對於撥號上網用戶都不需要使用它。註意,瀏覽網頁時常用的代理服務器通常是專門的http代理,它和SOCKS是不同的。因此,您能瀏覽網頁不等於 您一定可以通過SOCKS訪問Internet。常用的防火墻,或代理軟件都支持SOCKS,但需要其管理員打開這一功能。如果您不確信您是否需要SOCKS或是否有SOCKS可用,請與您的網絡管理員聯系。為了使用socks,您需要了解一下內容:[1] ① SOCKS服務器的IP地址 ② SOCKS服務所在的端口 ③ 這個SOCKS服務是否需要用戶認證?如果需要,您要向您的網絡管理員申請一個用戶和口令 知道了上述信息,您就可以把這些信息填入“網絡配置”中,或者在第一次登記時填入,您就可以使用socks代理了。[1] 在實際應用中SOCKS代理可以用作為:電子郵件、新聞組軟件、網絡傳呼ICQ、網絡聊天MIRC和使用代理服務器上聯眾打遊戲等等各種遊戲應用軟件當中。

NAT技術與代理服務器