多媒體通信中多種NAT/Firewall穿越技術分析和相關國際標準動態的探討

多媒體通信中多種NAT/Firewall穿越技術分析和相關國際標準動態的探討

--------------------------------------------------------------------------------
 
來源:cmvc                  瀏覽:1451 次
 
 NAT/Firewall穿越是多媒體通信中普遍存在的一個問題,對於通信有很大的影響。該問題是爲了保證正常通信進行所必須解決的問題。本文對於目前存在的多種NAT/Firewall穿越技術進行了論述和分析,重點介紹基於穿越代理的穿越解決方案,和其中的一些典型技術。同時,因爲NAT/Firewall穿越問題涉及多種技術方案,因此國際標準領域目前也在加速進行相關的標準化工作,期望能夠形成少數幾種被業界共同遵循的標準。本文對於相關的國際標準動態也進行了描述和探討。
一、多媒體通信中的NAT/Firewall穿越問題的普遍性

衆所周知,因爲IPv4的地址不足,私有地址的採用是必然的,因此就引入了NAT,從安全角度,也有對於Firewall的需要。在實際中兩者緊密結合,往往實現在一個物理設備上,因此在提到穿越的時候,都是兩者並稱的。當然,NAT/Firewall的存在,還有其他原因,比如實現企業網內部拓撲和地址隱藏(Address and topology hidding)。目前的視頻、VoIP在很大程度上是爲企業網用戶服務的,這些業務的用戶也主要集中在企業網中。視訊目前作爲一種高端業務,其資費還是較高的,通常提供給企業;VoIP可以爲企業節省大量通信費用。在發達國家,IPv4地址資源相對豐富,但是企業網內部還是採用私有地址的。因此可以說在多媒體通信中NAT/Firewall穿越問題是普遍存在的,並且這個問題並不會因爲採用IPv6就自動消除。

人們非常關注多媒體通信的NAT/Firewall穿越問題,除了該問題普遍存在,還因爲有如下原因。

(1) 多媒體通信涉及的協議相當多樣和複雜,H.323,SIP,H.248,T.120和其他關於數據應用的事實標準(如Webex、Data Connection等)。對於每種具體協議,可能都需要不同的穿越機制來支持。

(2) 多媒體通信協議,如H.323和SIP等都是應用層協議,普通的NAT如果只能做IP層的地址翻譯,無法對IP payload中涉及到的IP地址和端口進行相應的翻譯,因此會造成通信失敗。

(3) Firewall有多種類型,爲了保證安全,對於來自公網和私網的進出信令流和媒體流都有很多約束和限制。如果不能正確規避這些約束條件,則可能無法進行正常的通信。最典型的情況是通信涉及位於多個私網上的終端,而這些私網通過公網相互連接。

二、多媒體通信中的NAT/Firewall穿越相關的一些概念介紹

1.NAT和NAPT

NAT(Network Address Translation),網絡地址翻譯。就是這樣一個過程,通過網絡地址翻譯設備(Network Address Translator)在兩個地址域(Realm如公網和私網)之間進行地址的翻譯和映射。NAPT(Network Address/Port Translation),在地址翻譯的基礎上,還需要進行端口的映射。不同的應用協議(如HTTP、RTP等),採用不同的TCP或者UDP端口。在很多情況下,映射不但是地址映射也是端口的映射。

2.NAT的種類

(1)靜態NAT

採用靜態的地址/端口映射,即公網地址和私網地址之間存在一對一的映射關係。

(2)動態NAT

採用動態的地址/端口映射,這種情況下NAT是可以配置的,根據使用需求和會話流來啓發式地決定這種動態映射關係。一個動態映射關係將隨着最後一個使用該綁定關係的會話結束而被釋放,從而使得全局公網地址能夠循環使用,提高資源的利用率。

(3)完全錐形NAT

這是一種形象的說法,來自IETF的定義。完全錐形NAT把所有來自同一個內部私網地址/端口的請求,都映射到同一個外部公網地址/端口。並且,任何外部主機可以通過向映射得到的該外部地址發送數據包,從而發送數據包到該內部主機。

(4)受限錐形NAT

受限錐形NAT把所有來自同一個內部私網地址/端口的請求,都映射到同一個外部公網地址/端口。並且,只有當該內部主機曾經向某個外部主機發送過數據包時,這個外部主機才能向該內部主機發送數據包,即通信只能首先由私網上的終端發起。

(5)端口受限錐形NAT

類似於受限錐形NAT,但是限制更加嚴格。只有當內部主機曾經向某個外部主機地址上的某個特定端口發送過數據包,這個外部主機地址上的特定端口才能向該內部主機發送數據包,即通信只能首先由私網上的終端發起。

(6)對稱NAT

這種NAT的限制是最嚴格的。所有來自於同一個內部地址/端口並且要發送到某個特定目的地址/端口的請求將被映射到同一個外部地址/端口。如果同一個內部主機從同一端口上發送了一個數據包,只是目的地址/端口不同,那麼映射關係也將是不同的。並且,只有曾經收到過來自內部主機數據包的外部主機才能向該內部主機發送數據包。

(7)雙向和單向NAT

地址綁定請求可以從公網上發起也可以從私網上發起的NAT叫做雙向NAT。地址綁定請求只能從私網上發起,不能從公網上發起的NAT叫做單向NAT。 在實際的多媒體通信中,很多NAT都是單向的。單向NAT造成的問題是,在沒有穿越機制幫助情況下,公網上(或者另外一個私網上)的終端無法首先對於私網上的終端發起呼叫,只能由私網上的終端首先向公網上的終端發起呼叫。

三、NAT/Firewall穿越的幾種主流技術

1. ALG(Application Level Gateway)

在NAT/Firewall上加入能夠對於具體應用協議(如H.323)感知的模塊,通過對於具體應用協議的感知,進行鍼對不同協議的具體NAT/Firewall穿越處理。對於每一種應用協議都需要一個ALG實例(Instance)來支持。H.323需要一個,SIP需要一個,H.248需要一個,如此等等。因此每增加一種新的協議,或者現有協議修改了,都需要一個新的ALG來支持。因此這種機制在實際應用中複雜度高,可擴展性差,受到很大限制。

2. MIDCOM類機制

這是一大類方法,因其中非常典型的一種採用了IETF的MIDCOM(MIDdlebox COMmunication)協議而得名。該類方法的共同特點是需要一個輔助設備(當然可以做在NAT/Firewall上)來支持。該設備對於具體的應用協議是感知的,瞭解其具體的穿越需求。該設備通過一種通信協議來請求/控制NAT/Firewall,創建特定的地址/端口綁定關係或者打開特定端口允許該應用協議的數據流通過。但是並非所有的NAT/Firewall都能夠支持某種類似MIDCOM的請求/控制協議,因此這類技術在實際中的應用也受到一定的侷限。

3. 基於隧道的穿越

通過把需要穿越的數據流封裝在某種隧道中,從而繞過NAT/Firewall,這是基於隧道穿越的基本思想。可以考慮的隧道協議有L2TP、IPSEC、HTTP、UDP和TCP等。因爲經過隧道封裝的數據流在通過NAT/Firewall的時候,在通信雙方之間,都通過特定的隧道協議的端口,而不是原來數據流協議的端口。那麼不論原來的應用協議是什麼,只要隧道協議能夠正常穿越過NAT/Firewall,就能完成任何應用協議的穿越。這樣在很大程度上解決了對於不同應用協議需要開發不同穿越策略的辦法。但是隧道機制需要多媒體終端和服務器能夠支持隧道,這是一個比較大的限制條件。目前,通過提供集中式的功能實體在私網和公網側分別提供隧道功能,是可以解決這個問題的。隧道機制也會導致潛在的安全問題,因爲被封裝的數據是安全檢查機制所不可見的,因此會引發一定的安全風險。需要某種機制保證通信終端和服務器的可信性。

4. 基於終端的穿越

這是一個不太合適的名稱(借用自ETSI/TISPAN標準組織的文稿),但是對於這類技術目前並沒有更好的名稱。這類方法利用STUN和TURN或者類似的私有協議,由私網上的終端來獲得關於穿越需要的信息並且實現某種協議的穿越:終端可以通過STUN協議發現自己是否位於NAT/Firewall後面,並且發現NAT爲它綁定的公網地址/端口。同時通過使用TURN協議來接收來自公網的TCP和UDP數據。對於接收終端位於對稱NAT/Firewall後的情況,TURN也能正確穿越。通過“反轉”機制,可以把發送終端轉變成接收終端,從而使發送終端即便位於對稱NAT/Firewall後的情況也能夠實現穿越。並且可以不降低對稱NAT/Firewall所提供的強安全性。

在實際中,STUN和TURN可以和很多類型的NAT/Firewall配合實現穿越。因此得到了比較廣泛的使用。類似的機制經過進一步發展和提高,穿越能力和適用廣泛性會更好。目前非常流行的VoIP軟件Skype很可能就使用了類似的機制。

需要說明的事,對於STUN和TURN都需要有對應服務器的支持,即分別需要STUN和TURN服務器。

5. 基於穿越代理的穿越

代理本質上是一種“反射”(Reflector)機制。對於數據流的發送端,代理就是接收端;對於數據流的接收端,代理就是發送端。採用代理,就可以把來自多個終端,本來需要發送到另外多個終端/服務器的數據流發送到某個給定的IP地址和相應的知名端口,便於NAT/Firewall進行地址/端口綁定,同時也爲NAT/Firewall對於地址/端口的管理提供了很大的方便。代理的使用將穿越問題大大簡化。比較適合大規模的公衆視訊/VoIP業務。運營商可以在公網上部署一個功能強大的穿越代理,從而爲很多私網中的終端/服務器提供穿越的支持。

需要說明的是,以上介紹的多種技術可以結合起來使用,達到更好的穿越效果。比如代理可以和隧道機制結合,也可以和修改協議的方法結合。

6. 基於修改協議的穿越

在終端和服務器上的協議棧進行必要的協議修改,比如H.323協議的修改,也可以支持穿越。修改協議的主要問題是需要現有終端和網絡設備比如Gatekeeper等進行改動和升級。

四、理想的穿越方案需要滿足的條件

爲了選擇一種好的多媒體NAT/Firewall穿越方案,首先必須分析需求,明瞭一種理想的穿越方案應該滿足的條件。

(1)能夠支持多種不同的網絡情況。包括服務器(Gatekeeper,SIP服務器等)和終端都位於私網的情況,都位於公網的情況,終端位於公網、服務器位於私網的情況,以及服務器位於公網、終端位於私網的情況。

(2)能夠支持多層地址域之間的信令流和媒體流穿越。

(3)對於現有網絡上的設備和組件沒有任何爲了支持穿越而進行升級改造的要求。

(4)穿越是透明的,即穿越輔助設備的存在對於NAT/Firewall、服務器和終端都是無法感知的。

(5)能夠很好地解決和其他穿越機制融合共存的問題。

(6)能夠支持多種類的NAT/Firewall的信令穿越和媒體穿越。比如對於完全錐形、受限錐形、端口受限錐形、對稱NAT、單向NAT等類型都能夠支持。 其中支持對稱NAT的要求最高。

(7)不改變呼叫信令流處理過程中的狀態機狀態。

五、基於穿越代理的NAT/Firewall穿越方案

1.穿越代理類型

穿越代理負責信令流和媒體流的代理。從功能劃分角度看,穿越代理可以劃分爲:信令代理(SPF)和媒體代理(MPF)。

具體來說,信令代理功能如下:終端將通信(註冊、呼叫)請求消息發送到信令代理,信令代理首先對於IP包頭和消息淨荷進行一定的分析和處理,然後轉而將消息發給真正的目的服務器或者目的終端。同時,信令代理可以把來自服務器或者其它終端的相應消息轉發給該終端。信令代理必須能夠感知具體的通信協議,通過信令的分析提取必要的信息來支持穿越。

媒體代理具體功能是在呼叫成功建立之後在終端之間轉發媒體流。它能夠把目的終端的媒體流接收地址/端口替換成自己的媒體流接收地址/端口,從而能夠接收來自發送終端的媒體流。同時媒體代理需要對於媒體流的數據報文進行合法性檢查,以決定是否轉發以及如何轉發媒體流。如果通信中涉及的終端位於不同的地址域,那麼其間的媒體流必定要通過媒體代理轉發;如果終端位於同一個地址域,但是使用不同的代理,那麼其間的媒體流也一定需要要經過媒體代理轉發。只有終端位於同一個地址域,並且使用同一個穿越代理的情況下,媒體流纔可能不需要經過媒體代理轉發。

另外使用媒體代理可以解決所謂“單向通”的問題。因爲對於RTP,並不要求媒體發送和接收端口相同,雖然一般情況下可以相同。如果不同,那麼終端A首先向終端B發送媒體流(B位於公網或者另外一個私網),B發送的媒體流無法正確到達A的媒體接收端口,而是到達了A的媒體發送端口。因爲NAT/Firewall通過學習建立的地址/端口映射是針對A的媒體發送端口的,NAT/Firewall根本不知道A的媒體接收端口。

信令代理和媒體代理可以在一個物理設備上實現,也可以在不同物理設備上實現。在ITU-T目前關於NGN架構研究中,信令代理功能可能放在業務層的會話控制功能實體中,而媒體代理功能可能放在邊界網關功能實體中實現。另外,現在的一種趨勢是把穿越代理和所謂的會話邊界控制設備(SBC)結合成一體。

2. 穿越代理的三種不同網絡位置

根據具體的應用場景,穿越代理可以靈活部署在多種網絡位置上,包括:穿越代理位於私網、私網和公網邊緣、公網的情況。穿越代理位於公網的情況針對的應用場景主要是運營商提供公衆視訊/VoIP運營的情況。

3. 穿越服務器和穿越客戶端

在很多情況下,僅僅有穿越代理還是不能解決所用的多媒體通信涉及到的複雜問題,比如前面提到的媒體流“單向通”問題,以及單向NAT/Firewall的穿越問題。都需要另外的輔助功能實體的協助。還有,當使用隧道機制或者基於擴展協議來實現穿越的時候,也需要一些輔助的功能實體來支持。一般來說,在公網上,和穿越代理部署在一起的有一個穿越服務器(Traversal Server,xTS);在私網上,和終端部署在一起的有一個或者多個穿越客戶端(Traversal Client,xTC)。穿越服務器和穿越客戶端配合起來通過會話創建技術或者類似MIDCOM的技術來協助穿越代理完成穿越。穿越服務器可以和穿越代理結合在同一個物理設備上來實現;穿越客戶端也可以直接實現在終端上,但是對於公衆運營來說,終端要儘可能便宜和簡單,因此可以在私網上部署集中式的穿越客戶端。

六、NAT/Firewall穿越問題相關的國際標準領域動態和趨勢

1.ITU-T SG 16

因爲SG16是ITU-T在多媒體通信方面的主導研究組(Lead Study Group),目前也是多媒體通信中NAT/Firewall穿越問題的主要研究部門。其主要關注的是H.323協議的穿越,H.248,T.120等其他協議的穿越將可能在未來進行研究。在H.323穿越方面,主要有兩種方案在競爭成爲國際標準。一種方案是中國(多個研究單位和設備廠家合作)提出的H.Proxy,採用基於穿越代理的穿越機制,配合以穿越服務器和穿越客戶端等輔助功能實體,穿越代理可以位於私網內、公網內、和私網與公網之間的邊緣。具體技術採用隧道、會話創建等。另外一種方案是PolyCom、Tandberg、Radvision等公司聯合提出的H.Fantas,該方案主要採用H.323協議擴展的方法支持穿越。目前ITU-T SG16在後期的研究和會議中將決定兩種方案的命運。很可能的結果是H.Proxy和H.Fantas同時被接受成爲ITU-T標準,因爲兩者有各自的優點。如果最終兩種方案同時成爲標準,那麼還存在一個在實際應用中競爭的問題。運營商和設備廠商可以自由選擇使用其中一種,通過市場競爭來確立真正的主導標準。我們相信,H.Proxy更加適合運營商提供大規模公衆視訊/VoIP業務的需要,更加適合複雜多樣的網絡情況,對於構建可管理、可運營的多媒體業務網絡更有幫助。

2.ITU-T Focus Group NGN(FG NGN)和SG 13

ITU-T FG NGN和SG13主要研究NGN環境下的NAT/Firewall穿越問題。穿越問題目前屬於“資源和准入控制功能”RACF(Resource and Admission Control Functions)中。其穿越策略控制由RACF(PDF)來實施,RACF控制Transport Stratum中的網關功能實體A-BGF和I-BGF/PGCF來實施具體的NAPT和Firewall穿越。對於這個問題,運營商和設備廠商都比較關注。因爲目前僅僅是在制定NGN的架構階段,對於採取何種穿越機制,FG NGN/SG13的研究還沒有深入展開,只是基本確定了應該把穿越這部分功能放在哪個子系統中,僅僅是Lucent在2005年6月份的FG NGN第七次會議上提交的文稿“Clarification and Recommendation of Network Address Hiding and NAT Traversal Mechanisms in FGNGN FRA”中比較全面分析了目前的穿越機制,最後的結論是傾向於基於代理的穿越和基於隧道的穿越。在基於代理的穿越機制中,在NGN架構下,信令代理位於Service Stratum的會話控制功能實體(SCPF)中,穿越代理轉而通過RACF(PDF)來控制A-BGF和I-BGF/PGCF上的NAPT和Firewall穿越。媒體代理(這裏叫做媒體中繼)在A-BGF和I-BGF/PGCF上實現。

3. ETSI/TISPAN和3GPP

ETSI/TISPAN是歐洲地區性的標準組織,在NGN標準研究方面具有了越來越大的影響力,幾乎和ITU-T並駕齊驅,甚至在某些方面已經超過了ITU-T。從目前的情況看,ETSI/TISPAN內部基本達成一致,很傾向於基於穿越代理的穿越方案。這種思想,以Nokia公司在2005年5月份ETSI/TISPAN第6次全會上的一篇文稿“NAT Traversal for IMS”爲代表。該文稿討論了多種穿越方案,如ALG、基於UE的機制(終端利用STUN和TURN等技術能夠自己向外發佈經過NAT後的外部地址)、基於代理的機制(信令代理和P-CSCF合一,媒體代理和媒體網關合一)以及基於隧道的機制。會議對於該文稿進行了熱烈討論,最終的結論是傾向於基於代理的穿越機制。

在3GPP中,對於NAT/Firewall穿越的研究目前還基本處於等待起步的狀態,但是人們認識到了非GPRS接入網的大量使用將使得穿越問題成爲一個很普遍的問題。因此在Nokia等廠家的推動下,3GPP SA2可能即將在其下屬的FBI(System Enhancements for Fixed Broadband Access to IMS)項目中開展類似的研究。如果ETSI/TISPAN傾向於使用基於代理的方案,那麼3GPP將在很大程度上受到影響,因爲這兩個組織存在密切的合作關係。

當然,還有其他一些國際或者地區性的標準組織,比如IETF,對於穿越問題也有相當深入的研究,但是限於篇幅,就不在這裏介紹了。

七、需要進一步研究的問題

1. 安全問題

對於基於穿越代理的穿越機制,會涉及到一些安全問題(當然別的機制也有各自的安全問題)。在安全方面,需要研究的問題有兩大類:(1)因爲使用了某些特定的穿越技術(如會話創建),從而進行了報文仿冒,可能會造成一些安全風險,給黑客攻擊造成機會,這些安全“漏洞”必須杜絕。可以採用認證鑑權等方式,保證穿越服務器和穿越客戶端之間的通信是安全的,不會被黑客仿冒。

(2)因爲穿越代理的網絡位置比較優越,並且很多情況下可能和SBC(Session Border Controller)結合在一個物理實體上,因此能夠瞭解到會話的狀態信息,便於實施某些安全策略,比如通過合法用戶名單和基於優先等級的控制,來有效防範DOS(Denial of Service) 攻擊,尤其是洪水式分佈DOS攻擊。

2. QoS問題

因爲穿越代理的網絡位置比較優越,並且很多情況下可能和SBC(Session Border Controller)結合在一個物理實體上,因此比較適合部署一些QoS策略,特別是針對會話的QoS控制,或者實施某種QoS檢測機制。

3. 多種穿越機制融合共存的問題

即使通過標準活動,目前衆多的穿越機制統一成了少數幾種機制(完全統一到一種是非常困難的),這些機制之間的融合和共存還將會是一個很大的問題。比如目前在ITU-T SG16中,H.Proxy和H.Fantas代表着兩種方案,都有可能成爲國際標準。因此目前SG16已經在考慮如何使得這兩種機制能夠融合共存。當然,這個問題的研究範圍可能還要大得多,要考慮國際標準和業界事實標準(De Facto Standard)之間的融合共存。

4.Peer-to-peer(P2P)通信機制的穿越問題和穿越管制問題

P2P通信現在非常流行,從早期的文件共享(如BT、eDonkey,eMule等)到VoIP(如目前非常流行的Skype),P2P已經進入了多媒體通信的範疇。目前有很多基於P2P機制的網絡流媒體軟件,能夠比基於傳統Client-Server架構的解決方案提供更好的媒體質量和用戶體驗。因此Skype等軟件擁有了巨大的用戶羣。對於運營商而言,既希望能夠利用其機制來給用戶提供更好的VoIP、IPTV業務;同時又希望能夠對於P2P通信進行必要的管制。P2P的一個突出特點是幾乎能夠在任何網絡條件下成功實現NAT/Firewall的穿越,比如Skype,據分析可能就是採用了一種類似STUN和TURN的私有協議。對於P2P的有效管制,應該包含對於這種幾乎無所不能穿越能力的限制。這個領域有很多需要深入研究的問題。這個問題可以說是經典穿越問題的對偶問題(Dual problem),“道高一尺,魔高一丈”,限制和反限制的需要,將不斷推動我們去研究相關的問題。

八、結束語

綜上所述,多媒體通信中的NAT/Firewall穿越是一個非常普遍的問題,因爲涉及的網絡情況複雜多樣,現有的解決方案和技術衆多,因此提出一種通用性好的方案,並且研究相關的技術,同時通過國際國內標準活動,在運營商、設備廠商之間就採用一種或者幾種能夠被廣泛接受的穿越機制達成共識,將是非常必要的。如果成功,將能夠在很大程度上解決這個複雜的問題,大大推進多媒體通信的發展,爲運營商建設下一代網絡並普及多媒體增值業務,創造好的條件。
 
 


 

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