一、引言
隨著電腦和通訊技術的快速發展,通過公用的分組網承載語音、資料、映像等多種業務成為網路發展方向。在這樣的業務驅動和網路融合的趨勢下,以軟交換裝置為核心的下一代網(NGN)應運而生。NGN在分組網中實現,採用分布式網路結構,有效承載語音、視頻和多媒體業務,實現業務應用、業務控制和業務傳送功能三者的分離。在建網的過程中,NGN可以從現有資料網中進行平滑過渡,這樣帶來的好處有:現有的網路裝置和終端裝置可以直接應用到NGN中,許多基於IP 的協議可以繼續使用。但同時我們又不可避免地遇到許多問題,其中專用網穿越就是一個急需解決的問題。在此之前,我們先看一下NGN的網路結構。
NGN是融合語音、資料、多媒體和移動業務的網路。從網路層次上可以劃分為以下幾層:接入層、傳送層、控制層和業務層。
接入層:由各種網關、智能接入終端裝置和綜合接入裝置群組成,通過各種接入手段將各類使用者串連至網路(包括寬頻接入、移動接入等),並將資訊格式轉換成能夠在網路上傳遞的資訊格式。
傳送層:指NGN的承載網路,負責對各種不同的業務和媒體流提供公用的傳送平台,多採用基於分組的傳送方式。目前主要的核心傳送網是寬頻IP網。
控制層:完成呼叫處理控制、接入協議適配、互連互連等綜合控制處理功能和商務邏輯的具體執行。它決定了使用者收到的業務,並能控制低層網路元素對業務流的處理。其主要實體為軟交換裝置。
業務層:處理商務邏輯,提供面向客戶的綜合智能業務,實現業務的客戶化以及與業務相關的管理功能,如業務認證和業務計費等。
二、NGN寬頻接入中的穿越問題
NGN 寬頻接入中存在的穿越問題關注的就是NGN中邊緣接入層面的寬頻接入問題。由於NGN的核心承載網和寬頻接入就是在現有IP網路基礎上建設的,接入使用者必然是通過IP地址定址的。但目前實際的情況是,由於Internet的快速膨脹,IPv4地址空間處於嚴重耗盡狀態。為瞭解決這個問題,大量企業網和駐地網都在網路出口部署網路位址轉譯器(NAT)。
NAT是Internet的一個標準,位於專用網和公網的邊界處。當專用網發出的IP資料分組到達NAT裝置時,NAT負責將內部專用網IP地址轉換成公網的合法IP地址;當有外部發來的資料分組到達NAT後,NAT通過查閱NAT儲存的映射表裡的資訊,將公網地址轉換成專用網地址,再轉寄到內部接收點。
通常,對於一般的資料包,NAT裝置只需對IP地址和連接埠號碼進行轉換。但對於H.323、SIP和MGCP等應用來說,真正的媒體串連資訊是放在資料包負載中傳遞的,這時就出現問題。假設終端A向終端B發起呼叫,軟交換將終端A的呼叫資訊轉寄到終端B上,根據H.323、SIP等協議,終端B會從該資料包負載中擷取終端A的專用網IP地址,就會試圖與終端A建立RTP串連,但由於這個IP地址是私人的,私人地址在公網上是不可達,故通話是無法建立起來的。從圖3可以清楚地看到NAT是如何對端到端媒體流產生阻礙的。
同時為了提高內部網路的安全性,大多數企業在網路出口處使用防火牆,限定進入內部網路資料包的類型和流量。而基於IP的語音、視頻通訊協定,要求終端之間使用IP地址和連接埠號碼建立資料通訊通道。因此出現了一個兩難境地:NGN各個終端必須隨時偵聽外來的呼叫,但是防火牆卻不允許外網任何不請自到的資料包通過。即便我們使用某種機制,開啟防火牆的一個連接埠,接收來自外網的呼叫建立的資料包,但由於語音、視頻通訊中的RTP/RTCP需要通過動態分配連接埠實現媒體流的發送和接收,所以防火牆的問題也是我們在NGN實際開展過程中不得不面臨的問題。
三、一種專用網穿越問題的解決方案
目前關於私網穿越問題有多種解決方案,如應用程式層網關(ALG)、代理技術、協議擴充等,它們在一定程度上解決了語音、視頻穿越防火牆和NAT的問題,但都存在著一些不足。應用程式層網關和代理技術需要升級現有的NAT和防火牆裝置,這對於大多數已經部署完NAT裝置的商業網路來說是不易實現的。而協議擴充雖然不需要對現有NAT裝置進行改動,但是卻要對現有的終端和軟交換裝置、網守和SIP伺服器等控制裝置同時進行擴充,在實現的過程中也是十分困難的。在這裡我們介紹一種“IP隨心通”的穿越技術。
1. IP隨心通技術
IP隨心通技術基於Client/Server工作模式,提供網路之間的安全連線。
可以看到,該方案由兩個構件組成,Application Server(下文簡稱Server)和Agent Client(下文簡稱Client)。Client放在防火牆和NAT之後的私人網中,終端和防火牆外部裝置的通訊由Client代理,私網內的終端註冊到Client上。Server被安置在公網中,並具有公網IP地址。Client和Server之間建立一個信令和控制通道,通過這個通道 Client將所有使用者的註冊資訊和呼叫控制信令轉寄到Server上,再由Server轉寄到軟交換裝置上。此外,音頻、視頻等媒體流也由Client 轉寄到Server上。Client和Server之間使用的是自訂協議,值得說明的是,終端發送到Client上的信令或媒體流必須經過Client 打包成符合自訂協議要求的分組格式才能進行轉寄,到達Server後再進行解包處理。只有通過此過程,Server才可以擷取穿越NAT所必需的資訊。
該方案通過開放防火牆上少量連接埠,允許在Client和Server之間建立TCP串連,承載各種控制信令。當一個終端呼叫防火牆外的另一個終端時,所有的資料包都可以通過Client路由到Server,返回的資料也可以從Server通過Client路由回到終端。當呼叫被建立後,Client在轉寄媒體流時,確保所有必需的經過防火牆的音視頻通道保持開放,這樣音視頻資料可以通過這些防火牆上開放的通道進行傳輸。通常,可以通過管理員的簡單配置,在防火牆上開啟幾個固定的連接埠。
2. 解決NAT穿越問題
首先,私網內的所有終端都向Client進行註冊,Client將所有私網終端資訊進行儲存,再向公網上的Server註冊。當Server收到註冊資訊後,為便於進行使用者管理,Server給每個Client分配一個使用者序號,再將註冊資訊轉寄到軟交換裝置上。註冊資訊到達Server時,通過 Client和Server之間自訂的協議,Server可以從資料包頭中取出NAT轉換後的公網合法地址,並儲存該地址資訊。這樣,Server就可以根據這個地址向NAT發送資料了。因而,RTP/RTCP資料就可以順利進入專用網路了。
以圖5為例,當終端A和終端C分別向Client1和Client2註冊,儲存的使用者資訊如表1和表2所示。當Client1和Client2經過NAT將註冊訊息轉寄給Server時,NAT分別給A和C分配外部合法地址,假設A(123.44.55.11:1050)和C(123.44.55.22: 1060)。這時,Server上儲存的使用者地址資訊如表3所示。現在由A向C發起呼叫,呼叫信令由A發向Client1 後,再由Client1/Server之間的通道發到Server上,Server進行信令處理後再轉寄到軟交換系統上。同時,軟交換系統進行位址解析,將呼叫被叫的請求訊息發送給Server。此時,Server根據軟交換解析出的C的私網地址,尋找自己儲存的Client表,知道了C的合法公網地址,此時,Server將建立一個串連表,儲存A到C的串連資訊,如表4所示。同時再將呼叫信令轉寄到C私網外的NAT上,NAT通過查詢自己維護的映射表,就可以把這條訊息發送給Client2。Client2再查詢自己的使用者終端表,這條訊息就正確地來到了C。同理,呼叫接續流程的其他信令訊息,轉接方式類似。
對於媒體流,Server起到媒體轉送的作用。當呼叫串連建立好後,終端A向終端 C發送RTP/RTCP包。Client1隻需將RTP/RTCP包向Server的固定連接埠發送即可。Server檢查自己儲存的串連資訊表,直接完成轉寄功能。值得強調的一點是,由於RTP是基於UDP包的,為了使NAT上的映射關係在一個完整的通話時間內對UDP包保持不變,我們必須源源不斷地由 Client向Server發送訊息,在沒有語音時,也要發送舒適噪音的訊息。
3. 其他問題的考慮
(1)作為信令代理,Server對使用者來說,相當於軟交換系統,Client則是透明的。當使用者通過Client將註冊資訊傳送到Server上,並由 Server向軟交換系統註冊時,必須進行身份認證,只有註冊認證通過後使用者才可以進行後續呼叫串連和會話。所以Server必須有接受使用者的註冊並管理相關的註冊資訊的能力,以保證使用者成功註冊後可以多次進行呼叫,而無需每次呼叫再重新註冊,對於沒有註冊的使用者,Server收到該呼叫後直接拒絕。
(2)Client/Server是一個多協議的實體,因此必須採用標準協議與終端和軟交換進行通訊,這些協議包括MGCP、H.248、H.323、SIP等。而Client和Server之間則採用自訂的協議。
(3)從構架上看,如果需要進行私網穿越的裝置非常多,一個Server代理無法處理時,可以部署多個Server。
(4)由於所有的媒體流都是經過Server進行轉寄,如果增強Server的功能,就可以解決軟交換系統中媒體流不受控制的問題:可以控制使用者頻寬,防止未授權的媒體流建立串連;可以實現按流量計費;還可以獲得媒體流的QoS資訊。
四、結束語
本文介紹了一種基於Client/Server模式的穿越NAT和防火牆的方法——IP隨心通。該技術簡單直接,不需對現有NAT裝置作任何擴充,僅需要 NAT裝置通過策略配置開啟少數幾個連接埠,並且支援多種協議,具有良好的擴充性。此外,隧道穿越機制很容易實現多級NAT的穿越問題。但同時我們不可避免地應該看到隧道穿越技術也有自身的缺點,所有經過防火牆的通訊都必須經由Server進行中轉,這個經由Client和Server的過程會帶來一定的延遲。現在已經有許多裝置廠商使用這種方法來解決音視頻穿越NAT和防火牆的問題,雖然名字不同,但基本原理都相同。相信隨著下一代網路規模的不斷擴大,這種穿越的技術會越來越多地應用到下一代網路當中。
參考文獻
[1] 趙慧玲,葉華.以軟交換為核心的下一代網路技術.北京:人民郵電出版社,2002
[2] 糜正琨.IP網路電話技術.北京:人民郵電出版社,2000
[3] Tsirtsis G,Srisuresh P.Network Address Translation-Protocol Translation(NAT-PT).RFC 2766,IETF,February 2000
[4] S.Davies,Read S,Cordell P,Scott B A.Traversal of non-Protocol Aware Firewalls & NATS.Draft-davies-fw-nat-traversal-01,IETF,October 2001
[5] Srevens WR.TCP/IP詳解 卷1:協議.北京:機械工業出版社,2002
作者單位:西安電子科技大學綜合業務網國家重點實驗室