1、故障现象
交换机端口学习不到或者错误学习到MAC地址。
2、故障可能原因
1) 数据丢包流量没有经过该二层接口;
2) STP拓扑震荡频繁清除MAC地址;
3) MAC地址学习能力被关闭或被配置MAC过滤;
4) 接口属性配置错误;
5) 端口开启安全功能;
6) 软件缺陷;
7) 硬件故障;
3、故障处理步骤
Switch#show int fastEthernet
0/1 counters
Interface : Fa0/1
5 minute input rate : 0 bits/sec, 0 packets/sec //5分钟的平均速率
5 minute output rate : 0
bits/sec, 0 packets/sec
InOctets
: 68023600 进入的包总数
InUcastPkts
: 92842 进入单播包个数
InMulticastPkts : 36700 进入组播包个数
InBroadcastPkts : 75636 进入广播包个数
OutOctets
: 3630373 出去的总包数
OutUcastPkts
: 32053 出去单播包个数
OutMulticastPkts : 1059 出去组播包个数
OutBroadcastPkts : 13231 出去广播包个数
[1] Undersize
packets : 0
[2] Oversize
packets : 0
[3]
collisions
: 0
[4]
Fragments
: 0
[5] Jabbers
: 0
[6] CRC alignment
errors : 0
[7]
AlignmentErrors
: 0
[8]
FCSErrors
: 0
[9] dropped
packet events (due to lack of resources): 0
[10] packets
received of length (in octets):
64:119136, 65-127: 75769, 128-255:
12663,
256-511: 3149, 512-1023: 1955,
1024-1518: 38849
[1] 长度小于64字节,校验和正确的报文:和Fragment帧对应,区别在于校验和。
[2] 帧超长且校验和正确的报文:和Jabber帧对应,区别在于校验和。
[3] 冲突帧:多站点同时试图发送信息导致冲突,单双工遇到较多。
[4] 长度小于64字节,校验和错误的报文:和Undersize帧对应,区别在于校验和。
[5] 帧超长且校验和错误的报文:和Oversize帧对应,区别在于校验和。
[6] 非超常帧且校验和错误的报文:和FCS相同,CRC是发送方本地进行校验,对端收到后重新进行计算,然后比对FCS字段。
[7] 接收的帧有重组错误:没有通过帧校验且没有边界字节结束(非整字节)的帧,bit丢失。
[8] 帧的内容改变或者丢失:帧校验FCS错误
[9] 丢弃报文统计:总和
[10] 根据长度统计接收的报文
Ruijie#show mac-address-learning
Gi0/1 learning ability: enable
如果是enable则为开启。如果是disable 表示关闭
步骤4:确认是否有配置对应的静态MAC地址或过滤MAC地址。如果是,则不会学习到
可以通过抓包来看,收到的报文的源mac是否为广播地址和组播mac地址,交换机是无法学习组播及广播的MAC地址的。
判断该地址是否为组播mac地址的方式:
1、如果存在环路,会导致MAC地址出现漂移,可以多次show
mac-address-table address xxxx.xxxx.xxxx查看mac地址是否有出现mac地址一会儿在一个端口学习到,一会儿在另外一个端口学习到的情况,如果有表示出现了环路。解除环路后故障消失则结束定位。
2、多次show
int count summary(可以clear count后多次查看),观察是否有接口的广播/组播报文远大于单播报文,若有这样的接口,关注该接口下是否存在攻击或者环路的情况;
3、STP
震荡(如收到TC报文)会清 mac地址,可以通过show spanning-tree查看
多show
spanning-tree几次,如果toplogychanges 这个值很大并且增长的很快,并且timesincetopologychange时间值很小,表示出现了STP震荡。
端口安全功能可以显示端口的MAC学习个数,检查是否由于端口学习mac地址数量已经达到了上限
#show
port-security address
如果MAC地址学习已经达到上限,修订端口安全的地址限制个数,命令如下:
Ruijie(config-if)#
switchport port-security maximum value
配置完端口安全地址的个数后,如果故障消失,则结束定位。
在设备上执行#show
mac-address-table count确认当前还可以学习的MAC地址个数,如果还可以学习的MAC地址个数为0,说明MAC地址已经学满。
如果某接口学习到的MAC远远大于接口所连接的网络实际运行的主机数,说明存在MAC扫描攻击,先找到攻击源排除攻击。
如果存在攻击,排除攻击后故障消失,则结束定位。
可以修改下PC终端的MAC地址看交换机是否能够学习到,如果能里面学习到,然后再改回原来的MAC,看是否又无法学习了,如果是,那么判断该MAC对交换机来说发生了HASH冲突。
端口mac地址学习错误和端口mac地址学习不到的情况,在交换机的相应端口做RX镜像,确认报文有没有到达交换机,以及报文的具体信息,封装字段是否存在异常等。
注:进行镜像的PC或者测试仪请确保能够识别带tag的报文,具体操作方法可以参考“附录--》附录4:如何设置电脑抓带vlan
tag报文”
4、故障信息搜集
deb support
show task
exit
步骤2:配置端口镜像进行rx方向抓包,例如:
注:进行镜像的PC或者测试仪请确保能够识别带tag的报文,具体操作方法可以参考“附录--》附录4:如何设置电脑抓带vlan
tag报文”
步骤3:进行底层信息收集
注意:底层信息风险性较高,收集不当可能导致设备死机,需要重启交换机才能恢复,请联系4008111000工程师协助收集
以下命令适用于S2600、S26E/P、S29E、S29S、S3250E、S37E、S5750、S5750P、S5750S、S5750L交换机
1)查看地址硬件表项
sd
sh console on
sh ps
sh show c
sh dump chg l2_user_entry
sh dump chg vlan
sh dump chg port
sh dump chg vlan_profile
sh l2 show
sh l2 show
sh l2 show
sh console off
sh l2 show
2)进行debug相关信息调试
注意:DEBUG操作可能存在风险(最坏情况可能需要重启设备才能恢复),需要客户知晓风险并同意后才能收集,建议在低峰期操作!(若是核心设备,必须更加慎重评估)
debug ssp matbl all
该调试信息收集5分钟左右,期间要重现故障现象,比如接上pc,却学习不到该pc的mac地址等
关闭该调试信息
no
debug ssp matbl all