Print

某局点S6860转发vrrp报文不通问题

2天前 发表

组网及说明


现场172.22.62.151172.22.62.152两台服务器组vrrpvrrp keepalive报文通过接入6860,网关以及接入6300三组设备进行交互。

问题描述

现场反馈S6860下联服务器之间vrrp keepalive报文交互超时,出现了双主的问题。

过程分析

1.由于vrrp keepalive报文途经了三组设备,需要首先确定报文丢在了哪里,指导现场对vrrp keepalive报文进行流统,流统结果如下:

1172.22.62.152发给172.22.62.151VRRP通告报文正常;

2172.22.62.151发给172.22.62.152VRRP通告报文在到达接入6860后并未继续转发给网关设备,在6860出方向和网关入方向均未统计到VRRP通告报文。

2.通过第一步操作可以判断vrrp通告报文丢在了接入6860上,vrrp通告报文是组播报文,在二层接入设备上广播泛洪出去,且现场单播流量并未受到影响,因此判断6860对于广播报文的转发存在问题,设备对于单播和广播的转发处理过程是不一样的,对广播报文的转发涉及到vlan广播域。需要通过底层命令查看S6860上行端口加入广播域的情况。

3.首先probe视图下通过debug port mapping查看 slot 1 slot 2 上行口的底层端口对应索引编号如下:

FGE2/0/49       0    49    xe48    no         no      0xd2      66  up       N/A      N/A

FGE2/0/50       0    53    xe49    no         no      0xd7      66  up       N/A      N/A

FGE1/0/49       0    49    xe48    no         no      0x31      64  up       N/A      N/A

FGE1/0/50       0    53    xe49    no         no      0x36      64  up       N/A      N/A

4.然后分别查看 slot 1 slot 2上行口 底层对应的广播vlan 域如下:

Slot1的查看情况:

[11:22:38][LG.EDUZT.PO.AS.X06-probe]bcm s 1  c  0 d/chg/vlan/62

[11:22:38]VLAN.ipipe0[62]: <VLAN_PROFILE_PTR=3,VALID=1,STG=1,PORT_BITMAP=0x00220023ffffffffffff,FID_ID=0x3e,>

[11:22:38]

[11:22:38]

[11:23:15][LG.EDUZT.PO.AS.X06-probe]bcm s 1 c  0  pbmp/0x00220023ffffffffffff

[11:23:15]    0x0000000000000000000000000000000000000000000000220023ffffffffffff ==> cpu,xe0-xe49,hg  slot1vlan62的广播域包含4950

Slot2的查看情况:

[11:17:42][LG.EDUZT.PO.AS.X06-probe]bcm s 2  c  0 d/chg/vlan/62

[11:17:42]VLAN.ipipe0[62]: <VLAN_PROFILE_PTR=1,VALID=1,STG=1,PORT_BITMAP=0x00220001ffffffffffff,FID_ID=0x3e,>

[11:17:42]

[11:17:42]

[11:17:42][LG.EDUZT.PO.AS.X06-probe]

[11:17:55][LG.EDUZT.PO.AS.X06-probe]bcm s 2 c  0  pbmp/0x00220001ffffffffffff

[11:17:55]    0x0000000000000000000000000000000000000000000000220001ffffffffffff ==> cpu,xe0-xe47,hg slot2vlan62的广播域不包含49 50

5.根据上一步分析可知slot2的上行口并未加入vlan62的广播域,流统结果显示vrrp通告报文是从1/0/9上来的,但是对于广播转发的报文是不遵循本框优转的,仍然会进行hash,所以当vrrp通告报文hashslot2的上行口时,由于slot2的上行口并未加入vlan62的广播域,就无法被广播出去,从而被丢弃。

6.slot2的上行口为什么没有加入广播域呢?是如下的已知问题导致的,该问题在R2702H17补丁解决。

·           问题现象:S6860设备后6个端口报文转发不通。

·           问题产生条件:

a.   S6860设备,前4810G端口以AccessTrunk形式加入一个VLAN,后640G端口中某一个或者多个以Trunk形式加入到同一个VLAN

b.   保存配置文件重启

·           说明:对于已出现上述问题的设备,安装补丁后不能自动修复,需要重新配置端口以Trunk形式加入VLAN,或者安装补丁后执行install commit命令并保存配置重启设备。

7.但是现场目前已经是H21补丁了,这个补丁也包含了这个已知问题,为什么还会发生呢?通过梳理日志发现这个问题是在现场打完H21补丁后出现的,现场之前加载的是H13补丁,由于后面触发了parity error的问题加载H21彻底解决,而在加载H21补丁之前需要先重启修复parity error,于是客户带着H13补丁对设备进行了重启 ,并在重启前保存了配置,这样就触发了上面的已知问题,而H21补丁是在触发问题的情况下才加载的,无法自动修复,需要手动修复,因此就造成了加载完H21补丁后出问题的假象。

解决方法

本次问题的解决方案需要重新配置端口加入相应vlan,具体如下:

1.  找个业务低峰期,关闭slot 2 49 50 口,先将业务全部切换到slot 1上。

2.  然后undo 49 50  vlan相关配置重新下发。