产生背景:
在实际组网中,有时会出现一种特殊的现象——单向链路(即单通)。所谓单向链路是指本端设备可以通过链路层收到对端设备发送的报文,但对端设备不能收到本端设备的报文。单向链路会引起一系列问题,比如生成树拓扑中存在环路等。
以光纤连接为例,单向链路可分为两种类型:一种是光纤交叉相连,另一种是一条光纤未连接或一条光纤断路。如下图所示,是正确的光纤连接与上述两种类型单向连接的对比示意。
DLDP(Device Link Detection Protocol,设备链路检测协议)可以监控光纤或铜质双绞线的链路状态。如果发现单向链路存在,DLDP会根据用户配置,自动关闭或通知用户手工关闭相关端口,以防止网络问题的发生。
DLDP是链路层协议,它与物理层协议协同工作来监控设备的链路状态。物理层的自动协商机制进行物理信号和故障的检测;DLDP进行对端设备的识别、单向链路的识别和关闭不可达端口等工作。二者协同工作,可以检测和关闭物理和逻辑的单向连接。如果链路两端在物理层都能独立正常工作,DLDP会在链路层检测这些链路是否正确连接、两端是否可以正确的交互报文。这种检测不能通过物理层的自动协商机制实现。
DLDP报文格式:
DLDP协议运行在数据链路层。
DLDP协议状态:
DLDP协议通过与对方交互协议报文(DLDPDU)来识别对端设备、检测单向链路。DLDP协议有七种状态:Initial(初始化)、Inactive(未连通)、Active(活动)、Advertisement(通告)、Probe(探测)、Disable(单通)和DelayDown(延迟down)状态。
DLDP协议工作模式:
加强模式的目的在于检测网络黑洞,防止出现一端up而另一端down的情况。有些设备在端口配置为强制速率和强制全双工模式时,会出现如下图所示的情况,此时Device B的端口虽已down掉,但由于普通的链路层协议无法检测出来,因此Device A的端口还处于up状态。在加强模式下,Device A的端口在邻居老化定时器超时后会进行主动探测,如果在Echo等待定时器超时仍未收到Device B的端口返回的Echo报文,Device A的端口就将进入Disable状态。此时由于Device B的端口的物理状态为down,因此其DLDP状态为Inactive。
DLDP认证方式:
为了防止网络攻击和恶意探测,用户可以在端口上配置DLDP报文认证方式,分为下列三种:
-
不认证方式:发送DLDP报文一方将认证字字段置为全0,认证类型字段置为0;接收DLDP报文一方要将报文中的认证字和认证类型同本端配置进行比较,如果不一致,则丢弃报文。
-
明文认证方式:发送DLDP报文一方将认证字字段置为用户配置的明文认证密码,认证类型字段置为1;接收DLDP报文一方要将报文中的认证字和认证类型同本端配置进行比较,如果不一致,则丢弃报文。
20 MD5认证方式:发送DLDP报文一方将认证字字段置为用户配置的密码采用MD5算法加密后的摘要,认证类型字段置为2;接收DLDP报文一方要将报文中的认证字和认证类型分别和本端配置的密码用MD5算法加密后的摘要以及本端认证类型进行比较,如果不一致,则丢弃报文。
DLDP工作过程:
-
如果使能了DLDP的端口链路状态为up,DLDP会向对端发送DLDP报文,同时分析处理对端设备发送过来的DLDP报文。DLDP处在不同的状态时发送的报文类型不同。
当从其它DLDP状态(不包括Inactive和Disable)迁移到Initial状态时,DLDP将发送Flush报文。 -
DLDP对接收到的报文进行如下分析和处理:
• 在开启了DLDP认证的环境下,对报文进行认证。如果报文通不过认证,丢弃该报文。
• 报文中的通告时间间隔如果和本设备的不一致,丢弃该报文。
• 对DLDP报文进行处理。
-
如果DLDP没有收到邻居的Echo应答报文,会做如下处理:
整理资料来源:华为hedex文档,新华三技术文档