摘要:分析了在軟交換體系中使用私網及NAT技術所產生的問題,介紹了一種解決軟交換私網穿越問題的方法,并對使用這種方法有可能為軟交換網絡帶來的進一步影響進行了探討。
????
???? 關鍵詞:NGN 軟交換 NAT PAT 私網穿越
????
???? 一、引言
????
???? 下一代網絡(Next Generation Network,NGN)是一種基于分組交換技術的通信網絡,在整體構架、信令控制、承載網絡等方面都與現有的電路交換網絡存在很大不同。軟交換技術作為一種在分組網內實現通信話路交換與媒體傳輸的技術,將是NGN網絡的核心技術。由于軟交換技術本身就是基于IP分組網的,因此在現有的基礎數據網上,完全可以建立起一套軟交換的構架。帶來的好處有:現有的許多基于IP的協議可以被繼續利用,大量的網絡設備和終端設備都可以直接被應用到軟交換網絡中。雖然在現有數據網的基礎上構建軟交換網絡具有上述的優點,但也存在許多問題,其中私網穿越就是一個需要解決的問題。
????
???? 二、在軟交換體系中面臨的私網穿越問題
????
???? 1. 私網的概念與NAPT技術的產生
????
???? 隨著基于TCP/IP的互聯網的普及,私有網絡(簡稱私網)的數量和規模也越來越大。私網,就是采用私有的IP地址來連接各個網絡設備組成的相對獨立和封閉的網絡。這種組網方式在組建各種規模局域網時被大量應用。可以說,在當今的網絡世界里,使用私網IP地址的網絡設備的數量,要遠遠大于擁有合法Internet網IP地址的設備數量。為了能夠讓這些設備可以訪問私網外部的資源,NAT(網絡地址轉換)技術也就應運而生。私網內部設備試圖訪問外部網絡時NAT技術可以將其私有的IP地址轉換成合法的IP地址。在運用NAT的同時,一般還會運用動態的端口轉換(PAT)技術,以解決合法IP地址緊缺的問題。這種技術實現方法是,對于一個私網中的所有設備,共用一個或多個合法的IP地址作為出口地址,只有在設備請求連接外部網絡時,才為這個請求分配一個合法IP地址和一個端口號,來進行外部連接;當這個請求結束時,端口號和IP地址也就隨即被收回。NAT與PAT經常被同時使用,稱為網絡地址端口轉換(NAPT)。NAPT的運用,為IP網絡帶來了很多好處:如緩解了IPv4構架下Internet網絡的IP地址緊張問題,提高了私有網絡內部的安全性和可管理性。由于具有這些優點,NAPT被大量運用到各種私網網關設備上,它是絕大多數網絡路由器設備的一個基本功能,也是網絡防火墻功能的重要組成部分。
????
????
????
????
????
???? 2. NAPT影響軟交換的問題
????
???? (1)NAT問題
????
???? 現在假設我們具有一個如圖1所示的軟交換網絡,在這個網絡中,終端A與終端B在私網內,只有私網IP地址,而終端C具有獨立的合法IP地址。為了便于描述,假設所有終端都是SIP終端,軟交換與終端間的通訊也采用標準的SIP協議。若終端A向終端B發起呼叫請求,則會產生一個如圖2所示的消息包,這個消息包在經過路由器的NAPT后,變成圖3所示的消息包(其中1050為NAPT動態分配的端口號)。
????
????
????
????
????
???? 由于終端B在向軟交換注冊時,通過SIP協議層的注冊消息告訴軟交換的是它的私有地址,并且在終端B沒有主動對外發起連接請求時,防火墻不會為其分配可被訪問的IP地址和端口號,因此軟交換根本無法將INVITE消息發送給終端B,呼叫無法接續。
????
???? (2)PAT問題
????
???? 假設由終端A向終端C發起呼叫,由于終端C上面沒有防火墻或路由器,軟交換可以順利地把INVITE消息包轉發到終端C,這個消息中攜帶SDP信息,用于終端間的媒體協商。媒體協商的主要目的就是選擇合適的編解碼器,并建立RTP媒體流的連接。由終端A發送的INVITE消息中攜帶的SDP信息內容如圖4所示(其中10006是終端A建立RTP連接的端口號)。
????
????
????
????
???? 圖4 INVITE消息中的SDP信息
????
????
???? 終端C收到SDP信息后,就會試圖與192.168.0.3:10006建立RTP連接,很明顯這是一個私網內部的地址,因此通話也自然無法建立起來。
從以上分析可以看出,NAPT影響到軟交換通信的主要有兩方面:一方面,私網內設備都采用內部IP地址,雖然經過NAPT可以將IP層的地址轉換為外部地址,但是對于更上面的應用層消息中的私有IP地址卻無能為力,稱作NAT問題。另一方面,私網設備只是在向外部主動發起連接時,才會被分配到合法IP和端口號。若不做特殊處理,設備對外部網絡來說是不可見的,也無法接受軟交換發來的呼叫請求,這個可以稱作PAT問題。基于SIP協議的問題如此,當軟交換與終端間使用其它協議如H.323,MGCP或H.248協議時,類似的問題也同樣存在。
????
???? 三、一種私網穿越問題的解決方法
????
???? 1. 解決NAPT穿越問題的各種方法
????
???? (1)NAT/ALG方法
????
???? 此方法通過在防火墻或路由器上,增加對VoIP相關的應用層協議的識別和處理能力,來實現私網穿越。這種方案比較直觀,但是最大缺點就是對于用戶來說,必須更換或升級他們的路由器或防火墻,并且隨著相關協議的發展和擴充,設備也必須跟著進行升級。
????
???? (2)為私網設備設置代理的方法
????
???? 這種方法不用對用戶設備做任何改動,僅在運營軟交換網絡的局端增加一種特殊的Proxy設備,就可以實現私網的穿越。筆者認為,這種技術與前面的技術相比,具有更大的優越性。這種Proxy,在進行信令的代理和轉換的同時,也進行媒體流的代理,我們暫且稱其為NAT/FW Proxy。
????
???? (3)其它的一些方案
????
???? 其它穿越私網的方案,還有MIDCOM 方案、STUN方案、TURN方案等,這些方案與NAT/ALG方案類似,不是需要升級路由器、防火墻,就是需要升級終端設備。
????
???? 2. 用NAT/FW Proxy解決私網PAT問題
????
???? 以圖1為例,將NAT/FW Proxy設備添加到軟交換網絡中,形成的如圖5所示的網絡結構。添加了NAT/FW Proxy設備以后,所有私網網關(路由器或防火墻)后面的終端設備,都要將注冊地址從軟交換設備地址更改為NAT/FW Proxy設備的IP地址。而NAT/FW Proxy設備與軟交換設備之間的交互可以采用SIP,MGCP或者H.248等協議,這與其代理的設備類型有關。
????
???? 一方面,在設備向NAT/FW Proxy發出注冊信息后,NAT/FW Proxy會為設備分配一個代理信令端口,然后用NAT/FW Proxy的地址替換原注冊信息中的終端地址(Contact域),并通過這個端口向軟交換發送。這樣,今后無論是終端發向軟交換的信令消息,還是軟交換發向終端的信令消息,都會經過NAT/FW Proxy,以便于其對這些信令進行特殊處理。另一方面,當私網中的終端設備向NAT/FW Proxy設備發出注冊消息時,安裝在私網外層的私網網關就會給這個連接隨機分配一個合法IP地址與端口號,形成一個“窗口”。NAT/FW PROXY設備收到注冊消息后,只要能夠設法保持這個“窗口”一直開放,然后把這個端口號與在設備上分配的代理端口號綁定,就相當于建立了一條設備到軟交換之間透明的信令通道,也就解決了NAPT中的PAT問題。
????
???? 保持這個“窗口”的方法,根據終端的不同也會有所區別。比如對于SIP終端,可以設置一個較小的注冊有效期,這樣終端設備就會不斷的向NAT/FW Proxy發出注冊消息。對于MGCP終端,可以讓NAT/FW Proxy向其不斷發送AUEP消息,然后由終端發相應消息來保持“窗口”的開放。無論哪種方式,都要保證終端發送消息的時間間隔要小于“窗口”的開放時限。
????
???? 3. 用NAT/FW Proxy解決私網NAT問題
????
???? 假設所有終端都是SIP終端,軟交換與終端間的通訊也采用標準的SIP協議。如圖5中的配置,由于終端A和終端B都是私網中的設備,因此在向NAT/FW Proxy注冊時在私網設備中被分配了訪問外部的端口號,假設分別為123.44.55.11:1050(終端A)和123.44.55.22:1060(終端B),同時在NAT/FW Proxy上都被分配了代理信令端口,假設分別為123.44.55.77:1001(終端A)和123.44.55.77:1002(終端B)。現在由A向B發起呼叫,INVITE消息通過私網網關后到達NAT/FW PROXY,NAT/FW PROXY會將這條信令進行代理轉換,并發給軟交換。如圖6、圖7所示:
????
????
????
????
????
????
????
???? 軟交換在收到INVITE消息并做相應處理后,準備將其轉發給B,由于B也是通過NAT/FW Proxy代理注冊到軟交換的,因此發送的消息如圖8所示,由NAT/FW PROXY接收并做代理轉換后,發送給B外層的路由器或防火墻,轉換結果如圖9所示。
????
????
????
????
????
???? 防火墻通過查詢自己維護的連接列表,就可以把這條信令消息正確的發送給終端B了。呼叫接續流程的其它信令消息,轉接方式與INVITE類似。
????
???? 4. 用NAT/FW Proxy實現媒體流的代理連接
????
???? 以圖5中終端A呼叫終端C為例,當A發出INVITE消息并到達NAT/FW Proxy后,NAT/FW Proxy會為A分配兩個RTP代理端口,一個是呼出代理端口,記為A1,另一個是呼入代理端口,記為A2。NAT/FW Proxy使用A2的端口信息替換原INVITE消息中SDP包中對RTP端口的描述,并發給軟交換。當軟交換發回終端C的SDP信息時,NAT/FW Proxy記錄終端C的實際RTP端口,并用A1的端口信息進行替換,發給終端A。當呼叫建立后,終端A一旦開始發送RTP包,就會在私網設備上建立一個臨時的RTP“窗口”,只要媒體流不斷在發送(在沒有話音時終端也應該發送舒適噪聲的RTP包),這個“窗口”就一直打開。由于設備A得到的對端RTP端口實際是NAT/FW Proxy上的呼出代理端口A1,因此RTP包會發向NAT/FW Proxy,NAT/FW Proxy將RTP包再發給終端C真正的RTP端口。同樣,終端C得到的A的RTP端口實際是NAT/FW Proxy上的代理端口A2,所以RTP包會發向A2,然后由NAT/FW Proxy通過私網設備上的臨時RTP“窗口”將RTP包轉發給終端A。
????
???? 當兩個設備分別在兩個防火墻內,且都注冊到一個NAT/FW Proxy上時,如圖5中終端A呼叫終端B的情況,由于NAT/FW Proxy可以知道兩個設備都是注冊在自己上面的,因此并不需要為每個終端都分配兩個代理端口,而只用分配一對端口。如A1和B1,其中A1既作為終端A的呼出端口,也做為終端B的呼入端口,而B1既做為終端B的呼出端口,也做為終端A的呼入端口。如果終端A和終端B還是處于同一個私網網關設備之下,NAT/FW Proxy完全可以不為它們分配任何代理端口,而是讓它們在私網內部直接建立RTP流的連接。
????
???? 5. 其它問題的考慮
????
???? 以上對于使用NAT/FW Proxy來實現私網穿越的方法的描述,都是基于使用SIP協議的終端,但實際上這種方法并不僅限于SIP終端,當終端使用H.248,MGCP等協議時,只要有對應的NAT/FW Proxy支持,也同樣可以實現私網穿越。
????
???? 從構架上看,需要進行私網穿越代理的設備非常多,一臺NAT/FW Proxy無法處理時,完全可以部署多個NAT/FW Proxy,并讓這些設備注冊到不同的NAT/FW Proxy上。如配置一臺NAT/FW Proxy處理SIP終端的私網穿越,配置兩臺NAT/FW Proxy來處理MGCP終端的私網穿越等。
????
???? 四、在軟交換體系中的擴展應用
????
???? 使用NAT/FW Proxy的構架,除了能夠實現私網穿越的功能外,只要稍加擴展,還可以為軟交換體系帶來其他一些意外收獲。
????
???? 1.可以保護軟交換設備免遭攻擊
????
???? 在正常的配置情況下,軟交換設備的地址對于所有用戶都是可見的,這時如果有人惡意的對軟交換發起某些攻擊,比如DoS攻擊,是比較難以防范的。但是如果要求所有終端都注冊到NAT/FW Proxy設備上,通過NAT/FW Proxy的代理與軟交換發生聯系,那么軟交換地址對外就完全是不可見的了,并且由于NAT/FW Proxy設備的成本相對低廉,可以配置多個,即使遭到攻擊,只要讓終端上更換一個NAT/FW Proxy進行注冊就可以了。
????
???? 2.防止通信欺詐行為
????
???? 一般情況下,一旦軟交換為雙方建立起呼叫,那么雙方終端的地址、端口、媒體能力等就完全向對方透明化了,這時如果有人使用一些支持點對點連接的終端,繞過軟交換而直接向對方發起連接,則軟交換就無法進行計費,也就會出現通信欺詐行為了。如果按照1中所述,把所有終端都注冊到NAT/FW Proxy上,那么終端只能通過NAT/FW Proxy上的代理端口進行交互,終端之間透明的只有對方的號碼,這樣可以在很大程度上避免欺詐行為的發生。
????
???? 3.可以使媒體流授控
????
???? 假設所有終端都注冊在NAT/FW Proxy上,則終端之間的媒體流也都要經過NAT/FW Proxy進行轉接,如果增強NAT/FW Proxy的功能,就完全有可能解決在軟交換體系中媒體流不授控的問題,如可以實現按流量計費,可以控制用戶帶寬防止未授權的媒體流連接(比如視頻媒體流),可以獲得媒體流的QoS信息,甚至可以滿足國家安全部門對敏感通話監聽的要求。
????
???? 但是,要實現如上的這些好處,也是要付出代價的,那就是整個軟交換網絡的媒體流都要匯聚到各個NAT/FW Proxy所在的位置,大大增加了這部分網絡的負擔,同時在一定程度上也減弱了軟交換由于控制與承載分離而帶來的許多靈活性。
????
???? 五、結束語
????
???? 本文介紹了一種通過設置特殊的代理服務器,來解決軟交換網絡中私網穿越問題的方法,現在這種方法已經開始被應用。相信隨著軟交換網絡的規模不斷擴大,這種私網穿越的方法會被越來越多的應用到軟交換網絡當中去。
評論