一次语音流量穿越飞塔Gate不通问题的解决过程.docx
《一次语音流量穿越飞塔Gate不通问题的解决过程.docx》由会员分享,可在线阅读,更多相关《一次语音流量穿越飞塔Gate不通问题的解决过程.docx(17页珍藏版)》请在冰点文库上搜索。
一次语音流量穿越飞塔Gate不通问题的解决过程
一次语音流量穿越飞塔Gate不通的解决过程
V1.0
北京超圣信华科技有限公司
2016年4月11日
问题:
一次语音穿越Gate不通的解决过程
版本:
V1.0
日期:
2016年4月11日
作者:
宋泽春
摘要:
一次语音穿越Gate不通的解决过程
关键字:
SIP、SDP、SDF、RTP
文档记录
文档名称
一次语音流量穿越飞塔Gate不通的解决过程
保密级别
内部
版本编号
更新日期
更新摘要
修订
复审
1.0
2016年4月11日
建立文档
宋泽春
文档说明
本文档描述了一次语音流量穿越飞塔Gate不通的解决过程的说明。
第1章需求
内部安装两台IPPBX,外部IP分机呼入,通过Fortiner200D可实现负载均衡功能。
当主设备故障后,呼叫会切换到备用设备。
需求:
Ø默认语音网关访问飞塔VIP流量分发到IPPBXA上
Ø当IPPBXA异常,语音网关访问飞塔的VIP的流量分发到IPPBXB上
Ø当IPPBXA恢复后,语音网关访问飞塔VIP的流量继续分发到IPPBXA上
第2章SIP浅析
简单的说SIP有信令流(5060)和媒体流(两个人的通话)两部分组成,信令流主要用作从语音网关到IPPBX管理系统的注册,媒体流用来传输建立好通道的语音流量。
第3章拓扑结构
拓扑结构如下:
第4章配置部分
欲完成上述需求,飞塔防火墙需要启用负载均衡功能。
即,两个IPPBX管理系统作为两台服务器看待,语音网关作为访问者看待,飞塔防火墙通过其负载均衡模块将两台IPPBX管理系统向语音网关发布。
4.1配置火墙地址
确定当前配置为:
WAN口IP为192.168.120.44;LAN口IP为192.168.100.99
确定内部IPPBX配置(OM50)
IPPBX-A:
SIP端口5060,RTP端口10010~10266;配置IP分机220,注册密码123321
IPPBX-B:
SIP端口5060,RTP端口11010~11266;配置IP分机220,注册密码123321
NAT_IP:
需要配置NAT_IP为192.168.120.44,以保证IPPBX信令携带的IP地址是防火墙的WAN口IP,从而可以建立正确的语音流。
对接语音网关配置
MX8A:
IP地址为192.168.120.19,配置注册服务器192.168.120.44(200D的WAN口IP),配置PHONE1口号码220,注册密码123321
4.2开启负载均衡功能及VOIP高级特性
如下图所示,在FortiGate中开启负载及VOIP特性
4.3配置虚拟服务器
登录FortiGate200D的配置界面,进入策略&对象下的负载均衡,打开虚拟服务器页面。
新建一个虚拟服务器。
具体配置如下图。
其中虚拟服务器的IP地址为200D的WAN口地址。
4.4配置真实服务器
进入真实服务器页面,添加两个,分别是IPPBX-A和IPPBX-B的IP地址
第一台设为激活模式,作为主设备
第二台设为待机模式,作为备份设备
4.5监控检查
点开监控检查页面,根据实际情况配置检查规则。
此规则用于FortiGate200D判断内部IPPBX是否处于正常工作状态。
当配置完成监控检查后,需回到虚拟服务器页面,选择健康检查
4.6配置虚拟IP
说明:
配置虚拟IP是用于建立RTP端口映射
进入策略&对象下的对象,打开虚拟IP页面,新建两个虚拟IP,用于IPPBX-A和IPPBX-B的端口映射
4.7策略配置
说明:
之前建立的虚拟服务器和虚拟IP,必须建立相应的规则,才可以使用。
那么整体需要建立四条规则
规则1:
从内到外的允许,启用NAT
规则2:
从外到内的VIP发布
规则3:
从外到IPPBXA的媒体流交互
规则4:
从外到IPPBXB的媒体流交互
建立虚拟服务器的规则:
进入策略&对象下的测率,打开IPV4页面,点击新建。
注意目的地址配置为虚拟服务器输入的名称。
下图简单介绍VIP发布及IPPBX发布配置
建立虚拟IP的规则:
注意目的地址配置为虚拟IP输入的名称
至此配置完成。
第5章分割点
若无问题,配置到上面即可结束,本人在测试的过程中不是很顺利,发生了若干问题。
具体的每个问题下面会有介绍,通过有解决方法和排错过程。
第6章遇到的问题
6.1负载均衡回切慢问题
此会且慢问题本人在自己的电脑上搭建的测试环境进行测试:
测试环境如下:
1、Windows7笔记本一台
2、workstation软件
3、虚拟windows7环境
4、HFS网站快速发布工具
搭建好的环境监控负载状态如下:
其中一台为主机一台为备机,当主机异常后流量会切换到备机,当主机修复后发现流量要5分钟后才会切换回主机。
5分钟为飞塔本身的特性,飞塔防火墙负载下面的服务器做一个hold时间,修复方式如下:
默认:
修改:
最小时间为30S,修改为30S保存
在两个IPPBX上分别更改上面的配置,至此且缓慢的问题解决。
6.2语音无法建立问题
在用户的真是场景中发生了这样的问题,语音交换机可以注册,但是无法建立语音媒体流。
在接触到这个问题的时候首先想到了是否是飞塔的ALG的问题导致的,同时参考厂商大牛的一个关于SIP故障问题处理手册
参考后有所启迪,但是并没有解决本次问题。
第一:
删除飞塔的ALG,具体删除方式不再提及。
第二:
按照厂商大牛的文档中的描述,配置VOIP属性,分别在策略中调用
命令:
config voip profile
命令:
edit default
命令:
config sip
命令:
set no-sdp-fixup enable
用show命令看一下配置
命令:
end
命令:
end
在用到的所有出向和入向策略中UTM启用VOIP,调用default
发现删除了ALG和配置VOIP后问题没有得到解决,这个时候没人任何办法的情况下,在飞塔的外网口和内网口分别抓去数据包。
数据包如下:
打开LAN的数据包查看信息如下:
打开WAN口的数据包发现信息如下:
通过抓包对比,发现LAN口的RTP端口是11248,到达WAN口出去的时候的RTP是11226。
发现RTP的端口被防火墙修改掉了。
也就是语音流中的SDP被NAT了。
修复方式:
配置VOIPprofile,将SDP设置为不修改
保存配置后,发现语音流量已经可以建立完成。
这个时候分别在防火墙的LAN口和WAN口抓包,信息如下:
LAN口抓包信息:
WAN口抓包信息:
对比两个数据包重的RTP端口,均一致为10124.
本次抓包共进行了三次呼叫,打开数据包进行对比,发现RTP端口均一致,至此呼叫不通问题解决。
6.3语音IPPBX无法回切问题
在用户的环境中发现,当IPPBX切换到备机的时候,挡住主机的IPPBX恢复后,无法切换回主机的IPPBX上工作。
在此现象上,经过一系列排查,发现是由于备机的IPPBX的会话无法结束导致。
对于此问题的解决思路如下:
第一:
调整飞塔设备上的UDP会话存活时间。
udp-idle-timer是udp信息在火墙中的存活时间的,将时间调整为16S
第二:
通过在语音设备的管理控制台上看,最后发送信令的时间是19:
02
但是过非常久的时间还是没有切换回主机,这个时候我去关注了idle的时间设定的是16s 。
于是在这种情况下,我将idle的时间设定为2发现切换的很快,设定为4秒的时候也可以,设定为8秒的时候还是没问题,设定为14秒的时候还是okey的。
只有设定为16S的时候切换不回来,而且在语音设备的WEB日志里看到确实没有发后续的信令注册包。
抓包:
在这个情况下进行了抓包,抓去语音设备的5060信息,发现尽快WEB几面上没有看到注册信令,但是在飞塔的抓包里面看到每相隔15S就会在wan1口上接收到一个5060
,这个时候确定问题应该不是在飞塔的配置上,到语音设备上查看配置,发现设备有一个keepalive机制,在nat的环境下默认每隔15S会发送一个注册信令,目的是告诉后端的ippbx时时知道它的源端口
,
验证:
将keepalive时间改成20S的时候在飞塔上抓包,看到的效果如下 20S收到一个5060
最后的解决办法就是语音设备上的keepallive时间要配合飞塔的udp idle时间设定,飞塔的udp idle时间小于keepallive时间即可。
古今名言
敏而好学,不耻下问——孔子
业精于勤,荒于嬉;行成于思,毁于随——韩愈
兴于《诗》,立于礼,成于乐——孔子
己所不欲,勿施于人——孔子
读书破万卷,下笔如有神——杜甫
读书有三到,谓心到,眼到,口到——朱熹
立身以立学为先,立学以读书为本——欧阳修
读万卷书,行万里路——刘彝
黑发不知勤学早,白首方悔读书迟——颜真卿
书卷多情似故人,晨昏忧乐每相亲——于谦
书犹药也,善读之可以医愚——刘向
莫等闲,白了少年头,空悲切——岳飞
发奋识遍天下字,立志读尽人间书——苏轼
鸟欲高飞先振翅,人求上进先读书——李苦禅
立志宜思真品格,读书须尽苦功夫——阮元
非淡泊无以明志,非宁静无以致远——诸葛亮
熟读唐诗三百首,不会作诗也会吟——孙洙《唐诗三百首序》
书到用时方恨少,事非经过不知难——陆游
问渠那得清如许,为有源头活水来——朱熹
旧书不厌百回读,熟读精思子自知——苏轼
书痴者文必工,艺痴者技必良——蒲松龄
声明
访问者可将本资料提供的内容用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本文档及相关权利人的合法权利。
谢谢合作!