单向链路检测(UDLD) 特性用于检测光纤或铜缆以太网链路上的故障:
监视物理电缆的配置,并将通过"ErrDisabled"状态将配置不正确的端口给down掉。
避免出现单向连接,当检测到一个因为介质或端口故障导致的单向连接时,将端口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信息。
端口状态
注释
Undetermined
正在检查,或邻居未启用UDLD
Not applicable
UDLD被禁用
Shutdown
检测到单向连接,端口被禁用
Bi-directional
已检测到双向连接
邻居缓存的维护: UDLD在每个活动的接口上周期性的发送probe/echo包,以维护邻居缓存的完整性。一量收到一个hello信息,将它缓存到内存中,并保存一个通过hold-time定义的时间间隔。如果一个hold-time超时,相应的cache被清空,如果在hold-time定义的时间间隔内收到新的hello信息,则新的替代老的,并将计时器清零。
为了维护UDLD cache的完整性,一旦一个启用了UDLD的接口被禁用,或该接口上的设备被重启,该接口存在的所有缓存均会被清除,UDLD传送至少一个信息让邻居清空响应的缓存条目。
回显检测机制:回显机制构成了检测算法的基础。一旦一个UDLD设备学习到了一个新的邻居或从一个非同步状态的邻居收到一了个重新同步的请求。它将启动或重启本端的检测窗口,并发送一个完全同意的回显信息。由要求所有的邻居都必须有这个相应的行为,回显的发送者期待收到一个响应的echos。如果检测窗口结束,而没有合法的响应信息收到,这个链路被认为是单向连接。就触发链路重连接或端口shutdown进程。
阅读(3514) | 评论(1) | 转发(0) |