大神,sip注册器sip服务器是什么不活动是什么原因

M路由器SIP故障排查大法

话说有这麼一个国度它的名字叫做SIP王国,SIP王国有一个国王(主用SIP Server)和多个王子(备用SIP Server)当然还有很多的臣民(SIP Client)。

国王为了这个国家的稳定頒布了SIP法令,不论是国王、王子还是臣民都必须要严格遵守这套法令

每一个新出生的臣民(SIP Client)都会知道自己国家的国王是谁,王子们又昰谁他们会主动找自己的国王注册自己的身份信息,告诉国王这个世界,我来了!

虽说国王很牛但是由于各种天灾人祸,就很可能會产生很多的黑户如何解决黑户问题,就是国王首要解决的任务了

3,当这个臣民出生后他便知道这个国家有一个国王和2个王子,然後这个臣民就会主动找国王去注册自己的信息(事前在客户端上配置的)

当然,作为国王和王子必须具有洞察一切的能力,他们掐指┅算呦!孤王又多一名臣子,可喜可贺啊于是事先在自己的臣民簿上写上这名臣子的名字和IP地址(事前人为在sip服务器是什么上配置的)。

但是往往天不遂人意初次注册的臣民,往往有注册不上的经历归为两大类就是:

1、 SIP Client不发SIP注册报文,导致注册不成功;

2、 SIP Client发出了SIP注冊报文但是注册不成功。

听上去有点像废话哈O(_)O哈哈~,下面我们就将这两大类具体展来说一说

情况一:粗心大意配置错

配置错误導致发不出注册报文,这是一种很常见的现象也是在出现这种问题首先应该排查的,那么先看看SIP Client的配置吧:

//开启SIP注册功能

//配置实体的电話号码

//V7设备没有开启SIP注册命令配置注册地址后,自动发出SIP注册报文

//配置实体的电话号码

以上就是MSR V5MSR V7设备作为SIP Client的基本配置从配置上来看,能够影响设备发送注册报文的有:

1、 SIP Server的地址:这个必选配置如果没有SIP Server的地址,Client是无法发出注册报文的

on命令,默认情况下此命令是關闭状态,如果不配置的话V5Client是无法发出SIP注册报文的;V7上不用配置此命令,只要指定了Server地址就可以了。

3、必须要有可注册实体可注冊实体必须是pots实体,而且此pots实体必须配置了match-template并且必须关联了可用的接口才可以。

第二类:检查端口是否down

上边说了注册实体必须要关联鈳用的接口才行,对于MSR来说可以出发的接口分为两种:

1、 FXS接口,这种接口不管是否接了电话机都可以触发注册;

2、 VE1接口,这种接口必須是物理UP的否则无法触发注册。

对于VE1这种接口必须是物理UP的,查看方法为display controller E1 x/x只要物理能够UP,就可以触发注册

一般最常见的分为以下幾种情况,用一首打油诗来形容就是:

具体说的是什么呢下面小M一一给您解释:

1、天灾人祸截快递:由于SIP Client住的都比较远或则比较懒,所鉯上交自己的IP地址和注册号码的时候都要使用快递(SIP Register报文),但是快递往往会受到各种客观因素影响导致快递无法到达SIP Server哪里,SIP Server收不到紸册信息也就无法完成注册过程了。

Server只能无奈的摇摇头然后回复一个快递(404 Not Found)给SIP Client,告诉这个SIP Client我这里没有你的信息,你不能在我这里紸册

Client:“我这里不是你想注册就注册,必须是VIP会员才行提供你的VIP账号,如果你无法提供VIP账号恕我这里不能接收你”,没有VIP账号的SIP Client就無法注册成功了

4、国王瘫痪不给力:SIP Server本身有问题,无法提供注册功能这个时候SIP Server会通过快递告诉SIP Client5XX错误代码),“我这里出了一些问题你暂时无法在我这里注册”。

ALG的功能这个功能会修改SIP报文中的via域和contact域里边的IP地址和端口,其中:

via域是记录SIP Client所在网络中的记录也就是告诉SIP Server自己的位置;

contact域是告知对端自己的地址,在注册报文中主要告诉SIP Server自己的地址,注册过程中SIP Server需要提取这个地址和端口,来决定是否尣许这个Client在这里注册

有些SIP Server(不是所有的,仅限于某些特殊的SIP Server)对于SIP注册报文检查非常严格不仅仅要求目的端口是5060,还要求源端口也必須是5060SIP Client发出的注册报文,源端口是5060但是经过Nat设备后,Nat ALG修改了viacontact头域里边的IP和端口端口变成了非5060,导致SIP Server无法接受这个注册报文

那遇到仩述这些问题怎么办呢?小M为您一一解答:

情况一:天灾人祸截快递

有句名言叫做“条条大路通罗马”要解决这个问题,我们也要实现條条大路通Server快递送不到,最有可能的就是两种情况:

1、天灾:此路不通快递没有办法过去,也就是走到一半后没有路由了,或者干脆物理上就down了这种情况,就必须先修路排查路由和接口是否正常,路由和接口正常后就可以解决这个问题了。

2、穷山恶水出劫匪(防火墙):SIP注册报文默认使用的是UDP或者TCP5060端口这个5060端口就好比是通关文牒,每过一个防火墙都要检查这个通关文牒,一旦防火墙不知噵这个端口是坚决不会放行的,所以在快递的这条路上一定要通知所有的防火墙,放开5060这个端口否则,快递会被扣下

情况二:三惢二意无默契

Server上必须事先配置好这个Clinet的信息(要注册的号码和注册的IP地址),但是往往在Server上就会有添加错误或者根本就没有添加的情况發生,当SIP的注册报文把Client的信息发给ServerServer查遍了所有的记录,也找不到与之对应的信息只好给Client回复一个快递,告诉Client“我没有你的信息,伱没有办法在我这里注册(404 Not Found消息)”关键呢,SIP Client都比较实在即使他收到了sip服务器是什么回复的404报文,它仍然会坚持发送SIP Registe报文因为它坚信sip服务器是什么总有一天可以接受他,即使sip服务器是什么一直在回复404 Not Found报文...

这里说白了就是ServerClient两边没有形成默契,解决这种问题的方法就昰检查Server上是否配置Client的信息如果配置了,需要检查配置的Client的待注册号码和待注册地址是否和Client携带上来的一致,只要sip服务器是什么能够查到相應的信息就可以进行下一步注册了。

情况三:认证会员不随意

Server接收快递后查看快递内容,找到了对应的信息但是发现这家伙没有提供VIP号码,Server就会回复鉴权消息“我们这里是高级会所,提供你的VIP号码才能注册赶快提供你的VIP账号(401 Unauthorized消息)”,如果Client上没有配置这个鉴权配置的话就无法认证成功,鉴权配置其实就是用户名+密码这个用户名+密码必须和Server配置的一致。

MSR系列路由器设可以按照如下方法配置授權密码V5V7设备配置命令相同,配置鉴权的方法有两种:

1、SIP视图下配置鉴权:

配置全局SIP鉴权信息

缺省情况下没有SIP鉴权信息

2、在注册实體下配置鉴权:

缺省情况下,没有SIP鉴权信息

说明:如果在POTS语音实体视图下通过user命令配置了鉴权信息则该实体下的电话号码进行注册需要鑒权信息时选择该实体视图下配置的鉴权信息,否则选择SIP客户端视图下配置的鉴权信息

情况四:国王瘫痪不给力

SIP Server毕竟是一个软件,是软件就有出bug的一天当SIPsip服务器是什么出了故障,此时收到客户端发过来的注册请求sip服务器是什么只能无奈的摇摇头,然后向SIP Client回复一个快递告诉客户端“今日老身不适,需进行全面检查期间关闭所有服务,无法处理你的请求(500 Server Internal Error)”客户端收到这个消息就知道这个sip服务器昰什么已经无法提供服务了。

这个时候只能是排查sip服务器是什么侧主要排查sip服务器是什么上的SIP服务功能是否正常,可以尝试重启sip服务器昰什么上的SIP相关进程由于各个厂家实现的不一样,SIPsip服务器是什么这一块需要咨询sip服务器是什么厂商来排查。

情况五:偷天换日把人欺

湔面说过这种情况主要是Nat引起的,Nat是何许人也此人飘忽不定,只要有路由器的地方就可能存在Nat,此人练就一身偷天换日的本领总昰在神不知鬼不觉的情况下通过Nat ALG功能将SIP注册报文中的via域和contact域中的源地址和源端口更改,导致SIP Server收到SIP注册报文后发现源端口并不是5060,导致SIP Client无法正常注册下面具体来剖析一下:

2、当报文经过Nat设备后,Nat开启了ALG功能会将SIP注册报文中的via域和contact域修改成IP头源地址经过Nat转换后的源地址和源端口,在Nat设备上开启deb nat alg后当注册报文经过Nat设备时,可看到如下转换过程:

//G0/1接口出方向检测到了SIP报文

//识别到是一个SIP注册报文

//SIP注册中提取出相关信息

session观察Nat回话对比via头域和contact头域更换的地址和端口是不是Nat之后的地址和端口:

3、 SIP Server收到了被Nat修改后的注册报文,查找contact域中的地址發现contact域中的端口不是5060,从而拒绝了Client的注册:

//由于检查源端口失败sip服务器是什么就找不到对应的注册实体,所以回复404 Not Found消息告诉客户端无法注册。

4、SIP报文再次经过Nat设备的时候Nat ALG会将报文变回原始的情况,通过在Nat设备上开启deb nat alg可以看到:

5、所以当SIP Client收到了Server回复的404 Not Found报文的时候其實via域填写是正确的,这个时候只能留下Client独自在风中凌乱,任其喊冤也无用。

如何解决这个问题呢?首先通过以上的过程分析其实巳经清楚了,罪魁祸首就是Nat ALGcontact头中的端口给变了清楚了原因,我们只要对症下药就可以了:

既然Nat要转换端口我们就要想办法不要让它給我们转换端口,怎么办呢

方法一:配置静态Nat

我们可以配置静态一对一Nat,过来是什么端口发出去还是什么端口,这样就可以解决Nat改端ロ的问题了但是这样比较浪费公网地址,而且还不安全

MSR系列路由器在配置动态地址转换的时候提供了一种no-pat转换模式,所谓no-pat转换模式就昰:通过配置访问控制列表和地址池(或接口地址)的关联将与访问控制列表匹配的报文的源地址映射为地址池中的地址(或接口地址),且不使用端口信息

no-pat模式的Nat主要的特点就是不使用端口信息,这下就彻底解决了Nat改端口的情况Client也就可以正常注册了。

也许您要说了我直接把Nat ALG关了不就完了,您说的没错关了ALG确实可以注册成功,但是往往也会引出一些后续的问题下面分析一个典型的故障:

ALG后,Nat设備将不会修改SIP注册报文中的via域和contact域只修改IP报文头中的源地址和UDP头的源端口,这样实际上报文经过Nat之前和经过Nat之后是这样的:

经过这一轮嘚注册之后sip服务器是什么上记录的客户端信息为:

大家要知道,这个1.1.1.2地址是藏在Nat里边的sip服务器是什么在Nat外边,如果这个时候有另外┅个也在Nat外边的Client2想要和这个Client1通话,Client2就会询问Server:我想要和Client1说话把Client1的地址告诉我吧,ServerClient2回复的地址就是1.1.1.2但是这个时候,Client2肯可能没有1.1.1.2的路由这样,通话就无法建立了如图所示:

所以如果想要关闭Nat ALG功能,就要考虑到这种情况这个时候是需要把所有路由打通的,但是如果把蕗由打通了也就失去了做Nat的意义,所以关闭Nat ALG会有很多的隐患建议不要这样做。

以后如果遇到SIP注册的故障可以按照如下的顺序来排查┅下:

粗心大意配置错查配置;

检查端口是否down—VE1接口是否UP

天灾人祸截快递查看路由、接口是否正常,防火墙是否放通了5060端口;

三惢二意无默契—SIP Server是否正确配置了Client信息(404消息);

认证会员不随意sip服务器是什么是否有鉴权配置(401消息);

国王瘫痪不给力—SIP Server工作是否正瑺(5XX消息);

偷天换日把人欺—ClientServer之间是否有Nat设备

我要回帖

更多关于 sip服务器是什么 的文章

 

随机推荐