引言:遇到交换机丢包类故障问题,一般都需要抓包分析,而多数情况因现场条件受限,导致抓包不易实施。笔者通过交换机流量统计功能,可以快速定位产生丢包故障的交换机端口,大大提高处理故障的效率,并根据丢包故障问题从二层和三层两个方面找出交换机丢包故障排除方法。
遇到交换机丢包类故障问题,一般都需要抓包分析,而多数情况因现场条件受限导致抓包不易实施。笔者通过交换机流量统计功能,可以快速定位产生丢包故障的交换机端口,可以大大提高处理故障的效率,有效提高网络管理人员对于丢包问题的定位效率,缩短问题解决时间,并根据丢包故障问题从二层和三层两个方面找出交换机丢包故障排除方法。
图1 流量路径示意图
图2 配置举例图
对交换机而言,解决最困难的故障就是丢包类故障,引发交换机端口丢包的原因有很多,主要原因一般是由于物理故障、配置错误、病毒木马、物理连接不紧密等原因造成,丢包故障呈现时断时续、未中断速率慢等现象。可以使用交换机流量统计功能快速定位交换机丢包故障端口或该端口的物理链路,因为流量统计抓取的是设备底层的统计,精确而快速,可有效分析数据丢包情况。
如图1所示,假设从计算机PC1 至计算机 PC2丢包。针对交换机Ge0接口而言,报文源地址IP1至目的地址IP2是inbound方向,相反,回程报文IP2至IP1是outbound方向;而针对交换机Ge1接口而言,报文源地址IP1至目的地址IP2是outbound方向,相反,回程报文IP2至IP1是inbound方向。
在报文流转端口部署针对故障IP的入方向和出方向的流量统计策略,可以判断数据包是丢在了链路上还是交换机转发异常导致丢包,通过交换机出入端口数据包的丢包数据和数据包转发数量比较,可以把故障范围精确到交换机端口或链路上。
文中所有配置均以华为交换机S7700为例,如图2,根据流量转发路径,在流量的入接口和出接口分别配置流量统计。配置举例如下。
[S7700]acl number 3000
[S7700-acl-adv-3000]rule 0 permit icmp source 11.11.11.11 0 destination 22.22.22.22 0
[S7700-acl-adv-3000]rule 5 permit icmp source 22.22.22.22 0 destination 11.11.11.11 0
[S7700-acl-adv-3000]quit
[S7700]traffic classifier huawei
[S7700-classifierhuawei]if-match acl 3000
[S7700-classifierhuawei]quit
[S7700]traffic behavior huawei
[S7700-behaviorhuawei]statistic enable
[S7700-behaviorhuawei]quit
[S7700]traffic policy huawei
[S7700-trafficpolicyhuawei]classifier huawei behavior huawei
[S7700-trafficpolicyhuawei]quit
[S7700]interface GigabitEthernet 0/0/1
[ S 7 7 0 0 -GigabitEthernet0/0/1 ]traffic-policy huawei inbound
[ S 7 7 0 0 -GigabitEthernet0/0/1 ]traffic-policy huawei outbound
[S7700] interface GigabitEthernet 0/0/2
[ S 7 7 0 0 -GigabitEthernet0/0/2 ]traffic-policy huawei inbound
[ S 7 7 0 0 -GigabitEthernet0/0/2 ]traffic-policy huawei outbound
[ S 7 7 0 0 -GigabitEthernet0/0/1]display traffic policy statistics interface GigabitEthernet 0/0/1 inbound
[ S 7 7 0 0 -GigabitEthernet0/0/1]display traffic policy statistics interface GigabitEthernet 0/0/1 outbound
事例中,通过查看流量统计结果,可以很快定位丢包故障交换机端口或链路。 在找到交换机丢包故障端口或链路后,可按下列步骤排除二层丢包故障。 丢包类故障,最常见的故障一般都是由于接口或接线连接不紧密造成的,对故障接口或链路的连接接口和连接线进行检查和紧固,主要查看接口是否连接紧密,连接线是否破损等。此外,进入交换机的配置模式,使 用display interface GigabitEthernet X/X/X(X/X/X为交换机端口号)检查出入端口状态、速率、双工模式是否正确,相互连接的两个设备的端口工作模式必须完全一致,且链路无CRC错误报文计数等。 一般交换机都会使用STP、RSTP、MSTP、RRPP等协议,在这些协议发挥作用时,可能会造成有的端口处于阻塞或转发状态,当两种状态互相转换时,会造成数据包丢包。 使用dislay vlan X(X为VLAN编号),确认本交换机出入端口的VLAN相同,因二层转发只依赖于VLAN+MAC。使用dislay mac-address命令,确认流量的目的MAC地址是否正确学习在出接口,同时需要关注是否存在MAC地址在多个端口产生漂移的情况。 使用display interface GigabitEthernet X/X/X(X/X/X为交换机端口号)命令查看问题端口信息。查看端口出方向是否存在Discard计数持续增加情况,如果有则说明该接口存在流量突发拥塞情况。出现拥塞一般是数据流量超过交换机负荷或网络中有广播风暴。 在找到交换机丢包故障端口或链路后,可按下列步骤排除三层丢包故障。 1.按二层丢包故障的步骤先排除由二层故障引发的故障。 2.查看源地址和目标地址之间的路由。如果源地址和目标地址之间无法Ping通或路由条目不稳定等原因,也会造成数据包丢包。 使 用display ip routing-table X.X.X.X(X.X.X.X为目标IP地址)命令可以查看到目标IP地址的路由是否存在或正常。检查路由对应的下一跳是否可达,可以Ping下一跳的IP地址来进行测试确认。如果Ping不通双方或一方处于交换机直连网段,可以使用命令来display arp | include X.X.X.X(X.X.X.X为目标IP地址)检查这些设备的ARP是否已经在交换机上正确学习。 遇到丢包问题可以使用流量统计的方法快速方便的定位故障设备端口所在,相关端口的流量是否在合理范围内,以及是否有连续的、错误吧统计增加情况,可以大大加快处理问题的速度以及缩小故障范围。找到故障端口或链路后依据故障产生的可能原因逐一确认排除。二层丢包故障排除
1.检查接口与链路
2.检查交换机端口工作状态是否正常
3.确保交换机配置正常
4.查看交换机出入端口是否存在拥塞
三层丢包故障排除
经验总结