DLDP的原理和基本配置
定义
设备链路检测协议DLDP(Device Link Detection Protocol)用来监控光纤或铜质双绞线(例如超五类双绞线)的链路状态。如果发现单向链路存在,DLDP协议会根据用户配置,自动关闭或通知用户手工关闭相关接口,以防止网络问题的发生。
先决条件
本文档以华为S5720系列交换机产品为例介绍DLDP的基本原理。 不同产品和版本的实施可能存在差异。 请参阅产品文档的特定版本。
在本文档中,公共IP地址可用于功能介绍,仅供参考,除非另有说明。
问题定位
DLDP使能前链路就是单通的情况
如下图所示,连接两台设备的光纤交叉连接(连接接口的两条线分别表示光纤的Tx线和Rx线)。
图1 光纤交叉连接组网图
DLDP使能后,处于Up状态的四个接口都进入Active状态,并向外发送带RSY标记的Advertisement报文通告自己的存在并请求邻居的信息。下面以Interface1为例,介绍一下单向链路的检测过程:
Interface1收到Interface4发来的带RSY标记的Advertisement报文,就认为发现了新邻居,为该邻居启动Echo等待定时器和建立表项,同时启动此表项的老化定时器。随后,Interface1将进入Probe状态,向外发送Probe报文探测Interface4的存在。
由于Interface4不能收到Interface1的Probe报文,因此也不能回复Echo报文给Interface1,Interface1上的Echo等待定时器超时后,接口进入Disable(单通)状态。
其他几个接口的检测过程与Interface1相同,最后四个接口都会进入Disable状态。
DLDP使能后链路由双通变为单通的情况
如下图所示,设备之间通过光纤相连(图中的两条线分别表示光纤的Tx线和Rx线)。
图2 单邻居正常组网图
在Tx线和Rx线都正常的情况下,双通邻居的确立过程如下:
DLDP使能后,处于Up状态的接口Interface1进入Active状态,向外发送带RSY标记的Advertisement报文通告自己的存在并请求邻居的信息。
Interface2收到带RSY标记的Advertisement报文,就认为发现了新邻居,为该邻居启动Echo等待定时器和建立表项,同时启动此表项的老化定时器。此时,接口将进入Probe状态,向外发送Probe报文。
Interface1收到Probe报文后,建立该邻居表项,并进入Probe状态向对端回复Echo报文。
Interface2收到Echo报文后,由于本机上已经存在该邻居表项,并且报文中携带的邻居信息和本机保存的信息相同,就将该邻居标志为双通。Interface2的DLDP状态由Probe切换为Advertisement,并定时向外发送普通Advertisement报文。在Advertisement状态下,每次收到已知邻居发来的报文,都会重置该邻居的老化定时器的值。
DLDP使能后,接口Interface2发送报文、以及在Interface1上建立邻居的过程与步骤1~步骤4类似。
最后,Interface1和Interface2均认为对方为自己的双通邻居并处于Advertisement状态。
Interface1和Interface2双通后,如果Interface2的Rx线突然发生故障(如下图所示),无法收到信号,Interface2将进入Inactive状态,不再收发任何报文。但是Interface2的Tx线还能发送信号,Interface1能收到信号,因此Interface1此时还是Up状态。Interface1在邻居老化定时器超时前收不到邻居Interface2发送的DLDP报文,根据配置的工作模式不同,后续的单向链路的检测过程有所不同:
图3 单邻居单通组网图
在普通模式下,Interface1在邻居老化定时器超时后,将删除该邻居表项,进入Active状态,同时发送一个带RSY标记的Advertisement报文以请求邻居信息。Interface1处于Active状态5秒后将进入Advertisement状态并一直处于该状态,没有邻居。Interface2一直处于Inactive状态。在这种情况下,普通模式无法检测出单通。
在加强模式下,Interface1在邻居老化定时器超时后,将启用加强定时器和Echo等待定时器,并向邻居发送Probe报文。由于Interface1的Tx线已经断了,等到Echo等待定时器超时,Interface1仍收不到邻居Interface2应答本端的Echo报文,Interface1则进入Disable(单通)状态,发送Disable报文通知对端本端已处于单通状态。同时,Interface1将删除该邻居表项,并启动恢复探测定时器,以检测链路是否恢复。在此过程中,Interface2一直处于Inactive状态。
在加强模式下,接口Interface2已经物理Down,但对端却不能检测到此变化。为了避免Interface1需要在邻居老化定时器超时后才能察觉到与Interface2连接异常,DLDP设置了快速Link Down通知机制。当物理层检测到接口Interface2物理Down时,将向Interface1发送Link Down报文,Interface1收到Link Down报文,直接进入Disable状态。
快速Link Down通知机制只有在加强模式下才会启用,在普通模式不会启用。
DLDP协议状态
DLDP协议通过与对方交互协议报文(DLDPDU)来识别对端设备、检测单向链路。DLDP协议有七种状态:Initial(初始化)、Inactive(未连通)、Active(活动)、Advertisement(通告)、Probe(探测)、Disable(单通)和DelayDown(延迟down)状态。
图4 DLDP报文协商时状态迁移图
状态 |
说明 |
---|---|
Initial |
DLDP协议未使能时的初始化状态。 |
Inactive |
DLDP协议已使能,但是链路Down时所处的状态。 |
Active |
DLDP协议已使能且链路Up,或者清空邻居表项后所处的状态。 |
Advertisement |
所有邻居双向连通或者处于Active状态超过5秒后进入的状态,这是一种没有发现单向链路时的比较稳定的状态。 |
Probe |
发送探测报文检测链路是否为单向链路。该状态启动Probe发送定时器,为每个需要探测的邻居启动一个Echo等待定时器。 |
Disable |
加强模式下,DLDP协议检测到单通链路,则无法发送光信号的一端接口变为Disable状态。 |
DelayDown |
当DLDP状态处于Active状态、Advertisement状态或Probe状态时,如果收到接口Down事件,不会立即删除邻居、进入Inactive状态,而是先进入临时的DelayDown状态。在该状态下,DLDP邻居信息仍然被保留,且系统只响应接口Up事件。 |
DLDP协议工作模式
DLDP协议有两种工作模式:普通模式和加强模式。当邻居表老化或检测到单向链接时,可以选择这些模式。
DLDP协议工作模式 |
邻居表老化 |
检测单向链路 |
---|---|---|
普通模式 |
老化邻居表时,不主动探测邻居是否存在,邻居老化定时器超时后,直接老化该邻居表项。 |
系统只能识别一种类型的单向链路:光纤交叉连接。 |
加强模式 |
老化邻居表时,主动探测邻居是否存在,邻居老化定时器超时后,启用加强定时器和Echo等待定时器,Echo等待定时器超时后,将本端状态置为单通,并删除该邻居表项。 |
系统能识别两种类型的单向链路:一种是光纤交叉连接,另一种是一条光纤未连接或一条光纤断路。 说明:
在探测后一种类型的单向链路时,需要将接口配置为强制速率和强制全双工模式,否则该协议不起作用。 |
DLDP工作过程
DLDP对接收到的报文按如下顺序进行分析和处理:
- 在认证模式下,对报文进行认证。如果报文通不过认证,DLDP丢弃该报文。
- 报文中的通告时间间隔(Interval)如果和本设备的不一致,DLDP丢弃报文。
- 对DLDP报文进行处理。
其中详细的单向链路监测机制将在本章的单邻居单向链路监测机制和多邻居单向链路监测机制中讲到,如何处理单向链路将在本章发现单向链路后的处理机制中讲到,故障排除后链路恢复过程将在链路自动恢复机制中讲到。
配置DLDP功能
前置任务
在配置DLDP之前,需完成以下任务:
两端接口工作在非自协商模式下。(如果直连的两端接口上同时配置自协商和DLDP功能,当一侧单向链路出现故障时,因为配置了自协商,所以会将接口Down。)
使能DLDP功能
光纤和铜质双绞线两端的设备必须都支持DLDP功能才可以实现单向链路检测。
DLDP支持在二层以太网接口和三层以太网接口上配置。缺省情况下,以太网接口处于二层模式,如果需要在三层以太网接口上进行配置,需要将接口切换到三层模式。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令dldp enable,使能全局DLDP。
缺省情况下,全局DLDP功能和接口DLDP功能都处于未使能状态。
- 执行命令interface interface-type interface-number,进入接口视图。
说明:
DLDP不能在逻辑接口上配置。
- 执行命令dldp enable,使能接口的DLDP功能。
(可选)配置DLDP的工作模式
当DLDP协议工作在普通模式下,系统只能识别一种类型的单向链路:光纤交叉连接。
当DLDP协议工作在加强模式下,系统能识别两种类型的单向链路:一种是光纤交叉连接,另一种是一条光纤未连接或一条光纤断路。在探测后一种类型的单向链路时,需要将接口配置为强制速率和强制全双工模式,否则该协议不起作用。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令dldp work-mode { enhance | normal },配置DLDP工作模式。
缺省情况下,DLDP的工作模式为enhance,即加强模式。
检查DLDP的配置结果
使用display dldp [ interface interface-type interface-number ]命令查看DLDP的配置信息和邻居信息表项。