单向链路检测(UDLD)
单向链路检测(UDLD)用于检测和禁用光纤接口上由错误的光纤连线或者端口故障所导致的单相链路
     UDLD协议使通过光纤或铜线(例如:第5类电缆)以太网线缆连接的设备可以监控线缆的物理配置,
检查是否存在单向链路。检测到单向链路时,UDLD协议会关闭受影响的端口并向用户发出警报。udld port命令浅谈
udld是一种第2层协议,它与第1层机制协同工作来确定链路的物理状态。在第1层中,自动协商功能将照顾 到物理信令和故障监测。udld能够执行自动协商不能执行的任务,例如监测邻居身份和关闭连接不当的端口。当同时启用自动协商和udld的时候,第1层和 第2层监测将协同工作来防止物理或逻辑上的单向连接,并且还可以其他协议的故障。      
udld有两种模式:通常模式和广泛模式。通常 模式是默认的,当监测吉比特接口出现了故障,它会监测到单向性链路,防止出现问题。如果某个端口连接正确没有故障,但只是传输是单向的,udld不会监测 到单向链路,因为第1层机制没有问题,它也不会非法这个端口。      
广泛模式下,当出现一下情况时,它会监测到单向链路,它将非法端口:      
* 一个光纤吉比特端口或双绞线链路中,其中一个端口不能发送或接收数据包      
* 一个光纤吉比特端口或双绞线链路中,其中一个端口断了而其他端口是活动      
* 一个光纤线缆的一头连接错误      
   积极模式udld是udld的一种变种,它能够提供额外的好处。在启用积极模式udld的情况下,当端口停止接收udld数据包的时候,udld将尝试重 新建立与邻居的连接。但如果尝试次数超过8次之后,那么端口状态就将变更为“error-disable”状态,它将有效地禁用端口。      
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信息。      
1. 邻居数据库维护(neighbor database maintenance)      
udld 在每个活动的接口上周期性的发送probe/echo包,以维护邻居缓存的完整性。一端收到一个hello信息,将它缓存到内存中,并保存一个通过 hold-time定义的时间间隔。如果一个hold-time超时,相应的cache被清空,如果在hold-time定义的时间间隔内收到新的 hello信息,则新的替代老的,并将计时器清零。      
为了维护udld cache的完整性,一旦一个启用了udld的接口被禁用,或该接口上的设备被重启,该接口存在的所有缓存均会被清除,udld传送至少一个信息让邻居清空响应的缓存条目。      
2. 回显监测机制      
       回显机制构成了检测算法的基础。一旦一个udld设备学习到了一个新的邻居或从一个非同步状态的邻居收到一了个重新同步的请求。它将启动或重启本端的检测 窗口,并发送一个完全同意的回显信息。由要求所有的邻居都必须有这个相应的行为,回显的发送者期待收到一个响应的echos。如果检测窗口结束,而没有合 法的响应信息收到,这个链路被认为是单向连接。就触发链路重连接或端口shutdown进程。      
在启用udld的情况下,交换机将定期地向邻居发送udld协议数据包,并且期望在预定计时器到期之前接收到回应的数据包。如果计时器到期,那么交换机将确定该链路是单向链路,并且关闭该端口。
 
 
配置过程:      
默认配置:      
参数                 默认值      
------------------------------------------      
udld全局配置         未启动      
在光纤上的udld         未启动      
在铜揽线上的udld 未启动      
udld的aggressive模式 未启动      
全局配置:      
1) 进入全局模式  configure terminal      
2) 启用udld      
     udld [aggressive|enable|message time 秒数]      
      aggressive:启动aggressive模式      
      enable:启动通常模式      
      message time:消息间隔时间,取值为1-90秒      
3) 验证结果      
     show udld      
switch#show udld      
……      
interface fa0/23      
---      
port enable administrative configuration setting: disabled      
port enable operational state: disabled      
current bidirectional state: unknown      
interface fa0/24      
---      
port enable administrative configuration setting: disabled      
port enable operational state: disabled      
current bidirectional state: unknown