1. 程式人生 > >NAT與代理伺服器

NAT與代理伺服器

一、NAT技術
1.概念

NAT,即Networ Address Translation,可譯為網路地址轉換網路地址翻譯
當前的Internet面臨兩大問題,即可用IP地址的短缺和路由表的不斷增大,這使得眾多使用者的接入出現困難。
使用NAT技術可以使一個機構內的所有使用者通過有限的數個(或1個)合法IP地址訪問Internet,從而節省了Internet上的合法IP地址;另一方面,通過地址轉換,可以隱藏內網上主機的真實IP地址,從而提高網路的安全性。
在CCNA階段,主要考察NAT的基本技術,應試者應掌握下述的NAT術語和幾個典型的地址轉換型別。

(1)NAT術語

在NAT中,有4個地址術語是必須正確理解的,它們是Inside Local、Inside Global、OutsideLocal和Outside Globalo 在這些術語中,Inside(內部)是指那些由機構或企業所擁有的內部網路,這些網路上的主機通常分配了私有地址。這些地址不能直接在Internet上進行路由,從而也就不能直接用於對Internet的訪問,必須通過網路地址的轉換,以合法IP的身份來訪問Internet。前者即InsideLocal地址。後者則為Inside Glob地址。

Local(本地)的地址是不能在Internet上通訊的IP地址;Global(全域性)

的地址是能在Internet上通訊的地址。 Outside(外部)是指除了我們考察的內部網路之外的所有網路。主要指Internets 有了對Inside、Outsider LocalGlobal 4個詞的解釋,讓我們來看一看4個地址的定義。

●Inside Local Address(內部本地地址)

指一個網路內部分配給網上主機的IP地址,此地址通常不是Internet上的合法地址,即不是網路資訊中心 (NIC)或Internet服務提供商(ISP)所分配的IP地址。

●Inside Global Address(內部全域性地址)

用來代替一個或者多個內部本地IP地址的、對外的、Internet上合法的IP地址。

●Outside Local Address(外部本地地址)

一個外部主機相對於內部網所用的IP地址。此地址需要是Internet上合法的地址,但是從內部網可以進行路由的地址空間中進行分配的。

●Outside Global Address(外部全域性地址)

由主機擁有者分配給在外部網上主機的IP地址。此地址是從一個從全域性可路由的地址或網路空間中分配的。

(2)靜態內部源地址轉換

所謂靜態內部源地址轉換是指將一個內部本地的IP地址轉換成為惟一的內部全域性地址,即私有地址和合法地址之間的靜態一一對映。這種轉換通常用在內部網上的主機需要對外提供服務(如Web、E-mail服務等)的情況下。

(3)動態內部源地址轉換

在動態內部源地址轉換的方式下,一組內部本地地址與一個內部全域性地址池之間建立起一種動態的一一對映關係。這種地址轉換形式下,內部主機可以訪問外部網路,外部主機也能對內部網路進行訪問,但必須是在內網IP地址與內部全域性地址之間存在對映關係時才能成功,並且這種對映關係是動態的。

(4)複用內部全域性地址

Cisco路由器可以把內部全域性地址進行復用性的轉換,從而實現內部本地地址對內部全域性地址的多對一的對映。地址複用被啟用時,路由器在高層協議(如TCP或UDP埠號)維持有關的資訊,將全域性地址轉換為本地地址。當多個內部本地地址對映到同一個全域性地址時,埠號將用來區別不同的本地地址。複用內部全域性地址的技術也被稱為PAT(Port
AddressTranslation。埠地址轉換)。

2、工作原理

內網的資料到達閘道器時,被閘道器用NAT轉換為公網IP。內網的資料分組是以閘道器的身份去訪問internet,而閘道器區別內網的資料分組使用了埠,每個資料分組使用一個埠。在外網的主機看來,資料都是從內網的閘道器傳送過來的,不同的是他們的埠。而這些埠是對映到內網主機上的。具體分析如下:

我們現在以一個IE瀏覽器瀏覽新浪首頁例項來說明NAT工作原理(閱讀下文是請多參見圖1):

(1)假設我們區域網中的一臺電腦A(192.168.1.100),打開了IE瀏覽器,IE瀏覽器程式執行後,開啟本機的1111埠(這個埠是隨機的,系統動態產生),我想瀏覽新浪首頁,就在位址列輸入http://www.sina.com.cn/,即我要訪問http://www.sina.com.cn/http://www.sina.com.cn就是12.130.132.30:80,此時我的電腦A就向內網(區域網)發一個數據包,這個資料包不僅有資料(即我想幹什麼——瀏覽網頁),還包括一類重要的資訊——源地址和目標地址。源地址就是表明資料包時由誰發出的,源地址由IP和埠兩部分組成,我們這就是192.168.1.100:1111;目標地址表明此資料包要送到什麼地方去,或者理解為要與誰通訊,他也是由IP和埠兩部分組成,我們這就是12.130.132.30:80,資料包大概以廣播的形式發出,區域網上的其他電腦均能收到,但他們不會有響應,但是作為NAT伺服器的計算機(本例為192.168.1.1)收到此資料包會有響應。

(NAT伺服器的計算機有兩個網絡卡:一個和內網相連,此網絡卡IP是私址(PRIVITE IP)型別,我們這為(192.168.1.1);另外一個和外網(Internet)相連,此網絡卡IP是公址(PUBLIC IP)型別,我們這為(122.195.93.74)。他把區域網和外網聯絡起來,並完成內外網地址(IP+埠)的對映工作)

(2) NAT伺服器會根據資料包中的目標地址,把這個資料包送到目標地址12.130.132.30:80——新浪網站(WEB伺服器),但在送出此資料包之前,他對此資料包進行了修改:把此資料包的源地址由192.168.1.100:1111改為122.195.93.74:2222,這個過程就是NAT。資料包的目標地址不變。同時,他會在自己計算機中建立如圖2的對照表(NAT TABLE),以後還用的上此表,後面會說到。

這裡寫圖片描述
(圖2)

此時兩者建立的關係是對映,即一一對應,在不中斷IE瀏覽器程式執行,這種關係一直保持。此時如果你又開啟搜狐網頁,就又會增加建立一個對映,如192.168.1.100:1112——122.195.93.74:2223。
從上我們可以看到,無論是IE瀏覽器程式開的埠,如本例中1111,還是NAT伺服器的對映埠本例中2222,都是隨機的,但一旦建立,他們必須是一一對應的對映關係,而且不會被其他程式再使用!

(3) 接著說,新浪網站(WEB伺服器)——12.130.132.30:80口執行的程式收到此資料包以後,處理分析得知,要把本站某網頁內容複製後再發到122.195.93.74:2222(注意這是我們的NAT計算機),就打包資料傳送。這個資料包也有源地址和目標地址,源地址12.130.132.30:80(新浪),目標地址122.195.93.74:2222(我們的NAT計算機)。

(5)很快我們的NAT計算機就收到到此包了,NAT計算機根據圖2的對照表,把此資料包的目標地址從122.195.93.74:2222改為192.168.1.100:1111,這個過程也是NAT,源地址不變,為新浪網址12.130.132.30:80。

(6)修改後將資料包向內網發出,我的這臺區域網中的電腦A,更確切的說我的電腦執行著的IE瀏覽器程式就能收到他要的外網資料,處理以後就在我的顯示器上將新浪網頁顯示出來。

至此完成我們內網電腦通過NAT伺服器和外網裝置一次完整的通訊,這個過程中地址改過兩次,也就是說NAT兩次:在我內網計算機上傳的過程中,資料包的源地址改過一次,目標地址一直保持不變;下傳過程中相反。

類似的,我們區域網中的計算機B要訪問外網,過程和上相似,NAT伺服器會提供另外一個未用的埠給區域網中的計算機B。只要NAT伺服器能提供不同的埠(NAT伺服器可提供上萬個埠),就可以讓內網計算機和外網通訊(俗稱上網),並且能讓數臺內網計算機互不影響地同時上網。

二、代理伺服器

1、概念

代理伺服器(Proxy Server)是一種重要的伺服器安全功能,它的工作主要在開放系統互聯(OSI)模型會話層,從而起到防火牆的作用。代理伺服器大多被用來連線INTERNET(國際網際網路)Local Area Network(區域網)
代理(英語:Proxy),也稱網路代理,是一種特殊的網路服務,允許一個網路終端(一般為客戶端)通過這個服務與另一個網路終端(一般為伺服器)進行非直接的連線。一些閘道器、路由器等網路裝置具備網路代理功能。一般認為代理服務有利於保障網路終端的隱私或安全,防止攻擊。

提供代理服務的電腦系統或其它型別的網路終端稱為代理伺服器(英文:Proxy Server)。一個完整的代理請求過程為:客戶端首先與代理伺服器建立連線,接著根據代理伺服器所使用的代理協議,請求對目標伺服器建立連線、或者獲得目標伺服器的指定資源(如:檔案)。在後一種情況中,代理伺服器可能對目標伺服器的資源下載至本地快取,如果客戶端所要獲取的資源在代理伺服器的快取之中,則代理伺服器並不會向目標伺服器傳送請求,而是直接返回快取了的資源。一些代理協議允許代理伺服器改變客戶端的原始請求、目標伺服器的原始響應,以滿足代理協議的需要。代理伺服器的選項和設定在計算機程式中,通常包括一個“防火牆”,允許使用者輸入代理地址,它會遮蓋他們的網路活動,可以允許繞過網際網路過濾實現網路訪問。

2、代理伺服器主要功能

(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)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,您需要了解一下內容:

① SOCKS伺服器的IP地址

② SOCKS服務所在的埠

③ 這個SOCKS服務是否需要使用者認證?如果需要,您要向您的網路管理員申請一個使用者和口令

知道了上述資訊,您就可以把這些資訊填入“網路配置”中,或者在第一次登記時填入,您就可以使用socks代理了。

在實際應用中SOCKS代理可以用作為:電子郵件、新聞組軟體、網路傳呼ICQ、網路聊天MIRC和使用代理伺服器上聯眾打遊戲等等各種遊戲應用軟體當中。

(3)VPN代理

指在共用網路上建立專用網路的技術。之所以稱為虛擬網主要是因為整個VPN網路的任意兩個結點之間的連線並沒有傳統專網建設所需的點到點的物理鏈路,而是架構在公用網路服務商ISP所提供的網路平臺之上的邏輯網路。使用者的資料是通過ISP在公共網路(Internet)中建立的邏輯隧道(Tunnel),即點到點的虛擬專線進行傳輸的。通過相應的加密和認證技術來保證使用者內部網路資料在公網上安全傳輸,從而真正實現網路資料的專有性。

(4)反向代理

反向代理伺服器架設在伺服器端,通過緩衝經常被請求的頁面來緩解伺服器的工作量。 安裝反向代理伺服器有幾個原因:

加密和SSL加速

負載平衡

快取靜態內容

壓縮 減速上傳

安全 外網釋出

大多使用開放源代程式碼的squid做反向代理

其他型別

FTP代理:能夠代理客戶機上的FTP軟體訪問FTP伺服器

RTSP代理:代理客戶機上的Realplayer訪問Real流媒體伺服器

POP3代理:代理客戶機上的郵件軟體用POP3方式收發郵件