利用RLDP协议解决网络环路故障
2012-08-29白海
文/白海
在接入网络中,终端用户水平参差不齐,特别是在学生公寓中私接乱拉的情况比较普遍,很容易产生环路,造成局部网络瘫痪。虽然通过生成树协议能够解决部分环路的问题,但是受设备功能等其他方面制约,依然存在一些弊端。RLDP协议(Rapid Link Detection Protocol)是锐捷网络开发用于检测以太网链路故障的链路协议,利用在链路两端交换RLDP报文来实现检测。通过探测报文(Probe)和探测响应报文(Echo)两种协议报文,周期性地向linkup的端口发送本端口的Probe报文,并期待邻居端口响应该探测报文,同时也期待邻居端口也发送自己的Probe报文。如果一条链路在物理和逻辑上都是正确的,那么一个端口应该能收到邻居端口的探测响应报文以及邻居端口的探测报文,否则链路将被认定是异常的。所以快速检测出以太网设备的链路故障,包括单向链路故障、双向链路故障、环路链路故障。
网络环境及具体需求:
校园网用户通过设备Switch A、Switch B接入网络,用户pc分别和服务器分别接入Switch A、Switch B,其中Switch A与internet互联,如图1所示。由于链路中断或者用户人为造成网络环路等因素造成网络中断,通过环路检测以及单双向链路检测功能,能迅速定位并处理故障,从而及时恢复网络,降低因网络中断带来的负面影响。主要需求有:
1、检测到环路故障或者单双向链路故障,则根据故障处理方法进行故障处理;
2、shutdown-port模式下的端口出现故障,要求主动恢复其RLDP检测,并使所有RLDP检测失败的端口重新开始检测。
实现办法
在交换机等网络设备中,配置全局RLDP功能。然后分别对开启端口的RLDP功能,同时配置诊断类型和故障处理方法。对环路检测来说,直接连接用户客户端的交换机端口不能开启RLDP;对单双向链路检测来说,设备对接端口都需开启RLDP功能。若端口为路由口,则只能用warning、block 或shutdown-port故障处理方法,不支持shutdown-svi故障处理方法。在特权模式下,使用rldp reset命令使所有RLDP检测失败的端口重新开始检测。
1.开启RLDP功能。在Switch A和Switch B上开启全局RLDP功能。
SwitchA(config)#rldp enable
图1 网络拓扑
2.配置诊断类型与故障处理方法。在Switch A上开启端口RLDP,并在端口Gi0/1 上配置环路检测及故障处理方法block,在端口Gi0/2上配置单向链路检测及故障处理方法warning。RLDP是基于端口运行的,因此用户需要显式配置那些端口需要运行RLDP。另外在配置端口RLDP时,需要同时指定该端口的诊断类型以及故障处理方法。诊断类型包括:unidirection-detect(单向链路检测)、bidirectiondetect (双向链路检测)、loop-detect(环路检测)。故障处理方法包括:warning(警告)、block(关闭端口学习转发)、shutdown-port (设置端口违例)、shutdown-svi(关闭端口所在的svi)。
在Switch A交换机G0/1号端口通过RLDP检查到有环路,那么把G0/1号端口状态更改为block模式。
SwitchA(config)#interface gigabitEthernet 0/1
SwitchA(config-if)#rldp port loop-detect block
在Switch A交换机G0/2号端口通过RLDP检查到有环路,那么发出提示。如果RLDP 检测出链路错误,则会发出警告信息。用户可以通过配置log功能将这些警告信息发到log服务器,记录log的级别至少要保证可以记录3级日志。
SwitchA(config)#interface gigabitEthernet 0/2
SwitchA(config-if)#rldp port unidirection-detect warning
在Switch B 上开启端口RLDP,并在端口Gi0/4 上配置环路检测及故障处理方法block。
SwitchB(config)#interface gigabitEthernet 0/4 SwitchB(config-if)#rldp port loop-detect block
在Switch B端口Gi0/3 上配置双向链路检测及故障处理方法shutdown-port。
SwitchB(config)#interface gigabitEthernet 0/3
SwitchB(config-if)#rldp port bidirection-detect shutdown-port
3. 配置自动恢复间隔时间。当故障恢复后,要对被shutdown接口通过在全局配置模式下使用命令errdisable recovery来将接口从错误状态中恢复正常。也可以在全局配置模式下使用 errdisable recover 命令来即时或定时重新启动被rlp设置成违例的端口的RLDP检测。
SwitchA(config)#errdisable recover interval 300
测试结果及总结
通过show rldp命令能够查看设备所有端口的RLDP信息,包括rldp功能是否开启和存活时间等。由于产品特性的不同,目前只针对锐捷系列交换机,某些产品对于block的端口仍然会将报文发送给cpu,这就导致在配置诊断类型为环路检测、故障处理方法为block时,当设备检测出环路并将端口block处理后,仍会有大量的报文发送cpu,未能达到环路检测的效果,所以建议在指定环路检测的诊断类型时选择shutdown-port的故障处理方法。
RLDP故障处理方法中的block功能需要和STP互斥,如果用户配置了端口的故障处理方法为block,则建议关闭STP,否则由于STP无法识别单向链路,可能会出现STP允许端口转发,但RLDP却设置端口block的情况。如果要和STP共用,建议将错误处理方法配置为“shutdown-port”。