• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 新聞 > 國內 >
     首頁(yè) > 新聞 > 國內 >

    SIP系列講座-NAT解決方法探討Symmetric RTP-UPnP-ALG

    2017-11-20 14:39:11   作者:james.zhu   來(lái)源:Asterisk微信公眾號   評論:0  點(diǎn)擊:


      在前面的講座中我們討論了NAT的類(lèi)型和解決NAT問(wèn)題所使用的幾種解決方式,STUN, ICE等部署方式和其局限性。今天,我們會(huì )介紹更多市場(chǎng)中主流的一些解決方案介紹UPnP,ALG,Symmetric RTP和Media Proxy。在下一期的講座中我們會(huì )全面討論SBC的技術(shù)解決方案。
      在NAT解決方案中,我們不僅僅需要解決SIP信令的問(wèn)題,還要解決RTP的問(wèn)題。為了讓大家能夠繼續跟進(jìn)我們的講座,筆者多花一點(diǎn)時(shí)間回顧一下關(guān)于NAT對SIP和RTP的造成的影響(以前的講座中有比較深入的探討)。現在我們舉兩個(gè)簡(jiǎn)單的例子說(shuō)明NAT防火墻對SIP相關(guān)業(yè)務(wù)的影響。在以下的RTP 示例中,SIP信令都沒(méi)有問(wèn)題,內網(wǎng)用戶(hù)呼叫到外網(wǎng)也沒(méi)有問(wèn)題,但是對端外網(wǎng)用戶(hù)可能不能聽(tīng)到內網(wǎng)用戶(hù)的語(yǔ)音,出去的RTP語(yǔ)音可以成功到達目的地終端,但是外網(wǎng)終端則不能進(jìn)入到內網(wǎng)中。雖然SIP的SDP中已經(jīng)添加了對RTP語(yǔ)音的描述,但是如果防火墻會(huì )過(guò)濾這些端口,或者根本沒(méi)有開(kāi)啟這些端口的話(huà),那么從語(yǔ)音流則會(huì )被過(guò)濾掉。這就是我們通常所說(shuō)的單通現象。
      在下面的這個(gè)RTP示例中,如果是從防火墻外部用戶(hù)發(fā)起呼叫的話(huà),防火墻會(huì )直接過(guò)濾了SIP請求,SIP消息會(huì )被拒絕。
      從以上簡(jiǎn)單的示例中,讀者可以看到,很多時(shí)候我們面對的現實(shí)情況是:
      RTP端口是動(dòng)態(tài)變化的,這是一個(gè)難題。
      防火墻不知道RTP端口變化。
      讓防火墻開(kāi)啟更多端口在很多場(chǎng)景中是非常不現實(shí)的。
      針對以上的問(wèn)題,為了解決這些問(wèn)題,我們依次介紹幾個(gè)常見(jiàn)的解決方案。
      1、在網(wǎng)絡(luò )中使用UPnP的設置方式。UPnP是一種非常簡(jiǎn)單的協(xié)議,它可以運行在SIP終端設備中,終端設備開(kāi)啟這個(gè)功能以后,它可以直接查詢(xún)公網(wǎng)地址和端口,然后讓SIP INVITE重新寫(xiě)入新的地址,在SDP中使用公網(wǎng)地址。UPnP的好處是目前大部分的廠(chǎng)家都支持此協(xié)議,終端用戶(hù)或者一般家庭用戶(hù)可以通過(guò)簡(jiǎn)單設置就可以實(shí)現簡(jiǎn)單的NAT穿透。
      2、ALG全稱(chēng)是Application Layer Gateway。RFC2633對ALG有粗略的定義。ALG可以對SIP相關(guān)數據進(jìn)行轉譯(包括呼入請求,響應;呼出請求響應),隱藏內網(wǎng)必要消息,它收集SIP消息中的信息,主要對SIP 頭的Via,Contact,Route和Record-Route進(jìn)行處理。它和Media Proxy不同。它具有以下幾個(gè)方面的特點(diǎn):
      ALG可以在DMZ中進(jìn)行設置,由防火墻實(shí)現對其控制。
      和Media Proxy類(lèi)似,所有SIP消息和RTP消息可以通過(guò)ALG轉發(fā)到目的地地址。
      如果需要,ALG可以配合NAT修改SIP消息的一些值域。
      ALG可以以軟件的形式嵌入到防火墻。
      以下示例演示了一個(gè)簡(jiǎn)單的注冊流程,通過(guò)ALG以后,ALG然后修改地址,繼續對注冊服務(wù)器進(jìn)行注冊。注冊服務(wù)器返回地址以后,ALG再次修改為內網(wǎng)地址。
      因為SIP的技術(shù)越來(lái)越普及,有一些防火墻增加了對SIP的部分支持功能。讓我們首先看一個(gè)如果是外網(wǎng)的用戶(hù)呼叫內網(wǎng)用戶(hù)時(shí)的流程,外網(wǎng)用戶(hù)呼叫內網(wǎng)時(shí),在內網(wǎng)SIP終端返回給外網(wǎng)用戶(hù)時(shí),防火墻設置了一個(gè)策略,這里,內網(wǎng)接收到端口是1344,防火墻則重新映射了一個(gè)端口1624,并且修改了SDP信息,然后在SDP中攜帶了新的RTP接收端口1624,發(fā)送給外網(wǎng)用戶(hù),通知外網(wǎng)用戶(hù),內網(wǎng)終端的RTP接收端口是1624。
      外網(wǎng)終端通過(guò)這個(gè)指定的端口發(fā)送RTP語(yǔ)音流。防火墻知道通過(guò)這個(gè)端口的映射,然后根據映射規則,映射到內網(wǎng)的1344端口。到這里,RTP語(yǔ)音流正式開(kāi)通。雙方通話(huà)結束后,防火墻自動(dòng)刪除這個(gè)端口映射策略。
      如果是內網(wǎng)用戶(hù)呼叫外網(wǎng)用戶(hù),防火墻的映射機制基本上是相同的。這里,不同的是,內網(wǎng)用戶(hù)對外網(wǎng)用戶(hù)發(fā)起呼叫時(shí),內網(wǎng)終端通知防火墻此終端準備接收RTP的具體端口,防火墻然后根據這個(gè)端口映射一個(gè)新端口,并且修改SDP的RTP端口,最后發(fā)送給外網(wǎng)的終端。外網(wǎng)終端則根據這個(gè)端口發(fā)送RTP語(yǔ)音,防火墻接收到這個(gè)端口的RTP流返回到原來(lái)的終端端口。如果通話(huà)結束,最后,防火墻刪除映射端口匹配設置。以下是一個(gè)完整的呼出的呼叫流程:
      通過(guò)以上示例我們可以看到,事實(shí)上,ALG僅對Via, Conatct 這些值域進(jìn)行了修改,實(shí)現一個(gè)轉譯,支持了SDP payload。但是ALG目前不支持對多IP地址廣播,加密的SDP,SIP TLS和IP V6等其他功能。所以,嚴格意義來(lái)說(shuō),ALG仍然很難滿(mǎn)足SIP多種業(yè)務(wù)的需求。
      3、Symmetric RTP可以幫助解決RTP端口通信不一致的問(wèn)題。我們首先了解一下它的處理流程。Symmetric RTP 的實(shí)現過(guò)程需要經(jīng)過(guò)以下幾個(gè)步驟:
      首先,用戶(hù)需要通過(guò)STUN 服務(wù)器, 注冊服務(wù)器進(jìn)行SIP注冊流程,然后需要每30秒鐘重新注冊,這樣做的目的是保持端口處于存活狀態(tài),避免端口不會(huì )被防火墻關(guān)閉。注意,這里的SDP端口是1776。
      然后,UA 2 收到了防火墻返回的端口消息后,如果UA 2 支持Symmetric NAT,則會(huì )獲悉通知UA2 從這個(gè)端口(13455)返回語(yǔ)音流,而不是從SDP消息中的端口(1776)。這樣就避免了防火墻過(guò)濾RTP端口的問(wèn)題。這里的SDP中的端口是不會(huì )被認為是真正的RTP端口。
      4、Media Proxy的目的是通過(guò)一個(gè)Proxy的二次轉發(fā)機制,重新讓雙方終端通過(guò)Media Proxy進(jìn)行通信。UA 2就可以對UA1 發(fā)起呼叫請求。這時(shí)的狀態(tài)和我們以前介紹的Far End NAT情況類(lèi)似,這里,需要Media Proxy處理一些proxy所承擔 的工作:
      Media Proxy需要重寫(xiě)SDP中的RTP/AVP值域,重新把RTP語(yǔ)音流指向媒體服務(wù)器需要的端口地址。
      當對發(fā)起呼叫方SIP終端發(fā)送消息時(shí),Media Proxy同時(shí)需要發(fā)送重寫(xiě)的RTP/AVP值域,保證RTP端口能夠發(fā)送到正確的RTP端口。
      在防火墻的端口策略設置中,所使用的端口需要一直僅對Media proxy開(kāi)放。 這樣就可以限定部分端口開(kāi)放給Media Proxy,無(wú)需完全開(kāi)放所有RTP端口。
      5、參考資料:
      https://docs.citrix.com/en-us/netscaler/11/solutions/netscaler-support-for-telecom-service-providers/lsn-introduction/lsn-configuring-alg/sip-protocol-alg.html
      總結,在本章節中我們討論了幾個(gè)主要的NAT解決方案,ALG,UPnP,Symmetric RTP和Media Proxy。通過(guò)我們的討論,我們可以發(fā)現,事實(shí)上,這些解決方案都有非常強的針對性,同時(shí)也具有非常多的局限性。用戶(hù)需要做更多的調研,找到適合自己需求的解決方案。在本章節的討論中,我們僅討論了SIP和RTP的互聯(lián)互通,基本上都是實(shí)現了SIP對NAT的簡(jiǎn)單功能實(shí)現,這些技術(shù)解決方案事實(shí)上并沒(méi)有真正解決SIP在公網(wǎng)的業(yè)務(wù)兼容性問(wèn)題,安全管理問(wèn)題,公司網(wǎng)絡(luò )和運營(yíng)商網(wǎng)絡(luò )之間的問(wèn)題。對于這些功能的要求就需要在網(wǎng)絡(luò )環(huán)境中部署SBC。因為SBC的討論話(huà)題非常廣,我們在下一節的講座中專(zhuān)門(mén)討論SBC的部署。
      關(guān)注我們的公眾微信號:asterisk-cn 獲得有價(jià)值的行業(yè)技術(shù)分享,訪(fǎng)問(wèn)論壇:www.issabel.cn/forum 下載開(kāi)源免費融合通信平臺。
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    相關(guān)熱詞搜索: SIP

    上一篇:451 Resaerch:明年是OpenStack私有云豐收年

    下一篇:最后一頁(yè)

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 安多县| 班玛县| 运城市| 同江市| 新建县| 镇宁| 图们市| 罗甸县| 贺兰县| 德化县| 莱阳市| 铜鼓县| 莱西市| 庆安县| 东光县| 连南| 高阳县| 云龙县| 武宣县| 安阳县| 敖汉旗| 汝南县| 乌什县| 东平县| 大荔县| 东宁县| 屏南县| 仁怀市| 肃宁县| 呼和浩特市| 岳普湖县| 安丘市| 新田县| 彭州市| 河津市| 邮箱| 阿拉善左旗| 松溪县| 洪湖市| 阿城市| 隆林| http://444 http://444 http://444 http://444 http://444 http://444