Loop Detection和Loopback Detection原理描述
如果发现检测报文从发出去的接口接收到,则认为该接口发生自环或该接口下挂的网络或设备中存在环路。
如果发现检测报文被本设备上的其他接口接收到,则认为该接口所在的网络发生环路或设备发生自环。
发现环路后,设备会向网管发送告警并记录日志,同时根据用户事先的配置对问题接口采取一定的处理动作(即环路处理动作),从而使该接口处于受控状态,减小环路对本设备乃至网络的影响。
接口受控后仍继续发送检测报文,当设备在一定时间内没有收到受控接口发出的检测报文,则认为环路已经消除,该受控接口将自动恢复为正常状态。这个过程称为受控接口自动恢复。
检测报文
- 当接口或网络中存在环路时,从该接口发送出去的检测报文必须能够送回到本设备。
- 根据检测报文,系统能识别出是否本设备发送出去的检测报文,以及是本设备的哪个接口发送出去的检测报文。
为此,Loop Detection和Loopback Detection发送的检测报文需要携带发送设备的MAC地址、发送报文的接口号,以便设备判断报文是否本设备发出以及从哪个接口发出,同时,还需要携带广播或组播类型的目的MAC地址,以保证接口或网络出现环路时,检测报文能够回送到本设备。如图20-1所示为Loop Detection和Loopback Detection的检测报文格式。
字段 |
含义 |
---|---|
DMAC |
目的MAC地址:
DMAC为广播(全F)、组播或BPDU MAC,可以保证接口或网络出现环路时,检测报文能够回送到本设备。 |
SMAC |
源MAC地址,填写本设备的系统MAC地址,以唯一性标识本设备发出的报文。 |
802.1Q Tag |
其中包含TPID(Tag Protocol Identifier),TPID取值为0x8100,表示802.1Q Tag帧。 |
LDT-Type |
检测报文的类型,包括协议号和子协议号两部分。 其中,协议号取值为0x9998,子协议号取值为:
|
PortInfo |
发送检测报文的接口信息,以便设备进行接口比较,判断是否为本设备的接口发出。 |
Flag |
Untagged检测报文标志:
|
可见,Loop Detection只发送带Tag的检测报文,而Loopback Detection同时发送Untagged和Tagged两种检测报文。这就使得Loop Detection只能基于VLAN进行环路检测;而Loopback Detection可以基于VLAN进行检测,也可以基于接口进行检测。
环路处理动作
当系统检测到环路时,可以根据用户事先配置的处理动作对接口进行处理,使其处于某种受控状态。具体处理动作如表20-3所示。
处理动作 |
描述 |
适用场景 |
---|---|---|
Trap |
当检测到环路时,只向网管发送Trap告警和记录日志。 |
当用户仅需要告警环路,而不希望影响本接口流量的正常转发时,可以选择此模式。 该动作无法抑制网络风暴。 |
Block |
当检测到环路时,向网管发送Trap告警,同时阻塞接口,只允许BPDU报文通过。 |
当用户需要接口在检测到环路之后不允许数据报文通过,但又要保证某些BPDU协议报文(如LLDP等)的正常转发,可以选择此动作。 该动作可抑制网络风暴。 |
Shutdown |
当检测到环路时,向网管发送Trap告警,同时关闭接口。 |
当用户需要接口在检测到环路之后彻底不参加任何计算或转发,以防止网络风暴,可以选择此动作。 该动作可抑制网络风暴。 |
No learning |
当检测到环路时,向网管发送Trap告警,同时禁止接口学习新MAC。 |
当用户需要接口在检测到环路之后仍可以处理数据报文,但又要防止数据报文发送到错误的链路上,可以选择此动作。 该动作无法抑制网络风暴。 |
Quitvlan |
当检测到环路时,向网管发送Trap告警,同时将接口退出出现环路的VLAN。 |
当用户只希望解除VLAN内环路,不影响其他VLAN内的流量转发时,可以选择此动作。 该动作可抑制网络风暴。 |
无论用户选用何种处理动作,只要接口或网络中出现环路,对正常业务都会有影响,而Loop Detection和Loopback Detection仅为单节点环路检测技术,不具备网络级的破除环路功能。因此,建议用户在发现环路时及时进行破环处理。
受控接口自动恢复
为及时在环路消失后将受控接口恢复到正常状态,Loop Detection和Loopback Detection支持环路状态自动恢复功能。
- 对于Loop Detection,当系统在恢复时间内没有收到受控接口发出的检测报文,则认为受控接口下的环路已经消除,将接口恢复为正常状态。
- 对于Loopback Detection,系统在经过设置的恢复时间后会尝试在下一个恢复时间内恢复接口,若该恢复时间内没有收到受控接口发出的检测报文,则认为受控接口下的环路已经消除,将恢复该接口为正常状态。
在V200R013C00SPC500之前版本,被Loopback Detection关闭的接口不能经过恢复时间自动恢复。在V200R013C00SPC500及之后版本,如果接口被手动shutdown或被其他协议Error-Down,在到达接口恢复时间后,则接口会自动恢复;如果接口仅被Loopback Detection关闭,在到达接口恢复时间后,接口不会自动恢复。
更改受控接口的Loopback Detection处理动作,该接口将自动恢复为正常状态,并根据更改后的配置重新进行环路检测及相应的处理。
- 对于Loop Detection或Loopback Detection基于VLAN检测的受控接口:
若将接口取消检测此VLAN,则接口将自动恢复为正常状态。
若接口未使能GVRP,当接口手动退出此VLAN时,接口自动恢复为正常状态。
若接口同时使能GVRP,当接口手动或通过GVRP动态退出此VLAN时,如果受控接口被执行的是除shutdown之外的动作,则可以自动恢复为正常状态,
若接口同时使能GVRP,当接口手动或通过GVRP动态退出此VLAN时,如果受控接口被执行的是shutdown动作,设备定时上报的告警中会显示检测到环路的VLAN信息为空。对于Loop Detection协议,接口会自动恢复为正常状态。对于Loopback Detection协议,在V200R013C00SPC500之前版本,此时若要使受控端口恢复为正常状态,需要依次执行命令shutdown和undo shutdown手动恢复,或者执行命令restart重启接口。在V200R013C00SPC500及之后版本,除了手动恢复和重启接口的方式外,如果接口被手动shutdown或被其他协议Error-Down,在到达接口恢复时间后,则接口会自动恢复;如果接口仅被Loopback Detection协议关闭,在到达接口恢复时间后,接口不会自动恢复。