UDLD 和 BFD 有什么区别?

网络工程 思科 杜松 UDLD bfd
2021-07-20 06:44:36

我的理解是 UDLD 几乎是 layer2 的 BFD。意思是在控制平面和转发平面分离的路由器架构中,如果在控制平面上运行 BFD 可以检测控制平面故障,但 UDLD 不能用于此目的。现在当我们在分布式模式下使用 BFD 时,转发平面负责处理 bfd 数据包,它会与 UDLD 不同吗?将 UDLD 和 BFD 配置在一起不会是多余的吗?

2个回答

UDLD 和 BFD 之间实际上存在相当大的差异。

UDLD 主要设计用于防止直接连接的设备之间的第 2 层桥接环路,在这种情况下,交换机会将端口置于转发状态,例如在 STP 的情况下,当它由于单向链路而停止接收 BPDU 时。为此,它从端口发送回声 PDU 并侦听回复。然而,在其他情况下,使用 UDLD 也有好处。

BFD 用于检测不一定直接连接的路由器之间的双向通信丢失,以便在邻居故障的情况下通过触发重新收敛而不考虑 EGP 计时器来促进更快的路由重新收敛。BFD 是基于会话的,例如可以用于物理接口、隧道、AToM xconnect 等。

UDLD 会将接口置于 err-disabled 关闭状态,而 BFD 则不会。因此,BFD 不会阻止 STP 循环的形成,也不会取代 UDLD。

有关 UDLD 的更多信息:http : //www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/10591-77.html

有关 BFD 的更多信息:http : //www.cisco.com/c/en/us/td/docs/ios/12_0s/feature/guide/fs_bfd.html

UDLD 和 BFD 有什么区别?

虽然 UDLD 和 BFD 都旨在检测设备之间的问题,但 UDLD 是 L2 机制,BFD 是 L3 机制。

UDLD 旨在检测单个 L2 链路上的故障。

BFD 旨在检测两个 L3 对等体之间的故障。这可以跨越多个 L2 链路。

这将我们引向您的下一个问题。

将 UDLD 和 BFD 配置在一起不会是多余的吗?

在某些情况下是的,但在其他情况下不是。您必须评估您的情况以确定这一点,请记住,一个正在尝试检测 L2 故障,而另一个正在尝试检测 L3 故障。

让我们看一个具体的例子。考虑同一网络上的两个路由器(R1 和 R2)通过光纤连接到交换机,每个路由器在两个端口(R1/P1 等)上使用链路聚合。

有一天,单股(R1/P1 的传输股)出现故障。R1/P1 仍然能够从交换机接收信息,因此可以相信链路已启动。因为 R1 可以相信 R1/P1 已启动,它会将流量发送到该端口上的交换机,当交换机认为它已关闭时,流量将丢失。

如果 BFD 会话流量在 R1/P2 上承载,BFD 可能不会检测到问题,而 UDLD 会检测到 L2 故障。