张靓晶,钮大骞
(中国原子能科学研究院,北京 102413)
近年来,随着信息化的发展,单位办公自动化程度的提升,单位内部局域网中的应用、设备和终端数量越来越多,网络规模也越来越庞大。随之而来的是网络故障出现的概率上升,种类也有所增加,在用户量较多的内部网络中,最常见、影响最大的故障就是网络环路。本文将根据一个实例介绍网络环路故障的排查和解决措施。
维护人员在日常巡检交换机时发现,无法连接该局域网内核心交换机或连接时延长,随后就接到大量用户上网异常的报修。运维人员运行ping网关发现网络时断时续,无法保证网络的可用性。
为更快排查出故障,运维人员进入机房后,会使用运维专用笔记本电脑通过console口直接登录核心交换机,查看交换机运行状况和日志报警。由于中国原子能科学研究院核心交换机是华为9306交换机,汇聚交换机基本为华为5700交换机,接入交换机基本为华为2700交换机,故本文所用交换机操作命令均为华为交换机命令。故障排查过程如下:
(1)使用display log命令查看核心交换机日志,未发现任何异常。
(2)使用display CPU-usage命令查看该交换机的CPU占用率,发现CPU占用率高达89%,最高值为100%,占用CPU最多的报文为ARP包。
(3)使用display CPU-defend statistics 命令查看核心交换机上各种报文的发送和丢弃情况,其中ARPMiss报文的丢弃数量非常大。
ARP-Miss报文是设备在转发数据包时由于匹配不到对应的ARP 表项而上报的消息,即设备路由表中存在该IP报文目的IP地址对应的路由表项,但缺少该路由表项中下一跳对应的ARP表项时,就会生成ARPMiss报文。ARP-Miss报文将发送到CPU 进行处理,消耗CPU 资源[1]。
基于以上分析,此次网络故障可断定为,由于网络中产生大量ARP包形成广播风暴而导致。产生广播风暴一般有几个情况。
(1)网络环路。指数据包不断在闭环网络传输,无法到达目的地址,从而导致网络瘫痪。网络环路分为二层环路和三层环路,二层环路指在数据链路层,网络设备之间或同一台网络设备的连接线路成环,如图1所示;三层环路是指在网络层,网络路由发生意外,形成环路。常见的网络环路一般是由线路成环而形成的二层环路。
图1 二层网络环路
(2)网络中设备故障,如网络设备接口故障、水晶头损坏等,导致大量发送广播包。
(3)计算机中ARP病毒,在网络中大量发送ARP广播包进行ARP攻击[2]。
首先,工作人员使用dis cur|in route命令,查看核心交换机和防火墙中路由相关的配置,未发现环路和其他异常,排除三层环路。然后,工作人员登录杀毒系统管理端,查看病毒查杀情况,未发现异常,排除病毒引发大量ARP广播包的情况。最终,故障原因定位于线路连接错误引发的二层网络环路或者网络中设备出现故障。
工作人员经过分析锁定了故障发生的原因,上述两种原因引发的故障,均需通过排查找出故障点来解决,因此采取分区域查找的办法排查故障点。
(1)由于各楼宇均通过汇聚交换机接入核心交换机,为确定故障发生的楼宇,工作人员首先通过console口登录核心交换机,排查故障来源于哪个汇聚交换机的接入端口。使用dis int brief查看各端口的流量,筛选出input流量大的端口。Shutdown某一端口,等待30 s,查看核心交换机CPU占用率是否正常,如正常则定位故障来源端口,如仍异常,通过undo shutdown命令,恢复该端口通信,继续对其他端口重复上述操作。最终定位到故障发生的汇聚交换机,并一直使该汇聚交换机的端口保持shutdown状态,以恢复其他楼宇的网络[3]。
(2)通过console口登录故障楼宇的汇聚交换机,工作人员按上述方法逐一shutdown各楼层接入交换机的接入端口,并查看汇聚交换机的CPU占用率是否恢复正常,从而定位出故障发生的楼层接入交换机。
(3)通过console口登录故障发生的接入交换机,工作人员通过dis int brief查看端口流量,首先shutdown流量较大的端口进行排查,最终定位到故障发生在某一会议室的接入交换机,原因是工作人员将线路连接成环路了。
(4)拆除环路,恢复核心交换机上该楼宇汇聚交换机的接入端口。
为防止二层网络环路故障和其他广播风暴故障的再次发生,需优化交换机配置,通过技术手段降低此类故障的发生率。目前,主要有两种配置方法解决上述问题:一是交换机所有端口配置风暴控制功能,一旦检测到某个端口的广播包操作设置的阈值即关闭该端口;二是交换机开启STP生成树协议,将交换机上的终端接入端口配置成边缘端口。仍以华为交换机为例,具体命令如下:
(1)风暴控制配置。
在端口下配置如下命令:
storm-control broadcast min-rate 1 000 max-rate 2 000 //配置广播风暴控制
storm-control multicast min-rate 1 000 max-rate 2 000//配置组播风暴控制
storm-control unicast min-rate 1 000 max-rate 2 000//配置单播风暴控制
storm-control action block //配置风暴控制的动作为阻塞报文
storm-control enable log //配置打开风暴控制时记录日志的功能
storm-control interval 120 // 配置风暴控制的检测时间间隔
(2)STP生成树配置。
在全局下配置如下命令:
STP enable //全局下使能STP协议
将连接终端设备的交换机端口配置为边缘端口,具体命令如下:
STP edged-port enable //设置为边缘端口
STP BPDU-protection //使用BPDU保护功能,如边缘端口收到BPDU报文,该端口将关闭,需手动恢复
以上两种方法各有其优劣,风暴控制方法所用协议本身的开销较小,对交换机性能要求不高,但对于命令中min-rate和max-rate的设定值并没有明确的规定,需根据运维人员的经验或者通过设置不同的值进行测试来确定。STP生成树协议将网络中的交换设备依据优先级确定成树形结构,一旦发现环路,工作人员应立刻断掉相关端口,这样可有效避免环路的产生,但STP协议需要动态计算网络中的根桥,协议开销较大,尤其是网络中的交换设备有所变动时,对交换机性能要求较高。
另外,为减少环路产生,终端用户需要增强安全意识,不随意变动网络线路,并做好线路的标识,关闭不必要的端口。
网络环路故障或其他广播风暴故障是局域网中最为常见的网络故障之一,并且会对整个网络产生巨大影响,甚至导致网络瘫痪。本文通过一个故障实例阐述了网络环路的故障现象、故障诊断、故障排查及解决措施。本文所采取的解决措施,可以有效预防并解决网络环路和其他广播风暴导致的网络故障。