发送不带VLAN的ARP报文导致AC主备倒换时和S93对接丢包

发布时间:  2017-03-21 浏览次数:  185 下载次数:  0
问题描述


AP网关在AC上,S9306对AP的VLAN 512做二层透传操作; 

S9306A与S9306B互连商品为XG1/0/1,S9306-A连接AP使用Gi3/0/1,连接AC用XG2/0/1 

故障现象:AC和AP设备接入S9306的12*10GE单板 

AC连接S9306接口和两台S9306互连口在同一单板上时,AC主备倒换不丢包; 

AC连接S9306接口与两台S9306互连接口处于不同槽位单板时,AC主备倒换丢包;


告警信息
无。
处理过程

1、通过抓包,找出丢包位置; 

2、查看MAC地址表项,通过表项确认故障发生时的数据转发方式; 

3、流量统计,查出丢包原因;

解决方案

1、分别在AP的上行口和AC的下行口抓包,笔记本可以抓取到 倒换过程中的ARP广播包; 

2、故障发生时,查看S9306A和S9306B两台交换机的MAC地址表项,发现当AC倒换完成后,连接原有主用AC的接口仍能学习到AC的MAC地址,正常情况下,MAC地址应该从S9306A和S9306B之间的互连端口XG1/0/1学习到; 

3、主备倒换过程中,在S9306-B连接AC的端口XG2/0/1做流量统计,匹配条件为VLAN 512内的所有数据包,发现没有统计流量,怀疑是S9306A将AC发送给AP的ARP广播包丢弃。 

4、重新更改流量统计条件为在S9306B交换机的XG2/0/1端口下的所有ARP广播包,发现可以统计到,但是发送过来的ARP广播包不带VLAN标记,由于两台S9306设备连接AC的端口为TRUNK口,可以说明,AC发生主备倒换后,备用AC-2发送的ARP广播包不带AP的管理VLAN,这种实现方式存在问题,所以导致交换机将VLAN ID为1的广播包丢弃,由于笔记本抓包不区分VLAN ,所以一开始通过笔记本可以抓到AC发往AP的ARP广播包。 

5、由于两台S9306本次所使用单板为12*10GE单板,该单板为小容量MAC地址表项的单板,为“A”类单板,在S9306的V1R3版本中,A类单板刷新MAC地址的方式为基于“流”刷新,即S9306-A的2槽位为“A”类单板,AC倒换前,连接AC的XG2/0/1单板可以学习到AC的MAC,AC倒换之后,由于S9306-B将切换后主用AC发送的MAC广播包过滤掉了,所以在S9306A的2槽位单板上,无法学习到新的MAC地址刷新报文,所以无法更新该单板下的MAC地址表。在这种情况下S9306-A连接AP的Gi3/0/1端口学习到的MAC地址目标单板为2槽位,而不是S9306互联的XG1/0/1端口。 

6、AC发生倒换后,AP也会发送ARP广播包去从AC拿地址,所以Gi3/0/1端口会发送VLAN512的广播包,透传至S9306-B所连接的AC设备,AC也会正常响应该ARP请求报文,但是响应报文为单播报文,所以S9306-A的2槽位仍然无法感知到MAC地址已经刷新。在这种情况下,S9306-A的6槽位学习AC的MAC地址不断的在2槽位和1槽位单板间不断刷新,从而导致丢包。 

7、通过以上处理过程可以分析出:AC主备倒换后发送的ARP广播包错误,导致S9306A无法正常更新MAC地址,同时S9306A的A类单板刷新MAC地址方式不完美,导致其它单板已经刷新MAC地址的情况下,”A“类单板无法刷新MAC地址表项。 

8、在V1R3版本中提供一条命令,可以将MAC地址学习方式更换为全局刷新MAC地址,,命令如下: 

[S9303_223.67]global-mac-learning enable slot ? 

INTEGER<1-3,5> Existing slot number 

9、然后在S9306A和S9306B两台交换机上配置完该命令后,测试正常。


建议与总结

总结:A类单板不同版本的MAC同步机制不一样,V1R1V1R2为软件全局刷新MAC地址方式,V1R3默认为基于刷新,可通过命令修改为全局刷新。 

END