軟交換FW/NAT穿透解決方案探討

徐文卓 2004/01/06

  摘 要:軟交換系統(tǒng)中,如何給防火墻/NAT后的用戶提供完善的多元化服務(wù)是很多運營商和設(shè)備制造商困惑已久的問題。現(xiàn)在,有不少標(biāo)準(zhǔn)化組織和設(shè)備生產(chǎn)廠家針對這個困難提出了自己的解決方案。UT斯達(dá)康憑借豐富的通訊行業(yè)經(jīng)驗和深厚的技術(shù)研發(fā)能力,在軟交換系統(tǒng)中實現(xiàn)防火墻/NAT穿越問題上提出了完善的解決方案—使用SBC(邊界媒體控制器)控制信令和媒體穿越FW/NAT。該方案不僅很好地解決了防火墻/NAT穿越問題,還基于考慮用戶、源自信令和下行網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的策略使用,滿足網(wǎng)絡(luò)所需的獨特的QoS和安全要求。

  關(guān)鍵詞:FW、NAT、防火墻、穿越、Softswitch、軟交換、VoIP、mSwitch

  1 FW/NAT問題簡介

  隨著近年IP網(wǎng)寬帶業(yè)務(wù)的蓬勃發(fā)展,基于分組的多媒體通信系統(tǒng)標(biāo)準(zhǔn)H.323、SIP、MGCP廣泛運用于視頻會議和IP電話中。VoIP業(yè)務(wù)的應(yīng)用也帶來一個值得關(guān)注的問題:絕大部分企業(yè)部門從網(wǎng)絡(luò)安全考慮配置了專用防火墻,但H.323、SIP、MGCP很難通過傳統(tǒng)專用防火墻。原因在于,復(fù)雜的H.323、SIP、MGCP協(xié)議動態(tài)分配端口并產(chǎn)生和維護(hù)多個UDP數(shù)據(jù)流。

  同時由于Internet快速膨脹,IPV4地址空間處于嚴(yán)重耗盡的境況。為解決這個問題,人們設(shè)計出了網(wǎng)址轉(zhuǎn)換器(NAT)。然而NAT后的IP語音和視頻設(shè)備僅有私有IP地址,這些地址在公眾網(wǎng)上是不可路由的。

  這樣一來,多媒體通訊中的防火墻和NAT問題嚴(yán)重地制約了IP電話和視頻會議的應(yīng)用。解決這個問題也就成為多業(yè)務(wù)寬帶IP網(wǎng)絡(luò)至關(guān)重要的事情。

  在這里,我們先簡要回顧一下防火墻和NAT設(shè)備是如何保護(hù)網(wǎng)絡(luò)安全的和為什么實時多媒體通訊協(xié)議是對安全問題的一個挑戰(zhàn)。

1.1 網(wǎng)絡(luò)防火墻和NAT如何工作

1.1.1 防火墻

  為了網(wǎng)絡(luò)的安全性,公司一般都安裝防火墻,它是一個放于私有網(wǎng)的設(shè)備,用來保護(hù)網(wǎng)絡(luò)資源免受外部的惡意破壞。

  防火墻檢查從外部進(jìn)來的每個數(shù)據(jù)包的IP地址和目的端口號,它經(jīng)常如此設(shè)置:如果防火墻內(nèi)的一臺計算機A向防火墻外的一臺計算機B主動發(fā)出請求要數(shù)據(jù),防火墻會讓外部計算機B的數(shù)據(jù)包通過,而且當(dāng)且僅當(dāng)數(shù)據(jù)包的目的地址和端口號與防火墻內(nèi)發(fā)起請求的計算機A的地址和端口號相同;如果計算機B發(fā)來的數(shù)據(jù)包僅僅目的地址是防火墻內(nèi)發(fā)起請求的計算機A的地址,而端口號不是計算機A發(fā)出請求的那個端口號,防火墻也將會丟棄那個外來的數(shù)據(jù)包。

  防火墻總是被配置過濾掉所有不請自到的網(wǎng)絡(luò)通信,有一個例外是在防火墻內(nèi)提供Web Server供外部訪問。在這種情況下,公司會配置防火墻允許目的地址是Web Server的IP地址且目的端口號為80的數(shù)據(jù)包通過,這就使得公司外部可以主動向公司的Web Server發(fā)起請求得到一些公司放在Server上的數(shù)據(jù)。

1.1.2 NAT

  網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)是一個Internet標(biāo)準(zhǔn),置于兩網(wǎng)間的邊界,其功能是將外網(wǎng)可見的IP地址與內(nèi)網(wǎng)所用的地址相映射,這樣,每一受保護(hù)的內(nèi)網(wǎng)可重用特定范圍的IP地址(例如192.168.x.x),而這些地址是不用于公網(wǎng)的。從外網(wǎng)來的含公網(wǎng)地址信息的數(shù)據(jù)包先到達(dá)NAT,NAT使用預(yù)設(shè)好的規(guī)則 (其組元包含源地址、源端口、目的地址、目的端口、協(xié)議) 來修改數(shù)據(jù)包,然后再轉(zhuǎn)發(fā)給內(nèi)網(wǎng)接受點。對于流出內(nèi)網(wǎng)的數(shù)據(jù)包也須經(jīng)過這樣的轉(zhuǎn)換處理。NAT服務(wù)有兩個主要目的:

  1. 許多公司使用NAT用作一個網(wǎng)絡(luò)安全設(shè)備,因為它隱藏了內(nèi)部IP地址,如果黑客不知道特定計算機的IP地址,想要攻擊那臺計算機是更困難的。

  2. NAT讓一個公司可以使用更多的內(nèi)部IP地址,因為這些地址僅僅在內(nèi)部使用,不可能與被別的公司和組織的IP地址產(chǎn)生沖突。

  2 防火墻和NAT阻礙IP語音和視頻通訊

  基于IP的語音和視頻通訊協(xié)議,象H.323,要求終端之間使用IP地址和數(shù)據(jù)端口來建立數(shù)據(jù)通信通道。因此存在一個兩難境地:為了建立數(shù)據(jù)連接終端必須隨時偵聽外來的呼叫,而防火墻卻通常被配置來阻止任何不請自到的數(shù)據(jù)包通過。

  即使網(wǎng)絡(luò)管理者打開防火墻上的一個端口來接收呼叫建立數(shù)據(jù)包,例如1720端口,但I(xiàn)P語音和視頻通訊協(xié)議還要求打開許多別的端口接收呼叫控制信息來建立語音和視頻通道,這些端口號事先并不知道,是動態(tài)分配的,這也就是說網(wǎng)絡(luò)管理者為了允許語音和視頻通訊將不得不打開防火墻上所有的端口,防火墻也就失去了存在的意義。由于網(wǎng)絡(luò)安全的原因,很少企業(yè)會讓他們的網(wǎng)絡(luò)防火墻如此開放。

  在IP語音和視頻通訊中NAT問題也是常見的問題。一個NAT設(shè)備允許一個公司為局域網(wǎng)上設(shè)備分配私有的IP地址。不幸的是控制Internet上信息流向的路由設(shè)備僅僅能把數(shù)據(jù)送到具有可路由IP地址(公眾IP地址)的設(shè)備。

  NAT后的終端可以向位于相同局域網(wǎng)上的任何別的終端發(fā)起呼叫,因為在局域網(wǎng)內(nèi)的這些IP地址是可路由的,然而他們的IP地址是私有的,對局域網(wǎng)外來說是不可路由的,因此NAT后的終端不能接收局域網(wǎng)外終端的呼叫。

  即使NAT內(nèi)的終端可以向NAT外的終端發(fā)起呼叫,這仍然存在問題。當(dāng)進(jìn)行呼叫時,發(fā)起呼叫的終端A的IP地址會包含在數(shù)據(jù)包負(fù)載中,根據(jù)H.323協(xié)議被呼叫的終端B收到呼叫建立(call setup)數(shù)據(jù)包后,會從該數(shù)據(jù)包負(fù)載中獲取終端A的IP地址,并開始發(fā)送音頻和視頻數(shù)據(jù)到這個IP地址的終端A。如果這個IP地址是私有的,Internet路由器將丟棄從外部終端發(fā)送往內(nèi)部終端的音頻和視頻數(shù)據(jù)包,因為這些數(shù)據(jù)包正被送往一個不可路由的IP地址。這個呼叫將顯示已經(jīng)連接上,但NAT后的終端A將永遠(yuǎn)不會收到外部終端B的音頻和視頻。

  3 現(xiàn)有VoIP的FW/NAT穿透技術(shù)

  3.1 不使用防火墻/NAT

  其實解決防火墻和NAT問題的一個最簡單的辦法就是避免使用它們,對大多數(shù)機構(gòu)來說,這種方法太冒險,網(wǎng)絡(luò)安全沒有保證,而且要得到足夠多的可路由的IP地址或許是困難的,昂貴的。對運營商來說也是這樣,若不是用FW/NAT來保護(hù)核心設(shè)備,使核心交換設(shè)備直接跟用戶端聯(lián)接,這樣無疑是很冒險的做法。

  3.2 使用PSTN網(wǎng)關(guān)

  如果不太關(guān)心在局域網(wǎng)外是否基于IP通信,那么可以使用網(wǎng)關(guān)把局域網(wǎng)上的IP語音和視頻轉(zhuǎn)換為公共電路交換網(wǎng)上的PSTN語音和視頻。使用這樣一個網(wǎng)關(guān)就不用關(guān)心網(wǎng)絡(luò)防火墻的穿透問題了,因為沒有數(shù)據(jù)包要通過防火墻。這也解決了NAT問題,所有到局域網(wǎng)內(nèi)終端的呼叫都是可路由的,因為通過網(wǎng)關(guān)進(jìn)入局域網(wǎng)的呼叫都是可路由的。今天大多數(shù)IP電話都是通過一個網(wǎng)關(guān)和非IP電話來進(jìn)行通訊的。網(wǎng)關(guān)方法是一個局部解決方案,要求所有參與呼叫者在最后一道NAT和防火墻后要有一個相應(yīng)的網(wǎng)關(guān)。

  3.3 隧道穿透方案

  一般企業(yè)網(wǎng)都不想升級或者改動他們的防火墻和NAT設(shè)備的配置,也不想讓內(nèi)外的交互通訊繞過這些設(shè)備,采用允許IP語音和視頻穿越防火墻和NAT的隧道穿透方案也許是最合適的,目前提供此類解決方案的有美國的Ridgeway公司。

  隧道穿透解決方案由兩個組件構(gòu)成,Server軟件和Client軟件。Client放在防火墻內(nèi)的私有網(wǎng),它同時具有網(wǎng)守功能和代理功能,私有網(wǎng)內(nèi)的終端注冊到Client上,它和防火墻外的Server創(chuàng)建一個信令和控制通道,可以把所有的注冊和呼叫控制信令轉(zhuǎn)發(fā)到Server,也把音視頻數(shù)據(jù)轉(zhuǎn)發(fā)到Server,在轉(zhuǎn)發(fā)時它把內(nèi)部終端發(fā)送的和外部發(fā)往終端的數(shù)據(jù)包的地址和端口號替換為自己的。Server放在防火墻外的公眾空間,可以位于服務(wù)提供商網(wǎng)絡(luò)或者位于企業(yè)網(wǎng)的DMZ區(qū)域,Server扮演網(wǎng)守代理的角色,從Client收到的所有注冊和呼叫信令都被Server轉(zhuǎn)發(fā)到中心網(wǎng)守。

  3.4 STUN

  STUN (Simple Traversal of UDP Through NATs)是一種由IETF研制的UDP流協(xié)議穿透NAT的協(xié)議。STUN可以在不改變NAT的情況下,與任何現(xiàn)有NAT共存。在STUN服務(wù)器和客戶端之間可以有任意多的NAT設(shè)備。STUN技術(shù)僅針對NAT穿越有效,對防火墻穿越?jīng)]有幫助,所以,如果在整個通話話路中沒有防火墻僅有NAT,STUN將是一種成本低廉的穿越NAT的選擇方案。就STUN協(xié)議本身而言,對哪種協(xié)議并沒有要求,不過目前為止的一些成功案例,都是在基于SIP協(xié)議的系統(tǒng)中實現(xiàn)的。

  UT斯達(dá)康自行研制的軟電話—iSmart,就是采用了STUN技術(shù)的SIP終端。在用戶側(cè)和網(wǎng)絡(luò)側(cè)都沒有設(shè)置防火墻,而僅有NAT轉(zhuǎn)換問題的時候,借助iSmart上的STUN穿越機制,就可以正常使用其服務(wù),STUN支持NAT的多重穿越。

  3.5 MidCom

  Middlebox Communications (MidCom) 是通過在第三方實體和防火墻/NAT之間建立中間盒通訊,使防火墻/NAT設(shè)備變?yōu)榭煽氐囊环N新的概念。這種方法是允許第三方成為受防火墻/NAT信任的實體,然后代表防火墻/NAT做出決定,強迫其開放端口傳送媒體流或數(shù)據(jù)流。這些受信任的實體通過“MidCom”定義的新協(xié)議與防火墻/NAT進(jìn)行通信。受信任的第三方實體幫助防火墻/NAT操作,而不必在其中加入智能程序去判斷是否允許媒體流通過。這樣,防火墻/NAT可以在對應(yīng)用層內(nèi)容未知的情況下繼續(xù)提供安全服務(wù)。

  3.6 Full Proxy

  SIP或H.323 proxy可以用于穿越NAT或者FW/NAT,但穿越防火墻時要考慮防火墻是如何配置的。Proxy有點類似于網(wǎng)關(guān),只是在Proxy的兩邊都是同樣的協(xié)議,它起不到協(xié)議轉(zhuǎn)換的作用。Proxy可以對內(nèi)外的IP網(wǎng)絡(luò)都有所了解, 并使基于IP的呼叫看起來像兩個完全分離的呼叫:其中一個是從內(nèi)部網(wǎng)絡(luò)起呼的終端到Proxy,另一個是從Proxy到外部網(wǎng)絡(luò)上的終呼終端。而這個Proxy則起到把兩個呼叫融合在一起的作用,從而解決了NAT的問題。

  3.7 ALG(Application Level Gateway)

  應(yīng)用層網(wǎng)關(guān)(Application layer gateways)是被設(shè)計能識別指定IP協(xié)議(象H.323、SIP或MGCP)的設(shè)備。它不是簡單地察看包頭信息來決定數(shù)據(jù)包是否可以通過,而是更深層的分析數(shù)據(jù)包負(fù)載內(nèi)的數(shù)據(jù),也就是應(yīng)用層的數(shù)據(jù)。H.323和SIP協(xié)議都在負(fù)載中放了重要的控制信息,例如語音和視頻終端使用哪一個數(shù)據(jù)端口來接收別的終端的語音和視頻數(shù)據(jù)。通過分析哪一個端口需要打開,防火墻動態(tài)地打開那些被應(yīng)用的端口,而所有別的端口依然安全地保持關(guān)閉狀態(tài)。 如果一個NAT被應(yīng)用來屏蔽內(nèi)部IP地址,這時ALG就需要一個代理,一些防火墻生產(chǎn)廠商把代理結(jié)合到ALG上越過NAT。

  應(yīng)用層網(wǎng)關(guān)可以是單獨的連接于外網(wǎng)和內(nèi)網(wǎng)之間的設(shè)備,也可以是內(nèi)置于防火墻內(nèi)的插件。當(dāng)防火墻發(fā)現(xiàn)外網(wǎng)呼叫信號為H.323、SIP或MGCP呼叫信息時,將其轉(zhuǎn)發(fā)到ALG(應(yīng)用層網(wǎng)關(guān)),通過ALG建立起內(nèi)網(wǎng)偽地址終端與外網(wǎng)終端的通信連接。它主要完成以下幾個功能:H.323、SIP或MGCP協(xié)議棧的部分功能、H.323、SIP或MGCP代理服務(wù)器、網(wǎng)守、IP地址翻譯等。

  3.8 SBC(Session Border Controller)

  SBC方案,是迄今為止,對FW/NAT問題解決最完善的方案,也是UT斯達(dá)康公司推薦使用的解決方案之一。實施SBC方案,不僅不用對原有網(wǎng)絡(luò)中的FW/NAT設(shè)備做任何改動,而且對原有網(wǎng)絡(luò)沒有任何特殊要求。

  SBC本身可以被看作支持VoIP的Proxy,它是一種“可識別應(yīng)用層”的設(shè)備,可以識別第五層和第七層的消息,并且還可以處理第五層的眾多會話信令協(xié)議,修改數(shù)據(jù)包頭的地址,從而實現(xiàn)SBC內(nèi)外網(wǎng)地址變換。

  SBC同時還可以用于協(xié)助VoIP穿越遠(yuǎn)端防火墻/NAT設(shè)備。它一般放置在網(wǎng)絡(luò)核心交換設(shè)備側(cè)。所有經(jīng)過SBC的信令和媒體流經(jīng)過SBC的協(xié)調(diào)和修改,可以在系統(tǒng)側(cè)和用戶側(cè)正確傳輸。用戶側(cè)的NAT/Firewall可以接受這種修改后的信令和媒體流并把他們傳送到用戶側(cè)內(nèi)網(wǎng)。這種利用SBC實現(xiàn)的防火墻穿越技術(shù)可以稱之為“遠(yuǎn)端防火墻穿越”。

  SBC可以幫助SIP/MGCP信令穿越已經(jīng)存在的FW/NAT,而不需要對現(xiàn)有的FW/NAT設(shè)備做任何改變。具體來說,對于SIP終端,SIP終端設(shè)備會周期性發(fā)注冊消息到SBC;對于MGCP終端,當(dāng)收到MGCP設(shè)備的第一個注冊消息后,SBC會周期性發(fā)AUEP消息到終端,強制其再不停的周期性回復(fù)200OK消息。這樣,由于不停的有信令消息經(jīng)過防火墻/NAT設(shè)備,可以使防火墻/NAT對通過的消息流始終保持一個確定的端口;同時,當(dāng)注冊信息經(jīng)過SBC,它將記錄在防火墻上的第三層的IP地址和端口等信息,并且將此信息與防火墻后面的終端的用戶名或電話號碼等第五層信息進(jìn)行綁定記錄。這樣,當(dāng)一個信令到來,SBC將通過防火墻上正確的地址和端口發(fā)送給被叫方。

  當(dāng)呼叫建立后,雙向的媒體流端口都是動態(tài)建立的。由于媒體流同樣也通過SBC,SBC將通過與該媒體流相關(guān)的呼叫(第五層消息中的用戶名或電話號碼)識別出防火墻上的IP地址和端口。因此,SBC可以把相應(yīng)的媒體流發(fā)送到防火墻上的相關(guān)IP地址和端口,然后正確的使媒體流到達(dá)防火墻后的用戶側(cè)。

  SBC本身可以被看作支持VoIP的防火墻,不過它們不僅僅有此功能。它們還可以修改IP包的包頭,使IP包能夠順利通過網(wǎng)絡(luò)邊緣設(shè)備(如:FW或NAT)。SBC是一種“可識別應(yīng)用層”的設(shè)備,可以識別第五層和第七層的消息,并且還可以處理第五層的眾多會話信令協(xié)議,修改數(shù)據(jù)包頭的地址,從而實現(xiàn)“遠(yuǎn)端防火墻穿越”。同時,SBC可以通過對會話數(shù)目的限制,實現(xiàn)應(yīng)用層防D.O.S.攻擊。

  4 各種語音穿越防火墻技術(shù)的優(yōu)劣比較


  5 滿足市場需求的解決方案

  作為下一代電信網(wǎng)的核心技術(shù), 基于VoIP技術(shù)的軟交換技術(shù)在實際應(yīng)用時, 無疑需要很多的IP地址,在IPv6技術(shù)大規(guī)模應(yīng)用前,VoIP軟交換網(wǎng)絡(luò)中利用私有IP地址是一個節(jié)省有限共有IP資源的現(xiàn)實選擇,所以實際布網(wǎng)時常常會大量使用NAT。

  防火墻技術(shù)是建立在現(xiàn)代通信網(wǎng)絡(luò)技術(shù)和信息安全技術(shù)基礎(chǔ)上的應(yīng)用性安全技術(shù),越來越多地應(yīng)用于專用網(wǎng)絡(luò)與公用網(wǎng)絡(luò)的互聯(lián)環(huán)境之中,尤以Internet網(wǎng)絡(luò)為最甚。

  而作為電信網(wǎng),互聯(lián)互通是軟交換所必須的,顯而易見,使用NAT和防火墻在節(jié)省了公有IP資源和保障安全性的同時,也帶來了需要解決一些互聯(lián)互通的問題。

  UT斯達(dá)康公司的防火墻/NAT穿透技術(shù)針對電信運營商的具體網(wǎng)絡(luò)需求,給出了完整解決方案。其中,SBC方案可以在不改變網(wǎng)絡(luò)中其他設(shè)備的情況下,保障防火墻/NAT后面的終端用戶能夠使用所有mSwitch系統(tǒng)所提供的語音/視頻/數(shù)據(jù)服務(wù)。不僅如此,SBC設(shè)備還可以為mSwitch核心網(wǎng)絡(luò)提供安全防護(hù)功能。傳統(tǒng)的數(shù)據(jù)防火墻不能達(dá)到運營商網(wǎng)絡(luò)在傳送實時媒體通信所需要的動態(tài)特點和規(guī)模,大多數(shù)的邊緣路由器在執(zhí)行一些安全功能,如許可控制和地址轉(zhuǎn)換時,主要都是用于單向而非實時的通信,卻并不是針對處理VoIP信號通信的特別要求而設(shè)計。SBC設(shè)備正好就可以跟傳統(tǒng)數(shù)據(jù)防火墻和邊緣路由器起到互補作用。UT斯達(dá)康公司提供的應(yīng)用于軟交換系統(tǒng)中的FW/NAT穿越方案,結(jié)合了高性能和可靠性的優(yōu)越特點,為運營商提供更多能為其帶來盈利的服務(wù)。

  6 結(jié)語與展望

  從上述各項FW/NAT穿越技術(shù)的研究和分析可看出,UT斯達(dá)康的軟交換系統(tǒng)采用了先進(jìn)的STUN、SBC等技術(shù),力求為運營商和終端用戶提供更為完善的多元化服務(wù)。隨著科技的進(jìn)一步發(fā)展,F(xiàn)W/NAT穿越技術(shù)也必將走向成熟和完善。

中國通信網(wǎng)(www.c114.net)


相關(guān)鏈接:
UT斯達(dá)康宣布在印度建IPTV技術(shù)中心 2009-09-27
從國內(nèi)外IPTV發(fā)展看IPTV的核心驅(qū)動力作用 2009-09-24
聚焦IP通信 致力互動溝通 UT斯達(dá)康締造精彩 2009-09-16
UT斯達(dá)康宣布公司執(zhí)行董事長陸弘亮離職 2009-08-04
UT斯達(dá)康奔流系統(tǒng)助廣電互動電視內(nèi)容運營 2009-07-08

分類信息:     技術(shù)_NGN及軟交換_新聞   技術(shù)_NGN及軟交換_文摘