p2p網絡中的NAT穿透技術----常見NAT穿越解決方案

p2p網絡中的NAT穿透技術----常見NAT穿越解決方案

 

常見NA丁穿越解決方案

    NAT技術在緩解IPv4地址緊缺問題、構建防火牆、保證網絡安全等方面都發揮了重要

作用。然而,NAT設備的廣一泛存在卻給Internet上的主機,特別是處於不同內網中的主機進行P2P通信帶來了障礙,限制了P2P的應用。NAT阻礙主機進行P2P通信的主要原因是NAT不允許公網主機主動訪問內網主機,這使得Internet上具有公網IP地址的主機不能主動訪問NAT之後的主機,而位於不同NAT之後的主機之間更是無法相互識別因而不能直接交換信息。因此,要在目前的網絡環境中進行有效的P2P通信,就必須研究相應的方案來穿越NAT 。

    針對網絡中的NAT穿越問題,目前業界主要有如下解決方案:ALG方式、MII3COM方

式、STUN方式、TURN方式、ICE方式、Full Proxy方式等。

    1..應用層網關(ALG)方式

    應用層網關(ALG , Application Layer Gateway )是指能識別指定協議(如H.323和SIP等)

的設備。在網絡中增加了ALG設備可以很好地配合NAT完成應用協議消息中的地址字段翻

譯。NAT和NAPT只能對IP報文的頭部地址和TCPILIDP頭部的端口信息進行轉換,對於報文的數據部分可能包含IP地址或端口信息的特殊協議(如H.323, SIP. MGCP等),則無法實現有效的轉換,而許多應用中需要對數據包負載中的數據進行分析轉換。例如一個FTP服務器處於內網中,只有內網IP地址,該服務器在和公網主機建立會話的過程中,需要將自己的IP地址發送給對方,而這個地址信息放在IP報文的數據部分,現有的NAT設備是無法對它進行地址轉換的,當公網主機接收到這個私有地址並使用它時,是不可能建立連接的。增加應用層網關ALG之後,就可以進一步分析數據包負載內的數據,即應用層的數據。所以,當網絡中使用了NAT設備來屏蔽內部IP地址時,應用層網關ALG就可以同時實行對業務流對NAT的穿越了。ALG可以是單獨地連接於公網和內網之聞的設備,也可以內置於NAT或防火牆設備中。

    ALG大部分的功能集成在NAT設備上,這導致了該方式的可擴展性不強,因爲在進行

應用升級時,需要對NAT設備也進行升級,這對目前我們所處的網絡來說,將會是一項非常艱鉅的任務,在實際中很難實現。ALG方式的另一個不足就是ALG必須透徹地理解應用協議,需要根據協議過程協調NAT的地址翻譯過程,並同步修改數據包負載中的相關字段,這將會加重網關的負擔,對於NAPT來說情況更復雜,處理開銷過大,可能會影響了網絡的正常運行,形成網絡瓶頸。而且ALG無法識別加密後的報文內容,必須保證報文采用明文傳送,使得在公網中傳送時存在安全隱患。

  2. M1DCOM (Middle-Bax Communications)代理方式

    M1DCOM代理方式與ALG方式在功能上基本相同,也需要了解相應的NAT的工作機制,負責具體的應用處理,協助NAT一起對數據包進行處理。不同之處在於MIDCOM的框架結構採用可信的第三方C MIDCaM代理)對NAT進行控制。

    MIDCaM代理的物理實體可以是代理服務器,所以在升級應用服務器的時候,不需要更改NAT墓本特性,通過對MIDCOM代理服務器的升級就可以支持更多的新業務,這是

MIDCCJM相對ALG方式的一個很大的優勢口但是MI DCQM技術的實施需要對服務器進行MIDCOM協議的升級擴展,因此該方案的實施過程中也會遇到投入較大、實現週期較長等問題。而且目前的MIDCDM代理方式還在研究過程中,並沒有形成一種成熟的產品,所以現階段使用MIDCDM實現NAT穿越的實際應用並不是很多。

    3. STUN方式

    STUN,即C1DP對NAT的簡一單穿越方式。這種解決方案的基本思路是,局域網接入用戶通過某種機制預先得到其內網地址對應在出口NAT,上的公網地址,然後在其報文中的地址信息處直接填寫出口NAZ上的公網地址,而不是用戶的私有IP地址,這樣報文中的內容在經過NAT時就無需被修改了,只需按普通NAT流程轉換報文頭部的IP地址即可,負載中的IP地址信息和報文頭部地址信息是一致的。STUN協議就是基於此思路來解決應用層地址的轉換問題的。

    在穿越過程中,內網主機向NAT外的STUN服務器發送STUN請求,STUN月浸務器收到請求消息,產生響應消息,響應消息中包含請求消息的源端口地址,即內網主機在NAT仁對應的外部端口地址。然後響應消息通過NAT發送給內網主機,內網主機在以後的業務呼叫過程時,將該公網地址填入呼叫協議的報文負載中,告知對方自己的RTP接收地址和端口號爲NAT外的地址和端口號。由」幾通過STiTN協議己在NAT . fr預先建立媒體流的NAT映射表,故媒體流可以順利穿越NAT 。

    STUN協議最大的優點是無需現有NAT設備做任何改動。目前,網絡中已有大量的NATI

防火牆,而且這些NATI防火牆不一定支持VoIP應用。如果採用MIDCOM或ALG方式,則需要替換現有的NAT/防火牆,實施起來難度較大,且MIDCDM方式無法實現對多級NAT

的有效控制。如果採用STLFN方式,不但無需改動NATI防火牆,而且能夠很好地適應多個NAT串聯的網絡環境。

    但STUN的侷限性在於需要終端應用程序支持STUN客戶端的功能;同時STUN不支持

TCP連接的穿越;另外STUN方案不支持業務對防火牆的穿越以及對稱NAT(Symmetric NAT )的穿越。

    4. TURN方式

    TURN ,即採用中繼的NAT穿越。該方式與STUN在技術機制上是相同的,也來用了服務器/客戶端模式,通過訪問處於公網中的服務器得到內網中主機所分配得到的公共地址,進而進行通信。不同的只是在STUN方式中得到的公共地址是由NAT分配的,而在TURN模式中內網主機得到的公共地址是由TURN服務器分配的。TURN通過分配TURN Server的地址和端口作爲客戶端對外的接收地址和端口,即內網主機發出的報文都要經過TURN Server進行中繼轉發,這種方式除了具有STUN方式的優點外,還解決了STAN應用無法穿越對稱式NAT (Symmetric NAT ),同時支持基一於TCP的應用.

    然而,由於服務器的存在,當數據量變得非常大時,也會造成網絡瓶頸,而且由於所有

報文都必須經過TURN服務器轉發,增大了報文的延遲和丟包的可能性,會給Qo5帶來問題。目前網絡流行的是將TURN與STUN結合在一起使用。

    5.  FuIIProxy方式

    FullE'roxy方式的思路是利用轉發設備將內網主機的所有數據信息進行處理和轉發,通過這種方式實現對NAT的順利穿越,其關鍵之處在於同時完成對終端呼叫信令的代理轉發和媒體中繼。內網主機產生的信令流與業務數據流一首先通過Proxy設備,由Proxy設備對其進行解析,並將信息中的私有地址改爲Proxy設備的公共IP地址與端u,完成修改後將信息發送到目的地。

    在Fu1lProxy方式下,無需對現有的NAT設備做任何改動,適應性非常強,同時私有網絡中主機的應用程序也無需支持S Tz IN和TURN協議,這是FuilProxy方式的一個優勢。但是由於Proxy設備是所有信息的必經之處,需要對數據包進行集中的分析與處理,對設備的要求很高,而且FullPmxy方式會增加包的延時和丟包的可能性,可能會造成網絡瓶頸,而且如果該節點不能正常工作,那整個內網都無法與外界進行通信。

    6. ICE方式

    ICE  (Interactive Connectivity Establishment)前己經被公認爲在非對稱性NAT環境下

首選的NAT穿越解決方案。ICE本身是一種方法,它綜合運用STUN、 TURN等協議來提供一個通用的解決方案,使之在最適合的情況下工作,以彌補單獨使用其中任何一種所帶來的固有缺陷。

    ICE的優勢是支持各種NAT的穿越,但是需要每一個終端都支持ICE穿越方法,在開發上顯著地增加了複雜性,而且網絡還必須支持STUN, TURN等功能,實現起來較爲複雜。

    下面對上述幾種方案進行一個小結,表7-1是各種方案在性能、可擴展性、對現有設備

改造、安全及QoS方面的比較。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章