前言
非线性编辑网络其系统的稳定性、安全性是非常重要的,它直接影响到节目的生产制作与播出。我台从2005年开始引进了索贝公司的非线性编辑系统,承担了全台的节目编辑工作,保证节目正常编辑的情况下,在最大限度里给与编辑们以很大的自由,但保证非编系统的稳定和安全,保证素材和编辑信息的正常使用,成为网络技术人员至关重要的课题,下面我们重点讨论一个很典型的网络环路问题
我们大家都知道,网络是最怕环路的。当在一个中大型的网络中出现环路特别是Layer 2环路是,所产生的广播风暴会在瞬间十几秒内淹没整个网络。因此对于网管来说,如何应对网络环路造成的风险是一个最大的难题。
基于这个考虑,本文结合实际工作经验,提出一种切实可行的办法。
UDLD
1.单向链路检测Overview:
UDLD协议可以对网络介质为光纤或者utp的网络端口通过检测是否有多余链路存在的方式来监控是否有环路现象。当有一个多余链路存在时,UDLD会关闭受影响的Lan端口并警告用户。UDLD会导致很多问题,诸如STP环路等。
单向链路检测(UDLD)特性用于检测光纤或铜缆以太网链路上的故障:
(1)监视物理电缆的配置,并将通过"ErrDisabled"状态将配置不正确的端口给down掉。
(2)避免出现单向连接,当检测到一个因为介质或端口故障导致的单向连接时,将端口shutdown并标识为"ErrDisabled"状态,同时产生一个syslog信息。
由于生成树具有单向的BPDU流,对这种故障相当敏感。在一个端口突然不能发送BPDUs的时候,引起邻居的STP状态改变,导致邻居的"blocking"端口切换到"forwarding"状态。由于原forwarding端口仍然可以接收包,从而引起环路。
●运行机制
UDLD是一个工作在LLC层之上的二层协议,使用01-00-0c-cc-cc-cc为目的mac地址,SNAP HDLC的协议类似为0x0111,当和第一层的FEFI、自动协商机制一起运行时,可以验证一条链路在物理层和逻辑链路层的完整性。
UDLD 可以完成一些FEFI和自动协商不可能提供的功能,如检测并缓存邻居的信息、down掉任何一个错误配置的端口,检查非点对点的逻辑端口的让的故障和失效等。
UDLD使用两个基本机制:学习邻居的信息并将信息保存在一个本地cache中,一但检测到一个新的邻居或一个邻居请求重新同步cache时,就发送一系列的UDLD probe/echo(hello)包。
UDLD在所有端口上持续的发送probe/echo信息,当在端口上收到一个UDLD响应信息时触发一个"detection-phase"和验证进程。如果所有的有效条件都达满足(端口是双向连接,并且线缆正确),这个端口被启用。否则,该端口被禁用,并触发如下所示的syslog信息:
"UDLD-3-DISABLE: Unidirectional link detected on port mod/port. Port disabled"()
"UDLD-4-ONEWAYPATH: A unidirectional link from port mod/port to port mod/port of device [chars] was detected"
一但一个链路建立起来并被标志为双向的,UDLD会继续每隔15秒发送一个probe/echo信息。
●邻居缓存的维护: UDLD在每个活动的接口上周期性的发送probe/echo包,以维护邻居缓存的完整性。一量收到一个hello信息,将它缓存到内存中,并保存一个通过hold-time定义的时间间隔。如果一个hold-time超时,相应的cache被清空,如果在hold-time定义的时间间隔内收到新的hello信息,则新的替代老的,并将计时器清零。
为了维护UDLD cache的完整性,一旦一个启用了UDLD的接口被禁用,或该接口上的设备被重启,该接口存在的所有缓存均会被清除,UDLD传送至少一个信息让邻居清空响应的缓存条目。
●回显检测机制:回显机制构成了检测算法的基础。一旦一个UDLD设备学习到了一个新的邻居或从一个非同步状态的邻居收到一了个重新同步的请求。它将启动或重启本端的检测窗口,并发送一个完全同意的回显信息。由要求所有的邻居都必须有这个相应的行为,回显的发送者期待收到一个响应的echo。如果检测窗口结束,而没有合法的响应信息收到,这个链路被认为是单向连接。就触发链路重连接或端口shutdown进程。
2.实际应用
结合实际网络环境,得出如下网络测试报告
环境1:
 |
环境描述:两台3026照上图接法连入园区网
IOS版本:3750为12.2(25) ipservice版本。
测试过程:
1:产生环路
先将区域主干交换机的上联端口断掉,以免影响到园区网络运行。
将3026(关掉STP)用一根网线连起来。如下图所示:
此时,两台3026交换机的上联端口狂闪,同时,3750的F1/0/1口端口的广播包和多播迅速上升,CPU Load 也由未环路时的6%上升到现在的99%。
I:在3750的F1/0/1和添加udld port两条命令后。当环路产生时,显著的发现区域主干交换机的F1/0/1口在经历了大约10秒钟的广播包和多播包的冲击后,出现了将F1/0/1端口出于err-disable状态。
此后区域主干交换机的CPU负载基本维持在5%左右。
环路被终止在3750的f1/0/1口。
环境2:
如下图所示:
环境说明:在3750下添加一台2924作为接入设备。两台3026均接入2924。
3750IOS为12.2(25)ipservice
2924版本为12.0(5.0)
1:产生环路
先断开3750上连园区的网络
如下图所示:
此时2924的f0/2口上的广播包和多播包迅速增加,cpu利用率从30%上升到89%。此时3750上的cpu利用率迅速上升。
环路产生。
2:进行测试
在2924上的f0/2口上添加udld port .