12-DLDP操作
本章节下载: 12-DLDP操作 (202.21 KB)
目 录
在实际组网中,有时会出现一种特殊的现象——单向链路(即单通)。所谓单向链路是指:本端设备可以通过链路层收到对端设备发送的报文,但对端设备不能收到本端设备的报文。单向链路会引起一系列问题,比如生成树拓扑环路等。
出现单向链路的原因有两种:
l 一种是光纤交叉相连,如图1-1所示;
l 一种是一条光纤未连接或一条光纤断路,如图1-2所示(图中的空心线表示一条光纤未连接或一条光纤断路的情况)。
DLDP(Device Link Detection Protocol,设备连接检测协议)可以监控光纤或铜质双绞线(如超五类双绞线)的链路状态。如果发现单向链路存在,DLDP会根据用户配置,自动关闭或通知用户手工关闭相关端口,以防止网络问题的发生。
DLDP协议有如下特点:
l DLDP是链路层协议,它与物理层协议协同工作来监控设备的链路状态:物理层的自动协商机制进行物理信号和故障的检测;DLDP进行对端设备的识别、单向链路的识别和关闭不可达端口等工作。
l 如果两端链路在物理层都能独立正常工作,DLDP会在链路层检测这些链路是否正确连接、两端是否可以正确的交互报文(这种检测不能通过自动协商机制实现)。
l 当端口工作在强制全双工模式和强制速率下时,此时若出现图1-2所示的情况,则DLDP可以检测出单通故障。
l 反之,当端口的双工模式和速率均处于自动协商时,此时若出现图1-2所示的情况,即使启用了DLDP也无法检测出单通,设备将认为两端端口均处于Down状态。
DLDP协议主要通过收发下述类型的报文来检测链路状态。
表1-1 DLDP报文类型
DLDP报文类型 |
功能 |
Advertisement报文 |
发送Advertisement报文的目的是告诉邻居自己的存在,该报文中只有本端口的信息,不需要对方回应报文 |
RSY-Advertisement报文(下文称为RSY报文) |
Advertisement报文的一种,报文中RSY FLAG标志置位。当本端口没有邻居信息或者邻居信息老化超时后发送,目的是请求同步邻居的信息 |
Flush-Advertisement报文(下文中称为Flush报文) |
Advertisement报文的一种,报文中Flush FLAG标志置位。报文中不携带任何邻居信息,只带本端口信息,用于通知邻居删除本端信息 |
Probe报文 |
用于探测邻居的存在性,需要对方回应Echo报文。报文中携带本端口信息,可以选择携带邻居信息也可以不携带。如果不携带邻居信息,表示对所有的邻居进行探测,如果携带邻居信息,则表示仅对指定邻居进行探测 |
Echo报文 |
邻居对本端发送的Probe报文的应答,携带了应答端口的端口信息和保存的邻居信息。收到Echo报文时,端口需要检查Echo报文中携带的邻居信息是否和本端口信息一致。如果相同,则认为本端口和该邻居之间是双向连通的 |
Disable报文 |
Disable状态通知报文,目的是知会对方,本端进入了Disable状态。Disable报文中不带邻居信息,只带本端口信息。当端口检测到单向链路进入Disable状态时,向邻居发送Disable报文。收到Disable报文的端口也即刻进入Disable状态 |
LinkDown报文 |
用于知会单向链路的紧急情况(本端口Down但对端Up)。该报文中不带邻居信息,只带本端口信息。在某些情况下,一端的物理层能够发现链路出现了异常,例如端口光纤的Rx线中断,但Tx线完好,此时本端设备认为该端口物理Down,但对端则由于物理层能检测Rx信号,认为端口的工作状态正常。该情况称为单向链路的紧急情况。 为了避免对端需要等待邻居老化定时器超时(3倍的Advertisement Interval)才能发现链路异常,DLDP立即向对方发送LinkDown报文。对端收到该报文后,如果工作在加强模式下,则迁移到DISABLE状态,端口设为DLDP Down(自动关闭模式)或者向用户告警(手动关闭模式) |
Recover Probe报文 |
用于端口的自动恢复机制,检测链路是否恢复。该报文不携带邻居信息,只携带本端口信息,需要对端以自动恢复应答报文(Recover Echo)作为响应。处于DLDP Down的端口每2秒发送一次 |
Recover Echo报文 |
对Recover Probe报文的应答,用于端口的自动恢复机制。发送Recover Probe的端口收到Recover Echo报文后,如果发现RecoverEcho报文中的邻居信息与本端口相同,则认为链路已经恢复双向连通 |
(1) 如果开启了DLDP的端口链路状态为Up,DLDP会向对端发送DLDP报文,同时分析处理对端设备发送过来的DLDP报文。DLDP处在不同的状态时发送的报文类型不同。
表1-2 DLDP发送报文类型
DLDP状态 |
发送报文类型 |
Active |
Advertisement报文(包括带有RSY标记和不带RSY标记的) |
Advertisement |
Advertisement报文 |
Probe |
Probe报文 |
(2) DLDP对接收到的报文进行如下分析和处理:
l 在认证模式下,对报文进行认证。如果报文通不过认证,DLDP丢弃该报文。
l 对DLDP报文进行处理。
表1-3 对接收到的DLDP报文的处理过程
收到报文类型 |
处理过程 |
||||
Advertisement报文 |
取出邻居信息 |
如果本机上没有该邻居表项,则建立该邻居表项,启动此表项的Entry老化定时器,并把DLDP状态切换到Probe状态 |
|||
如果本机上存在该邻居表项,则刷新此表项的Entry老化定时器 |
|||||
Flush报文 |
删除本机上该邻居表项 |
||||
Probe报文 |
向对端发送包含邻居信息和自己信息的Echo报文 |
如果本机上没有该邻居,则建立该邻居表 |
|||
如果本机上有该邻居的表项,则刷新此表项的Entry老化定时器 |
|||||
Echo报文 |
检查本机状态是否为Probe状态 |
否 |
丢弃该Echo报文 |
||
是 |
检查报文中携带的邻居信息是否和本机相同 |
不同 |
丢弃该Echo报文 |
||
相同 |
将该邻居标志位置为双向连通(two way) |
||||
如果所有邻居状态都为双向连通,则DLDP状态由Probe切换为Advertisement,同时将Echo定时器置为0 |
(3) 如果DLDP没有收到邻居的Echo应答报文,会做如下处理:
表1-4 未收到邻居Echo应答报文时的处理过程
未收到邻居Echo报文 |
处理过程 |
普通模式下,Echo等待定时器超时还未收到 |
将DLDP状态转到Disable,输出日志和跟踪信息,向邻居发送Flush报文,并根据用户配置的DLDP Down模式,手动或者自动关闭掉本端端口。发送RSY信息,同时删除该邻居表项 |
加强模式下,加强定时器超时还未收到 |
DLDP协议有如下状态:Initial(初始化)、Inactive(未连通)、Active(活动)、Advertisement(通告)、Probe(探测)、Disable(单通)、DelayDown状态。
表1-5 DLDP协议状态说明
状态 |
说明 |
Initial |
DLDP协议未开启时的初始化状态 |
Inactive |
DLDP协议已开启,但是链路Down时所处的状态 |
Active |
DLDP协议已开启且链路Up,或者清空邻居表项后所处的状态 |
Advertisement |
所有邻居双向连通(two way)或者处于Active状态超过5秒后进入的状态,这是一种没有发现单向链路时的比较稳定的状态 |
Probe |
发送探测报文检测链路是否为单向链路。该状态启动Probe发送定时器,为每个需要探测的邻居启动一个Echo等待定时器 |
Disable |
DLDP协议检测到单向链路,或在加强模式下邻居消失情况下的状态。此时DLDP协议只接受和发送Recover Probe 和Recover Echo报文 |
DelayDown |
当DLDP状态处于Active状态、Advertisement状态或Probe状态时,如果收到端口Down事件,不会立即删除邻居并进入Inactive状态,而是先进入临时的DelayDown状态 在该状态下,DLDP邻居信息仍然被保留,同时启动DelayDown定时器;DelayDown定时器超时后,DLDP邻居信息将被删除 |
DLDP协议工作过程中需要用到如下定时器:
表1-6 DLDP协议中的定时器
定时器 |
说明 |
Advertisement发送定时器 |
发送Advertisement报文的时间间隔,可以通过命令行进行配置 默认状态下,Advertisement发送定时器的时间间隔为5秒 |
Probe发送定时器 |
Probe发送定时器的时间间隔为0.5秒,在Probe状态下每秒发送2个探测报文 |
Echo等待定时器 |
DLDP状态切换到Probe时启用,超时时间为10秒 如果Echo等待定时器超时,还未收到来自此邻居应答本端的Echo报文,则将本端状态置为单通,并将状态机转到Disable状态,输出日志和跟踪信息,发送Flush报文,并根据用户配置的DLDP Down模式,手动或者自动关闭掉本端端口,同时删除该邻居表项 |
Entry老化定时器 |
每个新邻居加入时都要建立邻居表项,并启用相应的Entry老化定时器 每次收到邻居报文时都会刷新邻居表项,并更新相应的Entry老化定时器 普通模式下:如果Entry老化定时器超时,还未收到邻居发来的报文,则发送带有RSY标记的Advertisement报文,同时删除该邻居表项 加强模式下:如果Entry老化定时器超时,还未收到邻居发来的报文,则启用加强定时器 Entry老化定时器的时间间隔是Advertisement定时器的3倍 |
加强定时器 |
在加强模式下:当Entry老化定时器超时,还未收到邻居发来的报文,则对该邻居启用加强定时器。加强定时器的超时时间为10秒 加强定时器启用后,每秒向相应的邻居发送1个Probe报文,连续发送8个 如果加强定时器超时,还未收到来自此邻居应答本端的Echo报文,则将此本端状态置为单通,并将状态机转到Disable状态,输出日志和跟踪信息,发送Flush报文,并根据用户配置的DLDP Down模式,手动或者自动关闭掉本端端口,同时删除该邻居表项 |
DelayDown定时器 |
当DLDP状态处于Active状态、Advertisement状态或Probe状态时,如果收到端口Down事件,不会立即删除邻居、进入Inactive状态,而是先进入临时的DelayDown状态 在该状态下,DLDP邻居信息仍然被保留,同时启动DelayDown定时器(定时器长度可配置,取值范围为1~5秒) 在该状态下,系统只响应端口Up事件 如果该定时器超时后,系统还没有收到端口Up事件,则删除DLDP邻居信息并进入Inactive状态;如果在定时器超时前收到端口Up事件,则自动返回到原来的DLDP状态 |
DLDP协议有两种工作模式:普通模式、加强模式。
表1-7 DLDP协议工作模式与邻居表项老化
DLDP协议工作模式 |
老化邻居表时是否主动探测邻居的存在 |
老化邻居表时是否启用Entry老化定时器 |
Entry老化定时器超时时,是否启用加强定时器 |
普通模式 |
不进行主动探测 |
是(Entry老化定时器超时后,直接老化该邻居表项) |
否 |
加强模式 |
进行主动探测 |
是(Entry老化定时器超时后,启用加强定时器) |
是(加强定时器超时后,将本端状态置为单通,并老化该邻居表项) |
DLDP邻居的状态有两种,可以通过display dldp命令查看。
表1-8 DLDP邻居状态
状态类型 |
说明 |
two way |
表示目前处于正常的双向连通状态 |
unknown |
表示目前正在对邻居进行探测,状态未知 |
如果端口的关闭模式被设置为系统自动关闭,当DLDP检测到单向链路时,把端口设置为DLDP Down。DLDP Down端口不会转发业务报文,也不能收发除DLDP之外的任何协议报文。
处于DLDP Down状态端口能在链路恢复之时,从DLDP Down状态中恢复。DLDP Down状态下的端口仍然会周期性的发送链路恢复探测报文(Recover Probe),一旦收到正确的恢复回应报文(Recover Echo),则说明单向链路已经变为双向链路,DLDP将此端口重新Up。其具体过程如下:
l DLDP Down的端口向外每2秒发送一次Recover Probe报文。报文中只携带本端口的信息。
l 对端如果收到该报文,则以Recover Echo报文作为应答。
l 一旦本端收到Recover Echo报文,检查Recover Echo报文中携带的邻居信息是否和本端口信息相同。如果相同,则认为本端口和该邻居之间已经恢复双向连通,则端口从Disable状态转变到Active状态,开始重新建立邻居关系。
链路恢复报文只在DLDP Down端口上发送和处理。如果端口被用户手工shutdown,则自动恢复机制不能生效。
表1-9 DLDP基本配置
命令 |
说明 |
|||
进入系统视图 |
system-view |
- |
||
开启DLDP |
全局开启DLDP |
dldp enable |
必选 缺省情况下,DLDP功能处于关闭状态 |
|
端口上开启DLDP |
进入以太网端口视图 |
interface interface-type interface-number |
||
开启DLDP |
dldp enable |
|||
设置与对方端口间的认证模式和认证密码 |
dldp authentication-mode { none | simple simple-password | md5 md5-password } |
可选 缺省情况下,认证方式为none |
||
设定所有开启DLDP的端口(处于Advertisement状态时)发送Advertisement报文的时间间隔 |
dldp interval timer-value |
可选 缺省值为5秒 |
||
配置DelayDown定时器的超时时间 |
dldp delaydown-timer delaydown-time |
可选 缺省值为1秒 |
||
设置发现单向链路后的操作模式 |
dldp unidirectional-shutdown { auto | manual } |
可选 缺省情况下,发现单向链路后的操作模式为auto |
||
设置DLDP的工作模式 |
dldp work-mode { enhance | normal } |
可选 缺省情况下,DLDP协议工作在normal模式 |
在DLDP基本配置过程中,请注意如下事项:
l 在链路未连通的情况下,DLDP不起作用。
l 为确保检测出单向链路,要保证两端设备的DLDP处于开启状态、DLDP Advertisement报文发送时间间隔相等、认证方式和密码相同。
l DLDP Advertisement报文的时间间隔是可调整的(缺省值是5秒,可配置范围为1~100秒),以便根据不同的网络环境使DLDP对链路失效作出更快的响应。如果设定的时间太长,DLDP在没有关闭单向链路的情况下已出现STP环路。如果设定的时间太短,则会增加网络的流量,减少端口的带宽。因此,建议此时间间隔应该小于STP收敛时间(通常情况下为30秒)的三分之一。
l DLDP不处理任何LACP事件,DLDP将端口汇聚组中的每条链路视为独立的链路进行处理。
l 当运行DLDP的两台设备进行对接时,请保证两台设备的软件版本一致,否则DLDP的运行可能出现问题。
l 系统视图下的dldp enable / dldp disable命令用来全局开启/关闭交换机上所有光纤端口的DLDP功能;且以上命令仅对设备上当前已有的光纤端口有效,对设备后续新增的光纤端口不起作用。
l 如果用户配置了DLDP的认证模式和认证密码,则要确保本端端口与对端端口设置了相同的认证模式和认证密码,否则DLDP不能通过认证。
l 当将DLDP协议的工作模式配置为enhance 模式时时,系统能识别两种类型的单向链路:一种是光纤交叉相连,另一种是一条光纤未连接或一条光纤断路。
l 当将DLDP协议的工作模式配置为normal模式时,系统只能识别一种类型的单向链路:光纤交叉连接。
l 当设备业务繁忙、CPU利用率较高时,可能会出现DLDP误报的情况。建议用户把DLDP发现单向链路后的操作模式配置为manual,减小DLDP误报造成的影响。
当DLDP探测到单向链路并将端口DLDP Down掉后,可以通过重置命令使端口状态恢复,重新进行DLDP探测。
DLDP状态重置功能只适用于处于DLDP Down状态的端口。
表1-10 DLDP状态重置配置
操作 |
命令 |
说明 |
在系统视图下,重置被DLDP协议关闭的所有端口的DLDP状态 |
system-view |
对于系统视图下和端口视图下的配置,二者必选其一 |
dldp reset |
||
在端口视图下,重置被DLDP协议关闭的当前端口的DLDP状态 |
interface interface-type interface-number |
|
dldp reset |
表1-11 DLDP配置显示
操作 |
命令 |
说明 |
显示指定Unit或指定端口的DLDP配置信息 |
display dldp { unit-id | interface-type interface-number } |
该命令可以在任意视图下执行 |
如图1-3所示:
l Switch A和Switch B通过两对光纤相连(相关端口均工作于强制全双工和1000Mbits/s速率下),两台交换机均支持DLDP;
l Switch A与Switch B间出现了光纤交叉连接的情况,DLDP检测出单向链路后,自动断开单向链路;
l 当网管人员正确连接光纤后,恢复被DLDP Down掉的端口。
(1) 配置Switch A
# 配置端口工作在强制全双工模式,速率为1000Mbits/s。
<SwitchA> system-view
[SwitchA] interface gigabitethernet 1/1/3
[SwitchA-GigabitEthernet1/1/3] duplex full
[SwitchA-GigabitEthernet1/1/3] speed 1000
[SwitchA-GigabitEthernet1/1/3] quit
[SwitchA] interface gigabitethernet 1/1/4
[SwitchA-GigabitEthernet1/1/4] duplex full
[SwitchA-GigabitEthernet1/1/4] speed 1000
[SwitchA-GigabitEthernet1/1/4] quit
# 全局开启DLDP。
[SwitchA] dldp enable
# 设置发送DLDP报文的时间间隔为15秒。
[SwitchA] dldp interval 15
# 配置DLDP协议的工作模式为加强模式。
[SwitchA] dldp work-mode enhance
# 配置DLDP单向链路操作模式为自动模式。
[SwitchA] dldp unidirectional-shutdown auto
# 查看DLDP状态。
[SwitchA] display dldp 1
当光纤交叉连接时,可能有两个或三个端口处于Disable状态,剩余端口处于Inactive状态。
当光纤一端连接正确,一端未连接时:
l 如果DLDP的工作模式为normal,则有收光的一端处于Advertisement状态,没有收光的一端处于Inactive状态。
l 如果DLDP的工作模式为enhance,则有收光的一端处于Disable状态,没有收光的一端处于Inactive状态。
# 恢复被DLDP协议Down掉的端口。
[SwitchA] dldp reset
(2) 配置Switch B
Switch B上的配置与Switch A上的配置完全一致,此处不再赘述。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!