1、UDLD(单向链路检测协议)工作原理
         为了在生成转发环路之前检测到单向链路,Cisco 设计并实施了 UDLD 协议。UDLD 是与第 1 层 (L1) 机制一起工作以确定链路物理状态的第 2 层 (L2) 协议。
         在第 1 层中,自动协商负责物理信令和故障检测。UDLD 执行自动协商不能执行的任务,例如,检测邻居身份和关闭错误连接的端口。当同时启用自动协商和 UDLD 时,第 1 层和第 2 层检测将一起工作,以防止出现物理和逻辑单向连接以及其他协议无法正常工作的情况。
    UDLD 的工作方式为与相邻设备交换协议数据包。为了使 UDLD 发挥作用,链路上的两个设备必须支持 UDLD,并且已在各自的端口上启用了 UDLD。
         为 UDLD 配置的每个交换机端口将发送 UDLD 协议数据包,这些数据包中包含该端口自己的设备/端口 ID,以及由该端口上的 UDLD 发现的接设备/端口 ID。邻接端口应在接收自另一端的数据包中查看它们自己的设备/端口 ID(回声)。

如何判断为单向链路:如果在特定的持续时间内,该端口在传入的 UDLD 数据包中未看到其自己的设备/端口 ID,则该链路会被视为单向链路。

此回声算法允许检测以下问题:
①链路两端均已接通,但是,只有一端可以接收数据包(单通)。
②当接收和传输光纤未连接到远程端上的同一端口时发生的配线错误。

UDLD触发时的现象和如何恢复:
一旦 UDLD 检测到单向链路,将禁用各自的端口,并将在控制台上输出以下信息:
UDLD-3-DISABLE Unidirectional link detected on port 1/2.Port disabled
由 UDLD 关闭的端口将保持禁用状态,直到手动重新启用该端口,或直到 errdisable 超时到期(如果已配置)。

2、UDLD 运行模式
UDLD 能够以两种模式运行:正常和主动。

在正常模式下,如果确定端口的链路状态为双向,并且 UDLD 信息超时,UDLD 不会执行任何操作。UDLD 的端口状态标记为未确定。该端口根据其 STP 状态运行。
在主动模式下,如果确定端口的链路状态为双向,并且在该端口上的链路仍处于接通状态时,UDLD 信息超时,则 UDLD 将尝试重建端口状态。如果不成功,则该端口被置于 errdisable 状态。

当运行 UDLD 的端口在保留时间段内不接收来自邻接端口的 UDLD 数据包时,会发生 UDLD 信息老化的情况。端口的保留时间由远程端口决定,并且取决于远程端的消息间隔。消息间隔越短,保留时间就越短,检测速度也越快。UDLD 的最近实施允许配置消息间隔。

UDLD 信息可能会由于端口上的错误率较高(由某个物理问题或双工不匹配导致)而老化。这样的数据包丢弃并不意味着链路是单向的,以正常模式运行的 UDLD 不会禁用这样的链路。
为了保证适当的检测时间,能够选择正确的消息间隔非常重要。消息间隔应该足够短,以便可以在生成转发环路之前检测到单向链路,但是,它不应使交换机 CPU 过载。默认的消息间隔为 15 秒,完全能够在用默认 STP 定时器生成转发环路之前检测到单向链路。

检测时间大约等于消息间隔的三倍。
例如:T检测 | message_interval x3
对于默认的消息间隔 15 秒,检测时间为 45 秒。
它采取T STP的reconvergence(再收敛) = max_age + 2x forward_delay能再聚合在单向链路故障的情况下。使用默认定时器,需要花费 20+2x15=50 秒。
它通过选择一个适当的消息间隔推荐保持T检测 < T再收敛。

在主动模式下,一旦信息老化,UDLD 将尝试通过每秒发送一次数据包(共持续 8 秒)的方式来重建链路状态。如果仍然没有确定链路状态,将禁用该链路。

主动模式添加了对以下情况的附加检测:
①端口停止响应(一端的端口既不传输也不接收,但是链路两端均处于接通状态)。
②链路在一端处于接通状态,并在另一端处于断开状态。这是光纤端口可能出现的问题。从本地端口上拔下传输光纤后,链路仍然在本地端处于接通状态。但是,它在远程端已断开。

最近,为使链路两端在这些情况下都处于断开状态,光纤快速以太网硬件实施提供了远端故障指示(FEFI) 功能。在千兆以太网上,链路协商提供了一个相似的功能。铜缆端口通常不会受这类问题的影响,因为它们使用以太网链路脉冲监控链路。必须指出的是,在这两种情况下,由于端口之间没有任何连接,所以不会存在任何转发环路。但是,如果链路的一端接通,而另一端断开,则可能发生数据流黑洞。主动 UDLD 设计为可防止出现此问题。

3、可用性

4、配置和监控

通过使用以下命令详细说明了运行 CatOS 的 Catalyst 交换机上的 UDLD 配置。首先需要使用以下命令全局启用 UDLD(默认为禁用状态):
Vega> (enable) set udld enable     //UDLD enabled globally

发出以下命令:以验证是否已启用 UDLD
Vega> (enable) show udld

UDLD :enable

Message Interval:15 seconds

还需要对必要的端口使用以下命令启用 UDLD:
Vega> (enable) set udld enable 1/2    //UDLD enabled on port 1/2
要验证是否已对端口启用 UDLD 以及链路状态是什么状态,请发出 show udld port 命令:

Vega> (enable) show udld port

UDLD : enabled

Message Interval : 15 seconds

Port Admin Status Aggressive Mode Link State

-------- ------------ --------------- ----------------

1/1 enabled disabled undetermined

1/2 enabled disabled bidirectional
使用 set udld aggressive-mode enable <module/port> 命令,对每个端口启用主动 UDLD:
Vega> (enable) set udld aggressive-mode enable 1/2

Aggressive UDLD enabled on port 1/2.

Vega> (enable) show udld port 1/2

UDLD : enabled

Message Interval : 15 seconds

Port Admin Status Aggressive Mode Link State

-------- ------------ --------------- ----------------

1/2 enabled enabled undetermined
发出以下命令以更改消息间隔:
Vega> (enable) set udld interval 10   //UDLD message interval set to 10 seconds
间隔范围可为 7 秒到 90 秒,默认值是 15 秒。

原文链接:https://www.cisco.com/c/zh_cn/support/docs/lan-switching/spanning-tree-protocol/10591-77.html

UDLD(Unidirectional Link Detection)的更多相关文章

  1. Matlab人脸检測方法(Face Parts Detection)具体解释

    今天同学让我帮忙制作一个人脸表情识别的样本库,当中主要是对人脸进行裁剪,这里用到了一个相对较新的Matlab人脸检測方法Face Parts Detection.网上百度了一下发现关于Matlab人脸 ...

  2. 视觉显著性检测(Visual saliency detection)相关概念

    视觉显著性检测(Visual saliency detection)指通过智能算法模拟人的视觉特点,提取图像中的显著区域(即人类感兴趣的区域). 视觉注意机制(Visual Attention Mec ...

  3. 数据库炸了----我就重启了一下啊(Communications link failure)

    重启数据库后,数据库大部分时间连不上了:连续请求不会报错,请求间隔时间稍微长一点就会报错报错如图: com.mysql.cj.jdbc.exceptions.CommunicationsExcepti ...

  4. 利用图像二维熵实现视频信号丢失检测(Signal Loss Detection)

    1 图像二维熵 图像二维熵作为一种特征评价尺度能够反映出整个图像所含平均信息量的高低,熵值(H)越大则代表图像所包含的信息越多,反之熵值(H)越小,则图像包含的信息越少.对于图像信息量,可以简单地认为 ...

  5. MyEclipse8.6安装svn(非link方式)

    此方法经试验可行,暂时可以作为最佳解决方案. 本文所使用的MyEclipse版本为:8.6.1 svn的eclipse插件版本为:1.6.17,下载地址:http://subclipse.tigris ...

  6. 动态链接库(Dynamic Link Library)

    DLL INTRODUCTION A DLL is a library that contains code and data that can be used by more than one pr ...

  7. linux基础命令2(ls,cd)

    ls:显示文件内的文件和目录 文件的类型: -普通文件 d目录文件(directory) l链接文件(symbolic link file) c 字符设备文件(char) b 块设备文件(block) ...

  8. 浅谈OSI参考模型(七层模型)

    很多人说"21世纪人类最伟大的发明就是计算机":正是如此,21世纪的今天,计算机正对我们的社会发展和生活起居产生着不可估量的影响:电脑,手机都能上网随时随地了解多彩的世界.但是有时 ...

  9. Abnormal Detection(异常检测)和 Supervised Learning(有监督训练)在异常检测上的应用初探

    1. 异常检测 VS 监督学习 0x1:异常检测算法和监督学习算法的对比 总结来讲: . 在异常检测中,异常点是少之又少,大部分是正常样本,异常只是相对小概率事件 . 异常点的特征表现非常不集中,即异 ...

随机推荐

  1. access denied (2)

    除了https://www.cnblogs.com/bneglect/p/11558593.html  这里提到的以外,今天再记录一个新的原因造成这种情况的解决方法.path_info 这个算是路由模 ...

  2. Oracle的表空间、用户和表的区别和联系

    Oracle的表空间.用户和表的区别和联系 Oracle数据库是通过表空间来存储实际存在的那些表.索引.视图的, 表空间分类: 临时表空间:   用于存储数据库中单持久性模型对象,如表.索引.视图等, ...

  3. [python]Python 中 if not 用法

    在python 判断语句中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于 False not None == not False ...

  4. python正则子组匹配

    子组匹配返回找到的第一个匹配项 []表示匹配列表中的任意一个,返回找到的第一个 这样可以发现如果要查找字母的话可以使用[a-z],返回找到的第一个字母 查找数字使用[0-9],返回找到的第一个数字相当 ...

  5. vue中的金额格式0.00 和 后台返回时间格式带T调整正常格式

    <template> <div class="consumption"> <p>{{payTime|Time}}</p> <p ...

  6. c++中sort函数调用报错Expression : invalid operator <的内部原理

    当我们调用sort函数进行排序时,中的比较函数如果写成如下 bool cmp(const int &a, const int &b) { if(a!=b) return a<b; ...

  7. 502,csssprite是什么,有什么优缺点

    (百科:csssprite是一种网页图片应用处理方式,国内常叫css精灵.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢 ...

  8. 阻塞式I/0 和 非阻塞式I/O 同步异步详细介绍

    请求描述: `阻塞/非阻塞` 和 `同步/异步` 不是一个概念.举几个简单的例子. 当进程调用一个进行IO操作的API时(比如read函数),在数据没有到达前,read 会挂起,进程会卡住.在数据读取 ...

  9. HL7解析器

    最近做了关于医疗的项目,用了HL7协议,以下是解析的代码: HL7解析器: using System; using System.Text; using System.Xml; using Syste ...

  10. 《爬虫学习》(一)(HTTP协议)

    Http请求: 1.在浏览器中发送一个http请求的过程: 2.url详解: URL是Uniform Resource Locator的简写,统一资源定位符. 一个URL由以下几部分组成 scheme ...