分类:
2012-07-30 21:27:33
Cisco 使用UDLD来解决单通的问题,H3C用DLDP来解决单通的问题。UDLD,DLDP都是解决IP传输已经down,但是端口还没有down的问题。
单通:
本端设备可以通过链路层收到对端设备发送的报文,但对端设备不能收到本端设备发送的报文。单向链路的产生有两种情况:一种是光纤交叉连接,另一种是两条光
纤中的一条未连接或有故障(如果光纤未接的话,一般物理层可以检测出来,不需要DL层来检查)。单向链路会引起一系列问题,比如生成树拓扑环路等。
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 Probe报文
Recover Echo报文
对Recover Probe报文的应答,用于端口的自动恢复机制。发送Recover Probe的端口收到Recover Echo报文后,如果发现RecoverEcho报文中的邻居信息与本端口相同,则认为链路已经恢复双向连通
DLDP协议状态
DLDP协议有如下状态:Initial(初始化)、Inactive(未连通)、Active(活动)、Advertisement(通告)、Probe(探测)、Disable(单通)、DelayDown状态。
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 Timer
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 工作模式
DLDP协议有两种工作模式:普通模式、加强模式
3) 如果DLDP没有收到邻居的Echo应答报文,会做如下处理:
将DLDP状态转到Disable,输出日志和跟踪信息,向邻居发送Flush报文,并根据用户配置的DLDP Down模式,手动或者自动关闭掉本端端口。发送RSY信息,同时删除该邻居表项。
将DLDP状态转到Disable,输出日志和跟踪信息,向邻居发送Flush报文,并根据用户配置的DLDP Down模式,手动或者自动关闭掉本端端口。发送RSY信息,同时删除该邻居表项。
1、接口配置
2、全局使能DLDP
[H3CA] dldp enable
3、DLDP模式与其他参数
设置发送DLDP报文的时间间隔为15秒。
[H3CA] dldp interval 15
配置DLDP协议的工作模式为加强模式。
[H3CA] dldp work-mode enhance
配置DLDP检测到单向链路后的操作模式为自动模式。
[H3CA] dldp unidirectional-shutdown auto
4、debug
# 查看DLDP状态。
[H3CA] display dldp