您當(dāng)前的位置是:  首頁 > 資訊 > 國內(nèi) >
 首頁 > 資訊 > 國內(nèi) >

鼎信通達(dá):VoIP應(yīng)用中NAT知識知多少?

2019-12-18 10:57:47   作者:   來源:CTI論壇   評論:0  點(diǎn)擊:


  VoIP(IP語音)技術(shù)包含SIP,H.323等一系列的協(xié)議,基于IP網(wǎng)絡(luò)通信,功能豐富,業(yè)務(wù)靈活,完全支持語音業(yè)務(wù),而且能夠提供視頻以及傳真等多種服務(wù),應(yīng)用也越來來越廣泛,然而當(dāng)前應(yīng)用組網(wǎng)大部分都部署在NAT防火墻內(nèi)部,對VoIP業(yè)務(wù)的應(yīng)用有一定影響,使用中也會遇到各種問題,下面和大家分享一些常用的NAT穿越技術(shù)
  一。NAT環(huán)境常見問題
  NAT環(huán)境常見問題
  • SIP賬戶注冊不上,注冊報(bào)文收不到響應(yīng)消息;
  • 呼叫通話中出現(xiàn)語音單通,內(nèi)網(wǎng)設(shè)備收不到公網(wǎng)媒體流;
  • 收不到ACK信令,呼叫接通持續(xù)30秒自動掛斷;
  • 收不到BYE消息,通話掛不斷;
  二。原因分析
  SIP呼叫建立和媒體通信的建立是根據(jù)SIP消息右側(cè)和SDP消息體里攜帶的IP地址和端口來協(xié)商的,如果SIP服務(wù)器在公網(wǎng),設(shè)備部署在NAT網(wǎng)絡(luò)下,NAT設(shè)備替換發(fā)出的SIP消息里攜帶的是內(nèi)網(wǎng)IP地址和端口,從而導(dǎo)致外網(wǎng)服務(wù)器發(fā)生故障,收發(fā)和媒體報(bào)文送不到NAT設(shè)備,造成信令,媒體丟失。針對這種組網(wǎng)應(yīng)用,通常采用以下三種NAT穿透技術(shù)解決:
 。1)動態(tài)NAT;(2)靜態(tài)NAT;(3)STUN穿透
  設(shè)備啟用NAT穿透功能后,可以實(shí)現(xiàn)“網(wǎng)絡(luò)打洞”,并檢測到路由器外網(wǎng)的IP地址,從而發(fā)出的SIP消息頭部以及SDP消息體攜帶的IP地址和端口都會替換為獲取到的公網(wǎng)IP和端口。
  三。NAT突破原理
  1.動態(tài)NAT穿透原理
  (1)以鼎信通達(dá)DAG語音網(wǎng)關(guān)為例,設(shè)備上開啟動態(tài)NAT功能后,通過頭里會攜帶的端口發(fā)出獲取請求消息,如下
  發(fā)送REGISTER消息,在請求信息的Via頭域中包含了沒有值的rport參數(shù),如下所示:
  注冊Sip:124.40。120.188:5060 SIP / 2.0
  通過:SIP / 2.0 / UDP 124.42。4.203:15500;分支= z9hG4bK-d8754z -1049ed261d2e643d-1 --- d8754z-;運(yùn)動
  最高-前鋒:70
  聯(lián)系人:; expires =
  至:“ 19988888888”
  來自:“ 19988888888” ;標(biāo)簽= 203ba359
  呼叫-ID:Yzc4N2IwMzY5OWU4MTdkMzY0NWY4OWU3NjMzNmJiM2U。
  CSeq:1個寄存器
  允許:邀請,確認(rèn),取消,選項(xiàng),再見,引用,通知,消息,訂閱,信息
  用戶-代理:eyeBeam發(fā)行1105a郵票56793
  內(nèi)容長度:
 。2)公網(wǎng)服務(wù)器收到請求消息后,將進(jìn)行分析檢測源SIP消息的NAT地址和端口,并會在響應(yīng)SIP報(bào)文里使用,并通過端口傳送給客戶端,如示例中的獲取到的NAT的公網(wǎng)地址(124.42.4.203)和端口(15500):
  SIP / 2.0 200確定
  通過:SIP / 2.0 / UDP 124.42。4.203:15500;分支= z9hG4bK-d8754z -1049ed261d2e643d-1 --- d8754z-; port = 15500;接收= 124.42。4.203
  來自:“ 19988888888” ;標(biāo)簽= 203ba359
  至:“ 19988888888” ;標(biāo)簽= 0005-058-7d6dc90516ae2e21
  通話-ID:Yzc4N2IwMzY5OWU4MTdkMzY0NWY4OWU3NjMzNmJiM2U。
  CSeq:4個寄存器
  允許:邀請,確認(rèn),選項(xiàng),再見,取消,注冊,信息,更新,包,引用,訂閱,通知,消息
  聯(lián)系人:
  內(nèi)容-長度:
 。3)設(shè)備在收到響應(yīng)200OK信息后,從移動和接收到的分段里獲取NAT公網(wǎng)地址和端口,設(shè)備之后發(fā)SIP消息時會更改為路由器公網(wǎng)的IP和端口。如以下,聯(lián)系攜帶變換成124.42.4.203:15500,例如新發(fā)的REGISTER信息轉(zhuǎn)化為:
  注冊Sip:124.40。120.188:5060 SIP / 2.0
  通過:SIP / 2.0 / UDP 124.42。4.203:15500;分支= z9hG4bK-d8754z -1049ed261d2e643d-1 --- d8754z-;運(yùn)動
  最高-前鋒:70
  聯(lián)系人:;到期時間=
  至:“ 19988888888”
  來自:“ 19988888888” ;標(biāo)簽= 203ba359
  通話-ID:Yzc4N2IwMzY5OWU4MTdkMzY0NWY4OWU3NjMzNmJiM2U。
  CSeq:2個寄存器
  允許:邀請,確認(rèn),取消,選項(xiàng),再見,引用,通知,消息,訂閱,信息
  用戶-代理:eyeBeam發(fā)行1105a郵票56793
  內(nèi)容-長度:
  這樣IPPBX(或SIP代理)就會把SIP報(bào)文發(fā)往NAT公網(wǎng)地址和端口,實(shí)現(xiàn)NAT穿透。
  2. STUN穿透原理
  UDP在NAT上的簡單遍歷,即NAT的UDP的簡單穿越,是服務(wù)器-服務(wù)器的一種網(wǎng)絡(luò)協(xié)議,由RFC 3489定義。該協(xié)議定義了一些消息格式,大體上分為請求/響應(yīng)。幫助位于NAT后的客戶端獲取自己的公網(wǎng)地址以及NAT為該客戶端的本地端口所綁定的對外端口。
  利用STUN技術(shù)實(shí)現(xiàn)NAT擴(kuò)展,首先需要構(gòu)建一個STUN服務(wù)器(也可以找免費(fèi)的STUN服務(wù)器),然后在設(shè)備上配置STUNserver地址即可。

  STUN實(shí)現(xiàn)突破流程:
 。1)開啟STUN后,設(shè)備作為客戶端,會自動使用SIP端口和不同的RTP端口往STUN服務(wù)器發(fā)STUN探測消息;
 。2)服務(wù)器收到后會在響應(yīng)消息里攜帶設(shè)備所在網(wǎng)絡(luò)的NAT地址和端口;
 。3)路由器會記錄保持對應(yīng)的NAT地址表
 。4)設(shè)備收到STUN服務(wù)器響應(yīng)消息后自動記錄NAT公網(wǎng)IP和端口;
 。5)設(shè)備發(fā)起的SIP報(bào)文里contactheader和SDP分段會自動攜帶公網(wǎng)地址;
 。6)設(shè)備會定時刷新STUN報(bào)文,用于NAT洞保持打開狀態(tài)。
  開啟STUN報(bào)文注冊消息如下:
 
  3.靜態(tài)NAT
  靜態(tài)NAT在實(shí)際應(yīng)用中使用比較少,因?yàn)槭褂渺o態(tài)NAT實(shí)現(xiàn)穿透時,路由器的公網(wǎng)IP必須是一個固定不變的地址,如果是PPPOE撥號上網(wǎng)的網(wǎng)絡(luò),則不適合啟用這種方式。
  啟用靜態(tài)NAT,必須手動配置好公網(wǎng)IP,并且需要在路由器里添加端口映射,將設(shè)備的SIP端口和RTP端口映射到公網(wǎng)。設(shè)備發(fā)出去的SIP消息聯(lián)系頭部和SDP信息里攜帶配置的靜態(tài)公網(wǎng)IP地址,從而實(shí)現(xiàn)NAT穿透。
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點(diǎn)判斷保持中立,不對所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

專題

CTI論壇會員企業(yè)