华三、中兴设备BGP/MPLS VPN互通故障分析
一、故障现象描述
SWA下接的视频监控终端与SWB下接的视频服务器如经过SR8812时无法通讯,走另一条线路不经过SR8812后正常通讯。
二、网络拓朴

三、故障分析
1、在VPN内通过ping方式进行测试
通过调整SR8812与NE40之间COST值,改变报文的路径。当SWA不经过SR8812时,与SWB可以互通。SWA经过SR8812时,与SWC可以互通,与SWB不通。说明SR8812作为P设备时不正常,作为PE设备时正常。
2、在SWA交换机开启debug,在SWB处抓包进行分析。
在SWA开启中debug ip icmp,在SWB处进行端口镜像抓包,从SWB ping SWA。
通过SWA debug显示可以得出,SWB PING报文已经到达SWA,并且SWA也回报文。但回包到达NE40时,NE40 发现TTL为0了,此时NE40丢弃此包,并给SWB回一个报文告诉SWB到SWA不可达。在SWB抓包显示有发出数据包,无回数据。由此可知,不通的原因为TTL为0了。
3、TTL变0可能有环路,查找环路
TTL变成0一般情况为环路造成的,通过dis bgp vpnv4 vpn-instance XXXX routing-table label 查看私网路由表,下一跳为中兴GER08,正常。dis mpls lsp 查看公网标签情况,dis mpls lsp vpn-instance XXXX verbose查看私网标签情况。未发现我们设备有环路,同样中兴也没有发现他们设备有环路。分别在中兴GER08和NE40增加VPN地址段(192.168.99.0和192.168.100.0)进行测试,还是同样的结果。说明不是IP地址重复等原因引起的。
4、分析TTL在什么时候变为0
由于SR8808与NE40情况差不多,并且SR8808与SR8812通过以太网口连接,方便抓包,所以通过在SR8812做端口镜像抓取SR8812与SR8808互联口数据,在SWA开启debug ip icmp,在SR8808开启debug ip icmp,分析TTL为0的原因。
从SR8808上ping SWA。从SWA的debug显示SWA收到包,也回包。但从SR8808的debug显示发送了包,没收到回包。
通过查看抓取的数据包,SR8808 PING包发给SR8812时,IP报文、MPLS外层标签和内层标签的TTL都为255。回包是MPLS内层标签TTL为0,IP TTL为255,因SR8812是倒数第二跳,所以MPLS外层标签已被弹出。因SR8808收到的MPLS内层标签为0,所以SR8808丢弃这个包。
通过以上分析可以得出,SR8808在收到回包时MPLS内层标签已经为0。
5、通过在SR8812与NE80互联口进行抓包,确定MPLS内层标签TTL为0与SR8812是否有关。
MPLS内层标签TTL为什么会为0,正常情况下,数据包过来时在对端的PE设备上(GER08)封装上内层标签后,在P设备之间这个内层标签不会改变,等到倒数第二跳的P设备去掉外层标签,此时才会进行内层标签的交换。
在SR8812与NE80互联口进行抓包。当10.147.37.129 ping 10.147.1.129通时,内层标签TTL为255,外层标签TTL为252。当10.147.37.130 ping 10.147.1.129不通,内层标签为0,外层标签TTL为251。
从以上可以得出MPLS内层标签为TTL 0,在NE80发给SR8812时MPLS内层标签已经为0。与SR8812没有关系。
通过协调,让华为在NE80上抓包,NE80收到的MPLS内层标签同样为0。中兴的POS口无法抓包。
6、为什么不经过SR8812,走另一条线路没有问题。
在RFC中关于MPLS标签TTL和IP TTL有两种关系:
1、管道模式:MPLS各层标签TTL、IP TTL均是独立的,弹出、压入均不会相互复制。
2、统一模式:压入时IP TTL复制至MPLS内层标签TTL,MPLS内层标签的TTL复制至外层标签的TTL;弹出时MPLS外层标签的TTL复制至内层标签的TTL,内层标签的TTL复制至IP TTL。
SR8812采用的是管道模式,当MPLS外层标签在弹出时,不把外层标签的TTL复制到内层标签的TTL。华为采用的是统一模式,当MPLS外层标签在弹出时,把外层标签的TTL复制到内层标签的TTL。这个时候如果内层标签TTL为0就不会有影响,因为这个0被外层标签的TTL值所代替。
四、分析结论:
SWA下接的视频监控终端与SWB下接的视频服务器如经过SR8812时无法通讯,原因为SR8812收到的MPLS内层标签TTL为0导致不通。而MPLS内层标签TTL为0是因中兴路由器在压入MPLS内层标签时TTL为0了。
五、改进建议:
如果只是为了解决此次问题,可以通过升级SR8812版本改为统一模式来解决。但是以后如果中兴和华三之间有大量需求互通,建议通过解决问题的源头,中兴路由器在压入MPLS内层标签时TTL为0的问题。因为如果不解决源头问题,那就需要升级大量的SR88。因SR88升级的版本与现使用版本跨度大,主控板和业务板的bootrom都要升级,所以也存在一定的风险。并且升级时最好现场要有板卡备件,以防升级失败导致业务中断。
最终用户决定让中兴解决MPLS内层标签TTL为0的问题,目前问题已经解决,网络正常运行。
2016年01月
本期文章
-
卷首语
-
公司动态
-
行业聚焦
-
产品推荐
-
案例介绍
-
经验共享
-
服务明星
-
培训天地