馮 穗
(中國人民武裝警察部隊廣東省公安邊防總隊 廣州通信站,廣東 廣州 510630)
由于IPV4地址的有限以及網(wǎng)絡安全問題,多數(shù)行業(yè)和單位用戶選擇組建自己內(nèi)部的IP網(wǎng)絡來進行語音、圖像和數(shù)據(jù)通信。為了確保網(wǎng)絡安全,通常這些IP網(wǎng)絡和公網(wǎng)之間都通過NAT、防火墻等設備連接。
這些設備通常都會對通過它們的IP包按照相關策略進行過濾,同時對IP地址或端口進行相應轉換處理,導致基于H.323等協(xié)議的圖像和語音IP包不能夠正常通過。
現(xiàn)在常用的網(wǎng)絡會議軟件和網(wǎng)絡電話軟件采用的是國際電信聯(lián)盟(ITU-T)制定的 H.323 協(xié)議族,其中包括 H.225,H.245,Q.931 等,另外還有IETF制定的SIP(會話啟動協(xié)議)。SIP協(xié)議采用與http類似的文本命令形式,而且協(xié)議比較簡單,是未來網(wǎng)絡電話和即時通訊的方向。但由于H.323出現(xiàn)較早,已經(jīng)有很多商業(yè)應用,比如微軟的NetMeeting采用的就是比較成熟的H.323,另外中國的電信企業(yè)實施IP電話時也傾向于采用H.323協(xié)議。所以H.323還將會在長時間內(nèi)和SIP同時存在。
H.323標準定義了一個在基于分組的網(wǎng)絡上進行靈活的、實時的、可交互的多媒體通信協(xié)議集。個人計算機能在包交換網(wǎng)絡(網(wǎng)際網(wǎng)和內(nèi)部網(wǎng))和電路交換網(wǎng)絡上傳輸音頻,視頻和數(shù)據(jù)。
H.323網(wǎng)絡包括終端,網(wǎng)關,網(wǎng)守(Gatekeeper)和多點控制單元(MCU)。
按照NAT的定義,內(nèi)部本地地址表示分配給內(nèi)部網(wǎng)絡中的計算機的IP地址;內(nèi)部合法地址表示對外進行IP通信時,代表一個或多個內(nèi)部本地地址的合法IP地址。
為了網(wǎng)絡的安全性,企業(yè)內(nèi)部網(wǎng)一般都安裝了防火墻,它是一個放置于私有網(wǎng)內(nèi)的設備,用來保護網(wǎng)絡資源免受外部的惡意破壞。防火墻總是被配置過濾掉所有不請自到的網(wǎng)絡通信。
局域網(wǎng)內(nèi)的終端之間進行呼叫和通信時不會有任何問題,但這些終端與外網(wǎng)終端進行H.323通信時就會有問題產(chǎn)生,原因是局域網(wǎng)中的IP地址是私有的,在Internet中是不可路由的。當局域網(wǎng)內(nèi)的終端呼叫外部終端時可以建立連接,但局域網(wǎng)內(nèi)的終端不能收到網(wǎng)外終端發(fā)送的語音和視頻數(shù)據(jù)包;局域網(wǎng)內(nèi)的終端也不能收到網(wǎng)外終端的呼叫。
H.323協(xié)議在端設備與端設備之間使用IP地址和端口進行數(shù)據(jù)通信,防火墻的安全策略會限制未經(jīng)請求的外部數(shù)據(jù)包進入,阻斷端設備與端設備之間的呼叫,就算防火墻打開了一個端口接收到呼叫申請的初始數(shù)據(jù)包,視頻協(xié)議還是會要求動態(tài)分配一些端口用來接收申請呼叫的控制信息和建立音頻、視頻的數(shù)據(jù)通道,除非打開所有防火墻的端口,才可以進行視頻通信,而這時防火墻也就失去了作用。
針對H.323協(xié)議的特點和NAT/防火墻的特性,人們提出了不同的解決方案,歸納起來主要有設置靜態(tài)NAT、擴展協(xié)議方式、升級防火墻支持H.323ALG、隧道方式、H.323代理方式等幾種方式。
當在私網(wǎng)中的視頻終端種類和數(shù)量不大,對于自建網(wǎng)中的每臺視頻終端,在防火墻NAT上作網(wǎng)絡地址轉換,將私網(wǎng)地址一對一的映射到公網(wǎng)地址上,在防火墻上指定端口設置這些地址的開放策略。通過這種方法,自建網(wǎng)內(nèi)部的終端設備可以和公網(wǎng)、其它自建網(wǎng)之間終端設備進行互通互聯(lián)。但這種方法存在以下不足和缺陷:①視頻終端設備要有支持靜態(tài)NAT設置,可以預先設置對應的公網(wǎng)地址。②防火墻公網(wǎng)地址池中IP地址數(shù)要大于等于自建網(wǎng)內(nèi)終端設備的總數(shù),任何節(jié)點的防火墻都需要有支持靜態(tài)NAT配置,投入成本比較大。③復雜的防火墻安全策略配置,即要在防火墻上把所有視頻終端的IP地址一對一地做靜態(tài)地址映射,還要把靜態(tài)映射后的公網(wǎng)IP地址對應的全部端口打開。
擴展協(xié)議方式通過在公網(wǎng)上放置一個NATSWITCH設備,在GK上采用一定的策略,當有私有網(wǎng)絡的端點參于呼叫時,把呼叫轉接到NATSWITCH上,通過NATSWITCH和NAT端點的消息交互,實現(xiàn)NATSWITCH和NAT后端點的互通,然后通過NATSWITCH實現(xiàn)私網(wǎng)和公網(wǎng)端點的互通。該方式實現(xiàn)穿透優(yōu)勢如下:①在私網(wǎng)內(nèi)的終端沒有進入呼叫狀態(tài)時,只發(fā)送注冊消息,不額外增加NAT設備的負擔。②和公網(wǎng)的MCU/終端之間采用標準H.323協(xié)議。③不修改網(wǎng)絡結構,兼容各種NAT方式。④僅在H.323協(xié)議上擴展,對系統(tǒng)改動小。
NATSWITCH接口如圖1所示,NATSWITCH是一個基于H.323協(xié)議的代理服務器,通過添加擴展消息實現(xiàn)和NAT設備后的H.323實體互通,而它和公網(wǎng)的H.323實體的消息又是標準的H.323接口,具有兼容性。
將正在運行的防火墻/NAT升級改造為支持H.323ALG是解決視頻協(xié)議穿透問題的有效途徑。升級改造后的設備能夠解釋分析H.323協(xié)議內(nèi)容,對H.323協(xié)議的IP碼流可以直接進行包頭、包內(nèi)IP地址轉換,并根據(jù)需求動態(tài)打開相關媒體流的通信端口,在會話結束后再自動關閉這些端口。不但證了網(wǎng)絡安全,還能使多媒體通信正常建立,這種方法存在的不足和缺陷有:①所有節(jié)點的防火墻都需要升級,網(wǎng)絡出口需要改造,投入成本比較大。②視頻會議系統(tǒng)需要改造所有網(wǎng)絡出口,難度較大,且設備放在用戶網(wǎng)內(nèi),運營商無法統(tǒng)一維護。
隧道方式的H.323穿越如圖2所示,服務器軟件和客戶機軟件??蛻魴C放在防火墻后的私有網(wǎng)中,它同時起到網(wǎng)守和代理服務器的作用,自建網(wǎng)內(nèi)的視頻終端連接到客戶機上,客戶機與防火墻外的服務器建立了控制及信令通道,把所有的呼叫控制信令和注冊信息都轉發(fā)到服務器上,同時把音、視頻數(shù)據(jù)也轉發(fā)到服務器上。
在轉發(fā)時將內(nèi)部終端發(fā)送的以及外部發(fā)往終端的數(shù)據(jù)包的地址和端口號進行替換。服務器放在防火墻外的公眾空間,可以位于服務供應商網(wǎng)絡或者位于企業(yè)網(wǎng)的非保護區(qū)域(DMZ),服務器扮演網(wǎng)守的角色,從客戶機收到的所有注冊和呼叫信令都被服務器轉發(fā)到中心網(wǎng)守。
當私網(wǎng)內(nèi)客戶機啟動時,客戶機與服務器上的偵聽端口建立一個固定連接用來傳送控制和狀態(tài)信息,監(jiān)聽私網(wǎng)內(nèi)H.323網(wǎng)守注冊和請求信息。
當一個終端啟動時,終端通過客戶機/服務器之間的連接發(fā)送注冊信息到中心網(wǎng)守,服務器分配給每一個注冊的終端一個唯一的端口號(與服務器的IP地址對應)。
當一個終端呼叫防火墻外的另一個終端時,所有的數(shù)據(jù)包都通過客戶機路由到服務器,返回的數(shù)據(jù)也從服務器通過客戶機路由回到終端。當呼叫被建立后,客戶機確保所有必需的經(jīng)過防火墻的音、視頻通道保持開放,這樣音、視頻數(shù)據(jù)可以通過這些防火墻上開放的通道進行傳輸。
使用這種方法IP地址信息可以被很好地屏蔽,因為所有的數(shù)據(jù)包通過服務器來轉發(fā),每個終端看起來好像直接在和服務器進行通信,而不是和別的終端,保證了終端的IP地址在網(wǎng)絡外不可被得到。而且這種方法在大多數(shù)情況下不用對防火墻的配置進行修改。
圖3 H.323代理服務器組網(wǎng)圖
如圖3所示,這種解決方案的典型應用是在防火墻后放一個H.323代理,代理需要被分配公有IP地址。防火墻被配置允許代理和外部進行多媒體通信。
從使用者的角度看,H.323代理服務器對用戶、設備和網(wǎng)絡是透明的。H.323代理是一個基于H.323協(xié)議的代理服務器,可以實現(xiàn)對H.323實體(MCU/終端)和媒體的代理功能。H.323代理對外的接口都采用標準的H.323協(xié)議。
由以上分析可以看出,沒有一個解決方案是完美的,應該根據(jù)用戶不同的應用場合選擇具體采用哪種穿越方式。
[1]基于包交換的多媒體通信系統(tǒng)[J].
[2]多媒體通信的信令協(xié)議和打包方法[S].