UDLD(Unidirectional Link Detection)

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

转载于:https://www.cnblogs.com/MomentsLee/p/10162855.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 阻塞和非阻塞IO 实验

目录阻塞和非阻塞IO阻塞和非阻塞简介等待队列轮询1、select 函数2、poll 函数3、epoll 函数Linux 驱动下的poll 操作函数阻塞IO 实验硬件原理图分析实验程序编写运行测试非阻塞IO 实验硬件原理图分析实验程序编写运行测试阻塞和非阻塞IO 是Linux 驱动开发里面很常见的两种设备访…

【转】BMP图像文件格式

5.1 BMP图像文件格式 BMP图像文件格式是游戏中常用的图像资源文件格式&#xff0c;BMP图像文件起源早&#xff0c;程序员对BMP都比较熟悉&#xff0c;再加上BMP格式简单&#xff0c;读取和写入非常容易实现&#xff0c;所以无论Windows的还是Driect X&#xff0c;都有支持读取…

异步通知实验(信号)

目录异步通知异步通知简介驱动中的信号处理应用程序对异步通知的处理硬件原理图分析实验程序编写修改设备树文件程序编写编写测试APP运行测试编译驱动程序和测试APP运行测试在前面使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的&#xff0c;对于非阻塞方式…

事务与分布式事务

很多同学在开发中已经不自觉的接触了很多事务相关的代码&#xff08;尤其是在数据库操作中&#xff09;&#xff0c;但是事务究竟是做什么的&#xff0c;有没有必要必须这么操作&#xff1f; 一段典型的代码如下&#xff1a; db.beginTransaction(); try {// do some CRUD oper…

platform 设备驱动实验

目录Linux 驱动的分离与分层驱动的分隔与分离驱动的分层platform 平台驱动模型简介platform 总线platform 驱动platform 设备硬件原理图分析试验程序编写platform 设备与驱动程序编写测试APP 编写54.5 运行测试编译驱动程序和测试APP运行测试我们在前面几章编写的设备驱动都非常…

linux 恢复数据

对于很多 Linux 的用户来说&#xff0c;可能有一个问题一直都非常头疼&#xff1a;对于那些不小心删除的数据来说&#xff0c;怎样才能恢复出来呢&#xff1f;大家知道&#xff0c;在 Windows 系统上&#xff0c;回收站中保存了最近使用资源管理器时删除的文件。即便是对于那些…

设备树下的platform 驱动编写

目录设备树下的platform 驱动简介硬件原理图分析实验程序编写修改设备树文件platform 驱动程序编写编写测试APP运行测试编译驱动程序和测试APP运行测试上一章我们详细的讲解了Linux 下的驱动分离与分层&#xff0c;以及总线、设备和驱动这样的驱动框架。基于总线、设备和驱动这…

回归测试——游戏版本发布前的最后关口

回归测试在软件开发中很常用&#xff0c;在游戏测试中也是很重要的一个环节&#xff0c;它起着保障作用。可能各个公司游戏项目的回归测试流程不大相同&#xff0c;我就拿我参与的游戏项目来举例。在一个迭代的过程中&#xff0c;最后收尾动作就是回归测试&#xff0c;简单说就…

Linux 自带的LED 灯驱动实验

目录Linux 内核自带LED 驱动使能Linux 内核自带LED 驱动简介LED 灯驱动框架分析module_platform_driver 函数简析gpio_led_probe 函数简析设备树节点编写运行测试前面我们都是自己编写LED 灯驱动&#xff0c;其实像LED 灯这样非常基础的设备驱动&#xff0c;Linux 内核已经集成…

虚拟硬盘VHD的程式化挂载方式

2019独角兽企业重金招聘Python工程师标准>>> 微软推出的虚拟硬盘vhd同vmdk,qcow2等一样&#xff0c;是一种磁盘镜像格式。磁盘镜像一般多用于虚拟化计算&#xff0c;但微软支持将Win7/Win8/Win2012等直接安装进vhd文件中&#xff0c;并且不通过任何虚拟机&#xff0…

Cs231n课堂内容记录-Lecture 5 卷积神经网络介绍

Lecture 5 CNN 课堂笔记参见&#xff1a;https://zhuanlan.zhihu.com/p/22038289?referintelligentunit 不错的总结笔记&#xff1a;https://blog.csdn.net/sugar_girl/article/details/79108709 1.卷积核步长公式&#xff1a;&#xff08;N-F2*padding&#xff09;/stride1ne…

Linux MISC 驱动实验

目录MISC 设备驱动简介硬件原理图分析实验程序编写修改设备树beep 驱动程序编写编写测试APP运行测试编译驱动程序和测试APP运行测试misc 的意思是混合、杂项的&#xff0c;因此MISC 驱动也叫做杂项驱动&#xff0c;也就是当我们板子上的某些外设无法进行分类的时候就可以使用MI…

PHP的session阻塞问题

2019独角兽企业重金招聘Python工程师标准>>> 通过phpinfo()可以看到php支持的session存储方式有&#xff1a; 可以看出session的存储方式有文件、用户自定义、memcache存储方式 在文件的存储方式用存在session阻塞的问题&#xff0c;该种阻塞存在于同一个浏览器执行…

Linux INPUT 子系统实验

目录input 子系统input 子系统简input 驱动编写流程input_event 结构体硬件原理图分析实验程序编写修改设备树文件按键input 驱动程序编写编写测试APP运行测试编译驱动程序和测试APP运行测试Linux 自带按键驱动程序的使用自带按键驱动程序源码简析自带按键驱动程序的使用按键、…

django项目中settings.py文件中路径设置问题

2019独角兽企业重金招聘Python工程师标准>>> 首先&#xff0c;__file__表示当前模块的名字。 将下列代码写入os.path.py文件中&#xff0c;存放在桌面上 """ import os print __file__ """ win R 开启一个 CMD&#xff0c;使用pytho…

Linux LCD 驱动实验

目录Linux 下LCD 驱动简析1 Framebuffer 设备LCD 驱动简析硬件原理图分析LCD 驱动程序编写运行测试LCD 屏幕基本测试设置LCD 作为终端控制台LCD 背光调节从LCD自动关闭解决方法LCD 是很常用的一个外设&#xff0c;在裸机篇中我们讲解了如何编写LCD 裸机驱动&#xff0c;在Linux…

一个老兵的linux学习和面试经验分享

特别说明&#xff1a;本文为约9个月前老男孩linux培训内部师兄给师弟的经验分享&#xff0c;经过该同学同意&#xff0c;特此分享给所有博友。学习和面试经验分享大家好&#xff0c;非常高兴能在这里给大家分享学习和面试的经验&#xff0c;同时也非常感谢老男孩老师给我这次机…

Linux RTC 驱动实验

目录Linux 内核RTC 驱动简介I.MX6U 内部RTC 驱动分析RTC 时间查看与设置RTC 也就是实时时钟&#xff0c;用于记录当前系统时间&#xff0c;对于Linux 系统而言时间是非常重要的&#xff0c;就和我们使用Windows 电脑或手机查看时间一样&#xff0c;我们在使用Linux 设备的时候也…

opencv及相机相关6

下午调试了下&#xff0c;现在可以实现在arm板上打开相机并实时显示&#xff0c;但是人脸检测暂时还没有实现&#xff0c;猜想是因为opencv的原因。明天接着调试。今天整明白一件事&#xff0c;首先在linux系统下&#xff0c;g编译器当cpp文件较少时&#xff0c;编译程序时需要…