自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于SIP服務(wù)器問題的探討

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
這里我們就來對SIP服務(wù)器的一些相關(guān)問題進行一下探討。那么我們主要針對的是穿越問題的分析和處理。望對大家有所參考。

對于SIP協(xié)議來說,可能有些朋友比較熟悉。在這方面,最突出的就是VoIP業(yè)務(wù)了。在VoIP業(yè)務(wù)中,常會涉及到SIP協(xié)議和SIP服務(wù)器等相關(guān)內(nèi)容。下面我們就來具體看看SIP服務(wù)器當中的穿越問題吧。

1. SIP服務(wù)器問題描述

大多數(shù)傳統(tǒng)的voip協(xié)議(SIP、h323…)在設(shè)計之初都沒有充分考慮NAT穿越問題,它們只關(guān)注怎樣傳輸呼叫信號(連線、拆線…)和應(yīng)用RTP(實時傳輸協(xié)議)傳輸聲音信息。

呼叫信號通常應(yīng)用固定的或標準的端口,而RTP 卻應(yīng)用任意端口收發(fā)聲音信息。

大多數(shù)防火墻/NATs沒有能力將呼叫信號協(xié)議包和聲音信息包捆綁在一起,同時它們也不能識別聲音將向哪里發(fā)送。

這樣,在呼叫者發(fā)起呼叫時,雖然呼叫可以順利獲得通過,響起振鈴,被叫者也可以選擇拾起或者掛斷這個電話,但是,線路上會出現(xiàn)一方或雙方都沒有聲音的現(xiàn)象。

2. NATs 和防火墻

在下面幾種情況下,UDP 可能會受到NAT 或者防火墻影響:

2.1 全錐型NAT:

全錐型NAT是指所有來自同一個內(nèi)部IP地址和端口的請求都被指向同一個外部IP地址和端口,而且,任何外部主機都可以通過發(fā)送信息包到這個被指向的外部地址,向內(nèi)部主機發(fā)送信息包。

2.2 限制錐型NAT:

限制錐型NAT是指所有來自同一個內(nèi)部IP地址和端口的請求都被指向同一個外部IP地址和端口,與全錐型NAT不同的是,只有在一個內(nèi)部主機先向IP地址XXXX發(fā)送信息包后,IP地址是XXXX的外部主機才可以向這個內(nèi)部主機發(fā)送信息。

2.3 端口限制錐型NAT:

端口限制錐型NAT與限制錐型NAT相像,只是限制范圍包括端口號碼。

具體說,只有在一個內(nèi)部主機先向IP地址XXXX和端口PPPP發(fā)送信息包后,外部主機才可以通過IP地址是XXXX和端口PPPP發(fā)送信息包。

2.4 對稱型NAT:

對稱型NAT是指所有來自同一個內(nèi)部IP地址和端口的請求,發(fā)送到特定目標IP地址和端口時,被指向同一個外部IP地址和端口。如果相同的主機通過相同的IP地址和端口向不同的目標發(fā)送信息包,指向也有所不同,而且,只有接收到信息包的外部主機才可以回復(fù)UDP信息包給內(nèi)部主機。

您屬于以上哪種呢?您可以通過應(yīng)用一個stun客戶端軟件來查看:

例如:http://sourceforge.net/projects/stun/#p#

3. SIP服務(wù)器問題詳解

3.1 MVB2000作為一個NAT外部的SIP服務(wù)器,客戶端在NAT內(nèi)部。

(1) 呼叫來自NAT后面,MVB2000發(fā)送聲音到一個私網(wǎng)IP

SIP服務(wù)器呼叫流程1

如果這個VOIP電話沒有應(yīng)用STUN或其它方式檢測它的公網(wǎng)IP(=NAT防火墻上的公網(wǎng)IP),而是直接嵌入私網(wǎng)IP地址到邀請消息,那么MVB2000將不斷向這個私網(wǎng)IP發(fā)送RTP信息包,而這些信息包會被路由器截獲并刪除,導(dǎo)致單方向說話。

(呼叫者聽不到聲音)

這通常是在用戶不去關(guān)心NAT設(shè)備怎樣應(yīng)用,將nat=never、nat=no或者nat=rfc3581寫入sip.conf時所發(fā)生的情況。

(2) 呼叫來自NAT后面,MVB2000發(fā)送聲音到錯誤端口

SIP服務(wù)器呼叫流程2

如果電話可以檢測到它的公網(wǎng)IP, 并且正確地置入SIP服務(wù)器的邀請字頭,MVB2000就會知道向哪個IP地址發(fā)送RTP了。

但是,假設(shè)應(yīng)用的是一個錐型防火墻,NAT設(shè)備發(fā)送RTP到MVB2000的端口不一定與最初的RTP端口相同,這樣,MVB2000將發(fā)送信息包到最初的端口,NAT設(shè)備不會知道信息包去哪里而將其截獲刪除。

用戶可以將nat=route或者nat=yes 寫入sip.conf解決這個問題。

如果NAT后面僅僅有一部電話,您也可以查看一下這部電話使用RTP端口的范圍,然后在防火墻上應(yīng)用端口轉(zhuǎn)移,將公網(wǎng)IP指向內(nèi)網(wǎng)。

如果NAT后面有多部電話,您可以為每一部電話設(shè)定一個非重疊的RTP端口范圍,這樣,應(yīng)用端口轉(zhuǎn)移指向每一部與RTP端口范圍相符的電話。

和應(yīng)用一個STUN服務(wù)器(如果電話有STUN支持)一樣,應(yīng)用對稱型NAT也將解決這個問題。

(3) 呼叫來自NAT外部的MVB2000服務(wù)器,應(yīng)用全錐型NAT設(shè)備

沒有SIP服務(wù)器的電話注冊到MVB2000或sip.conf 里面的NAT設(shè)備IP,這樣,MVB2000不會知道到哪里去查找這部電話,呼叫將被拒絕通過。

(對于所有的NAT設(shè)備都是一樣的)

SIP服務(wù)器呼叫流程3

如果sip.conf 里面host=123.123.123.123 或者電話注冊到MVB2000了,MVB2000將能夠發(fā)送呼叫信號和RTP聲音包到NAT設(shè)備,然后轉(zhuǎn)移到這部電話。

SIP服務(wù)器呼叫流程4

如果電話有STUN支持,它可以打開NAT設(shè)備上的封裝信息,應(yīng)用IP和SDP域中SIP服務(wù)器的消息里面的端口(1個對應(yīng)呼叫信號的端口、1個對應(yīng)RTP的端口和1個對應(yīng)RTCP的端口)

STUN也同時維護這個封裝信息使之處于存活狀態(tài)(檢測NAT超時和發(fā)送保持存活的封裝信息)。

如果電話沒有STUN支持,您需要注冊這部電話到服務(wù)器上,讓MVB2000發(fā)送保持存活的信息(the qualify= line),確認MVB2000發(fā)送的信息比您的NAT設(shè)備超時更快。

沒有STUN支持,您也需要設(shè)置NAT=yes或者NAT=route,在MVB2000服務(wù)器接收那部NAT電話聲音之前,您將不能聽到呼入的聲音。

(4) 呼叫來自NAT外部的MVB2000服務(wù)器,應(yīng)用限制錐型NAT設(shè)備

與上面所講相同,只有被叫電話首先發(fā)出信息到NAT設(shè)備,NAT設(shè)備才可以將MVB2000來電呼叫的聲音包發(fā)送到那個電話上。

SIP服務(wù)器呼叫流程5

您可以通過讓電話發(fā)送一個注冊信息,或者空SIP服務(wù)器的消息(如果您的電話支持STUN)到MVB2000服務(wù)器,打開封裝信息來實現(xiàn)。

如果應(yīng)用STUN,那么這部電話將會知道它被指向的端口和SDP信息(STUN將不必為了做封裝信息而發(fā)送RTP到您的MVB2000服務(wù)器上,只在STUN服務(wù)器上操作即可)。

如果沒有STUN支持,您將需要設(shè)置NAT=yes或者NAT=route,并且在MVB2000服務(wù)器沒有收到來自電話的聲音包之前,您將聽不到聲音。

注意:如果沒有STUN支持,那么注冊地址和代理服務(wù)器地址必須是同一個IP地址,(如果您僅僅應(yīng)用MVB2000服務(wù)器沒有其余的組件如SER 就不存在這個問題)。

(5) 呼叫來自NAT外部的MVB2000服務(wù)器,應(yīng)用端口限制錐型NAT設(shè)備

SIP服務(wù)器呼叫流程6

即使我們注冊這部電話到MVB2000服務(wù)器,MVB2000服務(wù)器也不能發(fā)送任何聲音包到這部電話上,除非這部電話首先發(fā)送聲音包到MVB2000上,而且必須采用NAT設(shè)備上的5060端口。

如果您的電話支持STUN,這部電話將發(fā)送一個空SIP服務(wù)器的消息到您的MVB2000服務(wù)器上,以便打開封裝信息,像任何發(fā)送到MVB2000服務(wù)器上的RTP信息包可以打開RTP封裝信息一樣。

如果應(yīng)用STUN,那么這部電話將會知道它被指向的端口和SDP信息(STUN將不必為了做封裝信息而發(fā)送RTP到您的MVB2000服務(wù)器上,只在STUN服務(wù)器上操作即可)。

如果沒有STUN支持,您將需要設(shè)置NAT=yes或者NAT=route,并且在MVB2000服務(wù)器沒有收到來自電話的聲音包之前,您將聽不到聲音。

3.2 MVB2000作為SIP服務(wù)器在NAT外部,與NAT外部的SIP代理服務(wù)器或客戶端相聯(lián)。

不用地址轉(zhuǎn)換,不存在問題

3.3 MVB2000作為SIP客戶端在NAT外部,與NAT外部的SIP代理服務(wù)器或電話相聯(lián)。

不用地址轉(zhuǎn)換,不存在問題

3.4 MVB2000作為SIP客戶端在NAT外部,與NAT內(nèi)部的SIP代理服務(wù)器相聯(lián)。

您需要將端口轉(zhuǎn)移到NAT上的信號端口,同時轉(zhuǎn)移RTP端口(如果代理服務(wù)器也負責RTP端口)

這個問題與第一個問題相識。

3.5 MVB2000作為SIP服務(wù)器在NAT內(nèi)部,與NAT內(nèi)部的SIP代理服務(wù)器或客戶端相聯(lián)。

不用地址轉(zhuǎn)換,不存在問題

3.6 MVB2000作為SIP服務(wù)器在NAT內(nèi)部,與NAT外部的客戶端相聯(lián)。

您需要將MVB2000應(yīng)用到的所有RTP端口(在RTP.conf中定義)轉(zhuǎn)移到NAT上,同樣,也要做SIP信號端口(sip.conf中有端口選項)轉(zhuǎn)移

您也可以在sip.conf 上配置externip和localnet 選項。

3.7 MVB2000作為SIP客戶端在NAT內(nèi)部,與NAT外部的SIP代理服務(wù)器/電話/網(wǎng)關(guān)相聯(lián)。

能不能工作依賴于對方的電話/網(wǎng)關(guān)(您必須使用externip和localnet 選項)

3.8 MVB2000作為SIP客戶端在NAT內(nèi)部,與NAT內(nèi)部的SIP代理服務(wù)器/電話/網(wǎng)關(guān)相聯(lián)。

不用地址轉(zhuǎn)換,不存在問題

3.9 MVB2000在NAT內(nèi)部,電話/網(wǎng)關(guān)在另一個NAT內(nèi)部

針對這種情況,我們需要一個中間人來相互辨認對方,它應(yīng)該是一個局外的SIP代理服務(wù)器,由它來負責SIP服務(wù)器的傳輸,而且所有的終端都能與它建立聯(lián)接。如果希望點對點傳輸多媒體信息流,那么,我們需要另外一個多媒體服務(wù)器。

可以采用的解決多媒體服務(wù)器辦法有:

◆Portaone's RTPProxy(適合對稱型NAT,需要SER組件支持)

◆AG Projects MediaProxy(適合對稱型NAT,需要SER組件支持)

◆在NAT外設(shè)置兩個MVB2000(通過配置適合所有NAT類型,非對稱型NATs需要設(shè)置NAT=route)

當MVB2000處于NAT內(nèi)部時,如果您想應(yīng)用對稱型NAT,您需要了解sip.conf里面的 externip和localnet。

責任編輯:佟健 來源: IT實驗室
相關(guān)推薦

2018-11-27 09:12:32

KamailioSBCSIP服務(wù)器

2010-09-17 10:07:17

SIP協(xié)議SIP代理服務(wù)器

2009-11-25 10:45:22

無線路由器

2009-11-11 11:27:13

虛擬路由器

2009-02-27 17:16:00

刀片服務(wù)器服務(wù)器

2018-05-11 10:31:41

2009-02-12 15:08:00

2010-08-25 17:55:03

DHCP服務(wù)器

2021-08-26 15:27:29

數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫服務(wù)器

2010-08-25 21:25:41

DHCP服務(wù)器

2010-07-19 18:03:07

Telnet服務(wù)器

2010-05-20 13:48:17

IIS服務(wù)器

2018-05-08 09:30:48

服務(wù)器虛擬化

2015-07-23 13:10:38

服務(wù)器虛擬化

2017-12-06 08:37:11

服務(wù)器硬件策略

2009-11-24 16:47:29

路由器基礎(chǔ)配置

2018-12-07 08:38:49

代理服務(wù)器Web服務(wù)器通信

2020-03-06 15:11:21

進程線程Web

2010-08-23 17:47:33

DHCP服務(wù)器

2010-08-30 16:25:17

配置DHCP服務(wù)器
點贊
收藏

51CTO技術(shù)棧公眾號