目录

1 现象:

2 组网结构:

3 业务流程:

4  抓包定位一下问题:

4.1 抓包看一下

4.2 更改抓包方式后,重抓

4.3 故障的可能性如下图:

5 结论及改正方法:

6 总结


1 现象

ucs设备三块用户板的电话用户呼叫本板号码没有问题,板间用户相互呼叫不通。

2 组网结构:

如上图:单板采用独立的嵌入式的linux操作系统,分配独立的业务ip地址,通过背板的业务网口接入主控交换单板smca。用户板fxs通过两个网口接背板,一个维护一个业务,业务ip为172.31.234.10x(单业务板ip为3槽位172.31.234.103,4槽位为172.31.234.104,5槽位为172.31.234.105)。主控交换机板SMCA为所有的业务管理网口的网络交换板,相当于一个交换机,前面板有4个带内网络出口,和背板的所以业务网口相通。IMPA业务处理板是所有业务电话业务的sip协议注册语音处理接口,业务ip为172.31.234.220,通过背板接入smac的一个网口。

3 业务流程:

48fxs相当于通信终端集合体iad,smca相当一个网络交换机,ipma相当于业务处理平台。从网络拓补上来看48fxs和impa下挂于smca下面。Smca是*型组网的中心点。从业务角度看两个板卡下挂于impa下面,impa是*型组网的中心点。

4  抓包定位一下问题:

4.1 抓包看一下

客户反馈3槽位的1809呼叫本板的号码正常,呼叫4槽位的1828时,呼叫失败。用系统抓包功能抓包分析,抓包界面如下:

抓出包用wireshark打开如下:

首先流程应该是3槽位172.31.234.103的板卡发出invite到imp,imp板分析号码落地在4槽位172.31.234.104,所以发invite到4槽位板卡。4槽位根据被叫状态进行后续应答操作。

发现imp转给4槽位的172.31.234.104后,出现重发现象

根据经验判断,可能性如下:

1、重发要么是第一种情况imp发给错误的mac地址,导致正确的板卡没有收到消息,导致没有响应消息发出,imp没有收到响应消息,在不断的按0.5,1,2,4,8,16的间隔重发消息

2、要么第二种情况是四板卡的问题,ip为104的板卡收到消息没有响应消息发出

查看抓包文件的发现没有目的mac地址,这样无法判断消息发给谁?

根据mac层的结构,如下图可知,抓包里目的mac为空

询问研发,界面跟踪抓包sip包使用的是tcpdump  -i  any  udp  port  5060的命令,这样就无法获得完整的mac地址。mac层会被改写成linux cooked capture。看不到目的mac地址。

4.2 更改抓包方式后,重抓

改用自定义模式ctrl+shift+f12激活自定义抓包模式。见下图,改成 –i eth2,只抓imp板的业务网口的包。相当于执行了tcpdump  -i  eth2,eth2是impa板的业务口。

再次信令跟踪抓包看,目的mac清楚显示:

查看imp转给4槽位172.31.234.103发出的invite消息,发现mac地址也是00:aa:bb:cc:dd:ee,和3槽位172.31.234.103发出消息的mac地址相同。

发现mac地址冲突,存在mac地址漂移。

初步判断是mac地址冲突导致目的板卡收不到对应的invite消息,再次用arp消息来验证,因为linux系统有单播消息来探查目的主机是否在线的功能,一分钟发一次,连续几次收不到响应后,会删除arp缓存,发arp广播请求消息。

过滤arp消息分析如下:

过滤(arp.src.proto_ipv4>=172.31.234.103&&arp.dst.proto_ipv4>=172.31.234.103)得出上面的结果。发现三个板卡发出的arp单播请求消息的mac地址相同。

交换机具有动态学习源MAC地址的功能,并且交换机的一个接口可以对应多个MAC地址,但是一个MAC地址只能对应一个接口。交换机动态学习的MAC地址默认只有300S的有效期,如果300S内记录的MAC地址没有通信,则会删除此记录。根据此理论:

4.3 故障的可能性如下图:

问题的原因:

正常的3槽位的号码呼叫4槽位的号码,invite发出到imp,imp根据4槽位号码注册的ip,确定ip和路由,mac地址,路由发给对应的mac地址,交换机smca根据mac地址表对应mac地址发给对应4槽位的设备接口。

现在的问题是345槽位的mac地址一样,导致谁发包,mac地址表的对应mac会被不断改写。3发出invite后,改写交换机smca的mac地址表,对应mac地址对应接口被改写3,这样imp发出invite被转发到3槽位的设备上,而3槽位收到invite消息里,ip不是自己的,不处理。而imp等不到invite的后向100try的确认消息,导致按0.5,1,2,4这样的时间差发出,在等100trying的5s超时后,停止发invite消息,发出403给3槽位,呼叫失败。

5 结论及改正方法:

结论是3块fxs的mac配置相同,导致数据包收发不正常,落地的invite发到了错误的端口,导致invite消息不断重发,5s后等待后向100trying超时,imp发403呼叫失败。

改正方法:发现主控上fxs的mac已经配置,而且不是00:aa:bb:cc:dd:ee,三块不同。重新下发mac地址到三块板子后send mac slot  x,测试业务正常。

归纳一下解决问题中的关键点:

1.界面sip协议抓包是默认执行tcpdump  -i  any  udp port 5060,这样抓出包没有完整的mac层显示,显示为linux cooked capture。udp port 5060为预过滤sip协议端口的信令消息。

2.自定义抓包执行的tcpdump  -i  eth2,因为要过滤所有的包,所以无需在后面执行预过滤项2.

3.Sip协议有超时重发机制,invite发出后,等待100trying的回复,会在距离上一次消息的发出的消息0.5秒,1秒,2秒重发。Invite发出后等待100trying超时时长是4秒。超时不到,发403消息。中断呼叫。

4.交换机通过mac端口表是以mac地址为索引查询对应端口来转发数据包,mac地址在表中有唯一性,没有重复。可以多个不同mac地址对应一个端口,不可能一个mac对应多个不同端口(较多出现在交换机的级联口上)。交换机通过记录数据包里的源mac来改写mac端口表。查找目的mac对应的端口来找出转发数据的端口,目的mac端口表中不存在对应的mac地址时,会使用范洪方式,将包广播到所有端口,当目的mac主机回复后,交换机记录回复主机的mac和端口对应关系,下次有同样的目的mac数据包来时,直接转发到对应端口,不再使用范洪方式。端口在收到包时,记录包的源mac地址,并启动有效的定时器,再次收到同样的mac地址包时,定时器复位。一般定时器是300s。

5.当交换机下面有mac冲突时,另一个端口收到已经记录的mac的包时,mac端口表被改写。到这个mac的包会被发到后来的硬件上去。但是impa板中arp缓存会出现一个mac地址对应多个ip地址的问题。发到交换机的invite消息被转发到错误的板卡上去。

6.通常linux的网关类设备要进行单播验证arp缓存中的主机是否在线,通过发单播arp请求消息来实现,一般是一分钟一次,若连续N次没有收到对应主机的单播回复,主机设备就会清除arp缓存表中的对应项目,当要发送数据时,会使用广播arp消息来查询对应的主机的mac地址。

7.Fxs用户呼叫本板用户,因为语音的rtp楼20ms一次不断发出,交换机的mac端口始终不变,所以拨打本板没有问题。拨打其他板卡,会出现imp 发来包转发到源板卡上,导致呼叫失败。

6 总结

交换机下的mac地址表是以mac地址为唯一索引的,多个mac地址可以对应一个端口,但一个mac只能对应一个端口,当一个mac出现在另外一个端口上时,mac地址表会被更新。当两个设备配置同一个mac时,就会出现mac地址漂移,而交换机的arp的表是以ip为唯一索引,当arp表不变时,发给这个ip的包就会被一会发给这个端口,一会发给那个端口,导致访问不正常。

mac地址漂移导致呼叫失败问题处理过程相关推荐

  1. mac地址漂移flapping的前因后果

    一.什么是mac地址flapping? mac地址漂移是指:在同一个vlan内,mac地址表项的出接口出现变更.如图: 二.产生的原因 1.因为环路或VRRP切换,导致的MAC地址漂移告警.(不予关注 ...

  2. 2022-09-07 网工进阶(三十)以太网交换安全-端口隔离、MAC地址表安全、端口安全、MAC地址漂移防止与检测、链路层安全、流量抑制、风暴控制、IPSG(IP Source Guard)

    概述 目前网络中以太网技术的应用非常广泛.然而,各种网络攻击的存在,不仅造成了网络合法用户无法正常访问网络资源,而且对网络信息安全构成严重威胁,因此以太网交换的安全性越来越重要. 端口隔离 大型网络中 ...

  3. MAC地址漂移和应对(二)

    MAC地址漂移应对方法 二层环路以及网络攻击行为均有可能引发MAC地址漂移. 对应二层环路这个诱因,我们可以部署生成树协议(STP.RSTP.MSTP)或者环网保护协议(RRPP.ERPS)进行规避, ...

  4. 玩转华为数据中心交换机系列 | 配置MAC地址漂移检测示例

    素材来源:华为数据中心交换机配置指南 一边学习一边整理试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:玩转华为数据中心交换机系列 | 汇总_COCOgsta的博客-CSDN博客 组网需求 如 ...

  5. MAC地址、MAC地址表、端口安全、MAC地址漂移

    一.MAC地址 mac地址主要工作在数据链路层,主要用于单个广播域内的数据传输 1.组成 总共48Bit,前24bit是通过向IETF等机构申请用来标识厂商的代码,后24bit由是厂商分配给产品的唯一 ...

  6. 获取iOS设备WiFi名字和mac地址+iOS12系统获取失败解决

    苹果提供了NetworkExtension框架让开发者实现VPN以及WiFi热点相应的功能,虽然iOS9系统出来之后,这个框架的很多功能被苹果屏蔽了,需要申请权限才能用,但是本篇简单的获取WiFi名字 ...

  7. 华为MAC Flapping , MAC的漂移

    华为写的很详细,MAC 地址的漂移会导致流量的中断. 华为阻止MAC地址漂移的方法有三种: 一.端口配置静态MAC地址 在全局视图下,执行命令mac-address static mac-addres ...

  8. Linux_网络_数据链路层协议 MAC帧/ARP协议 (以太网通信原理,MAC地址与IP地址的区分,MTU对IP/TCP/IP的影响,ARP协议及其通信过程)

    文章目录 1. 以太网(基于碰撞区与碰撞检测的局域网通信标准) 2. 以太网的帧格式(MAC帧) MAC地址,IP地址的区分 MTU MTU对IP协议的影响 MTU对TCP/UDP协议的影响 3.AR ...

  9. 华为数通笔记-MAC地址

    MAC简介 MAC基本概念 MAC(Media Access Control)地址用来定义网络设备的位置.MAC地址由48比特长.12位的16进制数字组成,其中从左到右开始,0到23bit是厂商向IE ...

最新文章

  1. 虚拟化管理的两大棘手之处
  2. echarts学习文档
  3. [flask]gunicorn配置文件
  4. 解决多个py模块调用同一个python的logging模块,打印日志冲突问题
  5. Log4j2 - java.lang.NoSuchMethodError: com.lmax.disruptor.dsl.Disruptor
  6. Python-常用模块
  7. libgdx游戏引擎开发笔记(八)SuperJumper游戏例子的讲解(篇二)---- 游戏界面跳转...
  8. 斜度符号标注_机械图纸尺寸标注规则
  9. linux 小度 驱动_小度Wifi,360随身Wifi2,小米Wifi树莓派驱动下载
  10. 团队协同作战渗透工具 CS神器Cobalt Strike
  11. 在Mac上将移动磁盘格式化为FAT32分区
  12. LeetCode之K sum problem
  13. 密码学--认证协议(Authentication Protocol)分类
  14. 【51CTO学院三周年】初识51cto到习惯打开51cto
  15. 基础篇——人工智能相关方向学习路线指引
  16. 651被远程计算机关闭,win7宽带连接提示错误651调制解调器报告了一个错误怎么办...
  17. CAS,ReentrantLock和synchronized总结
  18. Rust - Rocket框架 -基础入门
  19. undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocat
  20. 树和二叉树的知识点考前总结

热门文章

  1. 【续】深度学习软件安装(显卡为1080ti)CUDA8.0+cuDNN5.1+pytorch1.0.0
  2. 带界面测试工具开发之MQTT消息监控——MQHunter
  3. steam无法显示成人内容_显示Steam游戏的FPS
  4. 他曾经是个王者,后来。。。
  5. JAVA设计模式之--模板方法模式
  6. ios蓝牙---(最终我自己测试成功了读和写)
  7. Nightwatch 写测试用例--基于vue前端的自动化测试(三)
  8. cocos creator 单机版奔驰宝马
  9. 每日新闻丨年底5G套餐用户将达300万;科大讯飞开发通过声音识别身份
  10. arduino下载esp8266 代理失效