一次领导让去贵州六盘水,去帮办事处解决一个公司ippbx的呼叫故障问题,说问题已经反馈处理一个月,工程和研发多次处理都没定位,现场意见很大,再不解决,用户要拆设备了。研发这边不派人去,可能会造成当地办事处不满,我们研发要派人到现场给个认真处理的态度。于是很忐忑的被派去,想这是一个擦屁股,背锅的差事,我就是一个测试维护人员9527,这是什么套路?

飞到贵阳和办事处人员汇合,了解基本情况如下:

六盘水监狱,iad+ippbx+ims组网,反馈问题是打入打出多次尝试才能成功,重启后能正常一段时间。有时打出提示线路忙,再次尝试能成功。

ip配置:共27个iad,ip从172.31.234.51到172.31.234.77

wan的ip是10.8.64.252./24

imp:172.31.234.220,wan口10.8.64.252,网关:10.8.64.1

主用ims:221.13.5.226     备用ims:221.13.4.174

号码:本地小号:1,3,5,7,8,9打头四位号长

公网号码:085881649百号段,ims注册和呼叫使用+868581649xxx

根据组网确定定位方法:

1、去现场了解故障的范围,发生的有啥共性和规律性?

2、根据反馈情况进行抓包跟踪,确定是否有sip信令表项,根据信令表项排查故障。

排查过程:

到监狱后,了解到是一个新建监狱,还未正式使用,监狱办公楼和岗亭,生活区,监狱内部通过光纤组网,用iad接入模拟电话,对接ippbx后,接入联通ims。办公楼区域反馈故障多,主要是不能呼出,一会能正常一下。

决定先抓包,看一下是否有信令的表现?

公司的ippbx上有一个信令和业务处理板名称是imp板,硬件是一个四口千兆网卡百兆snmp的嵌入centos6.5的板卡,它的eth2上有172.31.234.220这个ip地址,作为信令和语音rtp的ip,用于下联iad。eth3是运营商的内网地址10.8.64.252./24用于上联ims。iad用分机注册到imp板,imp记录分机注册的ip地址和号码。imp用eth3的地址和公网号码向ims注册。分机呼出公网号码时,iad发出消息到imp,携带注册时的分机号码作为主叫,imp上有公网号码和分机对应关系,相当呼出做nat,主叫号码由分机转换为公网号码用wan口ip发给ims。由公网的呼入,eth3接受消息,被叫是ippbx在公网的注册号码+8685881649xxx,反向查nat公网号码和分机对应关系,被叫公网号码转换i内网分机短号,imp用eth2,给对应iad的ip发出呼叫消息。内部分机互打时,主机iad发消息给imp,imp再查被叫分机注册时的对应ip地址,再把消息转给被叫的注册ip地址。

1、串口上去,给imp板的snmp添加ip地址,用于ssh访问和抓包。

考虑现象不是一直有,为不遗漏现象,采用多文件抓包的方法,让wireshark自动记录,自动打包。便于后面分析。

2、利用rpcapd进行抓包,先抓一下eth2,多文件抓包,每50M自动打包一个。

3、抓包后,对语音的voip进行分析,发现有一些呼叫失败,被叫号码是1028,1032。

发现是业务板imp172.31.234.220的ip地址发给iad172.31.234.66时被拒绝了。看一下这个ip的iad

是否有啥问题?

登录172.31.234.66发现上仅仅配置一个号码9005,那为什么imp会把1032,1028的呼叫指向iad66呢?

imp会记录分机注册成功时,携带的ip地址,有呼叫会发给这个地址,难道1032和1028也用这个ip注册过,但为啥有时会拒绝呼叫?环境中存在两个172.31.234.66的ip地址?

4、怀疑系统中存在两个172.31.234.66,让在另一台pc上cmd模式下ping 172.31.234.66,然后arp –a显示mac缓存表。Linux下ping 172.31.234.66 –c 10,arp –n显示mac表,对比两个mac地址是否一致?

imp板上的ping后显示:

对应mac地址00:0e:5e:55:4e:86。

而另一台pc上ping后,显示的mac地址为00:0e:5e:58:d2:49。两个mac地址不一致,telnet逐个检查每个iad的配置,登陆172.31.234.66时发现它有这个mac地址。检查留存的ip地址配置文件表,发现有两个 iad的ip为172.31.234.66(分别为备勤楼,号码为1001到1034,另一个是计划岗楼4,号码仅一个9004)。判断分配ip时,没有留心,把ip地址分重了!

5、去岗楼不方便,备勤楼外部人员可以进入,决定把备勤楼的ip进行修改为172.31.234.75后,观察一天再未出现此类故障。

确定是ip冲突导致的问题。到现场一个小时找到故障,松了口气,锅不用背了。办事处的运营商的很满意,说监狱在郊外20公里山里,一个月间,来回多次都没解决问题,今天这么快就找到问题,释然了。

三楼机房看看监狱的外层五米高墙,上面有铁丝网电网和岗楼,里面还有一圈铁网隔离墙,上面是有刀片式铁丝网,看得人心悸,问监控室的,说出大门得三道门,三个干警掌管钥匙,没有人配合,逃出概率为0。看围墙内犯人排队吃饭,还有朗朗的读英语声,犯人还学英语,不错。

ip冲突导致sip信令故障原因分析:

观察期间,对问题进行分析,呼叫一会好,一会不行,感觉imp上一回发给了正确的172.31.234.66的mac地址,一会发给了错误的mac地址,于是过来arp和sip消息。

过滤:(sip  && ip.addr==172.31.234.66) ||  arp  contains  ac1f-ea42  arp过滤的是消息里包含ip 地址172.31.234.66的包。

为了wireshark方便查看,调整wireshark的列显示edit→preference→columns

内部小号为1001到1032的iad备勤楼对应iad的mac00:0e:5e:55:4e:86,计划岗楼iad的mac00:0e:5e:58:d2:49,仅分配一个号码9004。

发现有这四种情况:

1、当有呼叫1001到1032其中的一个号码的呼叫时(内线或外线呼叫),此时linux里的mac表被更新为错误的mac,导致invite消息发向了错误iad,这个iad上没有这些号码,直接回600,服务器忙,呼叫失败。

上图中淡黄色的是arp单播探查消息,这是imp的缓存里还是错误的mac,arp单播probe探查消息,依然是错误的iad给的响应,导致arp缓存的定时器被恢复到reachable的状态。下一一次还是发给错误 iad。

2、当1001至1032的用户主动发起呼叫时,imp的缓存只有arp的请求imp的地址或者有对你imp发出arp请求作出响应时才被修改,imp板回的100trying发向了错误mac地址上,由于没有收到100trying,源iad在0.5,1,4秒后重发invite。

3、当正确mac的iad发出arp单播探查请求的imp板上时,imp会更新缓存中的mac值,imp消息发到正确iad上,通话能正常。

172.31.234.220 is at 00:0e:5e:34:8e:29 (duplicate use of 172.31.234.66 detected!)

4、超时重复发invite在隔四秒重发前,正确的iad发出单播arp探查消息,更新了mac地址缓存,imp把后向183消息,发给了正确的iad,呼叫流程正常走下去

结论:mac更新正常后,呼叫会成功,但当错误mac被更新到缓存中,呼叫会失败。

总结:

呼入呼出故障系两个iad的ip配置成了172.31.234.66,导致imp板的arp缓存有时被更新为错误的mac地址,当由ims呼入的电话到imp,imp板把invite消息转到错误的mac地址的iad上,iad没有配置相应的号码,回600全局忙,导致呼叫失败。正常的iad呼出时,imp发的100try发到了错误的mac地址上,导致iad超时重发invite,最后呼叫失败。

要点:

1、arp缓存要在收到设备发出arp请求或者回答本机的arp请求后才会被更改。

2、处理问题时,要关注mac地址的变化。

ip冲突引起呼叫故障的问题处理过程相关推荐

  1. 华为交换机 查ip冲突_华为交换机:如何解决网络中IP地址发生冲突故障?

    随着网络的广泛应用,使网络规模不断扩大,相应的IP地址分配也在不断增多,IP地址冲突现象与日俱增,在一定程度上影响了网络的正常运行. 维护网络稳定.高效运行,解决IP地址冲突问题,已成为网络管理中的重 ...

  2. 无法上网故障排查过程及复现过程系ip冲突造成

    有刚出差50天同事找来说他第一天上班,pc无法上网,让给看看哪的问题?问他网络物理状态,说没问题,就是网卡标志那里有黄色的感叹号. 无法上网可能的原因: 1.网卡连接存在物理故障           ...

  3. ip冲突 scan windows_如何检测IP有冲突 - 卡饭网

    Linux系统下配置多个IP及检测IP冲突的方法 Linux系统下配置多个IP及检测IP冲突的方法 配置一系列IP 在linux下,配置多个IP的话,通常是eth0.0.. eth0.1 ..eth0 ...

  4. docker-ip与服务器ip冲突问题

    环境描述: 公司网段10....18 需要访问 172....81的80端口服务,通过公司网络部门开通端口后还是telnet不通,猜测是docker的ip与 172....81 服务器的ip冲突,指令 ...

  5. 解决局域网IP冲突的问题

    我们都知道,在Internet和Intranet网络上,使用TCP/IP协议时每台主机必须具有独立的IP地址,有了IP地址的主机才能与 网络上的其它主机进行通讯,对此应该不用我罗嗦了.不过我想你肯定碰 ...

  6. ip冲突 scan windows_Linux下IP 冲突查看及解决方法

    在linux下查看ip是否冲突的命令: 1.通过arping命令检测. arping 192.168.0.25 Unicast reply from 192.168.0.25 [00:25:e4:6c ...

  7. 电脑的网络,一会通一会不通,一般是IP冲突

    出现这种情况,一般都会认为是机器坏了,或者驱动有问题.反复折腾也没什么用.其实遇到这种情况,首先要想到,是 IP冲突. 这个时候: 如果是几台机器都有问题,那么需要检查各个路由设备(比如全部关掉,挨个 ...

  8. 利用IP冲突 攻击目标服务器

    据说是某人日站的思路-- 非同一网关C段劫持 这个方法很简单 就是利用局域网的IP冲突 (可做到突破非同网关劫持 与SB 嗅探) 也就说土地点就是直接把我们拿到的服务器修改成目标服务器的IP 这个就是 ...

  9. Connection closed by foreign host原因ip冲突及解决办法

    使用xshell连接centos时总自动断开,按网上的修改探寻报文周期方法试了,也没用,突然发现换了一个无线网后,竟然不会断开了,于是猜想是不是ip冲突导致,而且报错信息也提示连接被客户机关闭 先连接 ...

最新文章

  1. Javascript 移动的海绵宝宝
  2. LIST 和 MAP
  3. 两个列表合并去重_花生AI论文去重V1.4更新合并查同义词功能
  4. Average and Median(500)dp,二分 AtCoder Beginner Contest 236
  5. Java获取当前线程的名字以及为线程命名
  6. 华为鸿蒙os什么时候应用上线,华为 HarmonyOS :即日起,全新上线鸿蒙 100 问
  7. 在JS中如何判断undefined和null
  8. 需求决定设计,设计来源于需求
  9. 如何将 Microsoft Bot Framework 链接至微信公共号
  10. mysql与文件_MySQL——文件
  11. 山洪沟防洪治理工程技术规范_幸福沟水库一期工程完工丨尚志城市供水、防洪、农业灌溉皆升级...
  12. 第二阶段冲刺 第四天
  13. php外壳函数,php 方法笔记
  14. 分享一个游戏源码、游戏服务端、下载网站
  15. 特洛伊木马程序_为什么物联网设备是我们这个时代的特洛伊木马?为什么没人谈论它?...
  16. 免费使用微软Azure进行文字转语音的三种方法!最自然接近人声的机器配音技术。
  17. 【食安云桥】python 文件内批量长度除以3.5替换
  18. Scrum板与Kanban如何抉择?vfmzulfdr板与按照ftjzox
  19. C语言图书用国际标准书号,图书登记管理系统程序ds.doc
  20. js 删除QQ空间的说说

热门文章

  1. SerialPort 串口编程知识整理(一)
  2. windows 7 如何关闭 程序崩溃时弹出的windows正在检查该问题的解决方案
  3. OpenStack核心组件
  4. 693. 交替位二进制数 / 227. 基本计算器 II / 264. 丑数 II
  5. 外国人申请签证和居留许可须知
  6. 高清壁纸大全:2013年桌面日历壁纸免费下载
  7. 英语BISYNES商业BISYNES生意
  8. dom4j java_DOM4J
  9. OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)
  10. 红外模块 51单片机