设为首页收藏本站language 语言切换
查看: 2642|回复: 1
收起左侧

[分享] UDLD(UniDirectional Link Detection单向链路监测)和积极模式UDLD

[复制链接]
发表于 2014-4-24 17:20:00 | 显示全部楼层 |阅读模式
UDLD(UniDirectional Link Detection单向链路监测)和积极模式UDLD
   当链路保持“UP”状态的时候,但接口却没有传递流量,UDLD协议能够监测到交换机端口上的单向链路的情形。这种情形通常会出现在以下几种情况之中:GBIC(吉比特接口转换器)或接口出现故障、软件故障、硬件失效或其他异常表现。UDLD有助于防止在上述几种失效中发生灾难性的事件,当监测到有单向链路,它将停止端口发送信息。
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
   
接口配置:
1) 进入接口模式  interface 接口
2) 配置UDLD
     udld port [aggressive]
       aggressive:设置为aggressive模式,如果不加这个参数就是通常模式
3) 验证结果
     show udld 接口号
案例:
Sw(config)#interface f0/23
Sw(config-if)#udld port aggressive
Sw#show udld f0/23
Interface Fa0/23
---
Port enable administrative configuration setting: Enabled / in aggressive mode
Port enable operational state: Enabled / in aggressive mode
Current bidirectional state: Unknown
Current operational state: Advertisement
Message interval: 7
Time out interval: 5
No neighbor cache information stored
发表于 2014-12-1 19:43:09 | 显示全部楼层
太棒了,感谢楼主
沙发 2014-12-1 19:43:09 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-26 20:52 , Processed in 0.066490 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表