[概念讲解] 了解和配置单向链路检测协议 (UDLD) 功能 |
UDLD技术解释
生成树协议 (STP) 将冗余物理拓扑解析为一个无环路的树形转发拓扑。 这是通过阻塞一个或多个端口完成的。通过阻塞一个或多个端口,使转发拓扑中没有环路。STP 在 其运行过程中依赖于网桥协议数据单元 (BPDU) 的接收和传送。如果带有阻塞端口的交换机上运行 的 STP 进程停止在此端口上接收来自其上游(指定的)交换机的 BPDU,则 STP 最终将使该端口 的 STP 信息老化,并将它转换到转发状态。这将生成一个转发环路或 STP 环路。 数据包开始沿环路无限地循环,并且占用越来越多的带宽。这可能导致网络中断。 当端口接通时,交换机怎么可能停止接收 BPDU 呢?原因在于单向链路。发生以下情况时,链路被 视为单向链路: 在连接的两端,链路均已接通。当远程端接收本地端发送的数据包时,本地端不接收远程端发 送的数据包。 l 请考虑这种情况。箭头指示 STP BPDU 的流向。 了解和配置单向链路检测协议 (UDLD) 功能 ![]() 在正常运行期间,在链路 B-C 上指定了网桥 B。网桥 B 将 BPDU 向下发送到 C,而 C 将阻塞端口 。C 在该链路上发现了来自 B 的 BPDU 时,该端口会被阻塞。 现在,设想如果链路 B-C 沿 C 方向出现故障时会发生什么情况。C 将停止接收来自 B 的数据流 ,但是 B 仍然接收来自 C 的数据流。 C 将停止在链路 B-C 上接收 BPDU,并使上次使用 BPDU 接收的信息老化。这最多花费 20 秒,具 体取决于 maxAge STP 定时器。一旦该端口上的 STP 信息老化,该端口就会从 blocking state 转 换成侦听状态、识别状态,并最终转换为转发 STP 状态。这会生成一个转发环路,因为在三角形 A-B-C 中没有阻塞端口。数据包沿该路径循环(B 仍然接收来自 C 的数据包),占用额外的带宽 ,直到链路完全被填满。这使网络中断。 了解和配置单向链路检测协议 (UDLD) 功能 ![]() 可由单向链路引起的另一个可能的问题是数据流黑洞。 单向链路检测协议 (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,则该链 路会被视为单向链路。 此回声算法允许检测以下问题: l 链路两端均已接通,但是,只有一端可以接收数据包。 l 当接收和传输光纤未连接到远程端上的同一端口时发生的配线错误。 一旦 UDLD 检测到单向链路,将禁用各自的端口,并将在控制台上输出以下信息: UDLD-3-DISABLE Unidirectional link detected on port 1/2.Port disabled 由 UDLD 关闭的端口将保持禁用状态,直到手动重新启用该端口,或直到 errdisable 超时到期(如 果已配置)。 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 秒)的方式来重 建链路状态。如果仍然没有确定链路状态,将禁用该链路。 主动模式添加了对以下情况的附加检测: l 端口停止响应(一端的端口既不传输也不接收,但是链路两端均处于接通状态)。 链路在一端处于接通状态,并在另一端处于断开状态。这是光纤端口可能出现的问题。从本地 端口上拔下传输光纤后,链路仍然在本地端处于接通状态。但是,它在远程端已断开。 l 最近,为使链路两端在这些情况下都处于断开状态,光纤快速以太网硬件实施提供了远端故障指示 (FEFI) 功能。在千兆以太网上,链路协商提供了一个相似的功能。铜缆端口通常不会受这类问题的 影响,因为它们使用以太网链路脉冲监控链路。必须指出的是,在这两种情况下,由于端口之间没 有任何连接,所以不会存在任何转发环路。但是,如果链路的一端接通,而另一端断开,则可能发 生数据流黑洞。主动 UDLD 设计为可防止出现此问题。 可用性 在正常模式下,UDLD 对以下软件版本可用: 用于 Catalyst 4500/4000、5500/5000 和 6500/6000 系列交换机的 Catalyst OS 版本 5.1.1 及 更高版本 l l 用于 Catalyst 2900XL 和 3500XL 交换机的 Cisco IOS® 软件版本 12.0(5)XU 及更高版本 l 用于 Catalyst 2940 交换机的 Cisco IOS 软件版本 12.1(13) AY 及更高版本 l 用于 Catalyst 2950 交换机的 Cisco IOS 软件版本 12.0(5)WC(1) 或更高版本 l 用于 Catalyst 2955 交换机的 Cisco IOS 软件版本 12.1(12c)EA1 或更高版本 l 用于 Catalyst 2970 交换机的 Cisco IOS 软件版本 12.1(11)AX 或更高版本 l 用于 Catalyst 3550 交换机的 Cisco IOS 软件版本 12.1(4)EA1 或更高版本 l 用于 Catalyst 3560 交换机的 Cisco IOS 软件版本 12.1(19)EA1 或更高版本 l 用于 Catalyst 3750 交换机的 Cisco IOS 软件版本 12.1(11)AX 或更高版本 用于运行 Cisco IOS 系统软件的 Catalyst 6500/6000 交换机的 Cisco IOS 软件版本 12.1(2)E 及 更高版本 l 用于运行 Cisco IOS 系统软件的 Catalyst 4500/4000 交换机的 Cisco IOS 软件版本 12.1(8a)EW 及更高版本 l 从以下软件版本开始,实施了主动模式: 用于 Catalyst 4500/4000、5500/5000 和 6500/6000 系列交换机的 Catalyst OS 版本 5.4.3 及 更高版本 链接:https://pan.baidu.com/s/17VhLf4WMIW3cn_EcbBF-3g
购买主题
本主题需向作者支付 10 金币 才能浏览
|
相关帖子 |
| |
| |
| |
| |
| |
| |