12-环路检测配置
本章节下载: 12-环路检测配置 (446.56 KB)
目 录
环路检测能够及时发现二层网络中的环路,通过周期性的检查,使网络中出现环路时能及时通知用户检查网络连接和配置情况。当网络中出现环路时,环路检测机制通过生成日志信息(请参见“网络管理和监控配置指导”中的“信息中心”)来通知用户,并可根据用户事先的配置来选择是否关闭出现环路的端口。
设备通过发送环路检测报文并检测其是否返回本设备(不要求收、发端口为同一端口)以确认是否存在环路。若某端口收到了由本设备发出的环路检测报文,就认定该端口所在链路存在环路。
环路检测通常工作在特定的VLAN内,但也可能因QinQ或VLAN映射等特性的配置错误而导致VLAN间的环路(即尽管发出和收到的报文所携带的VLAN信息不同,但仍认为存在环路)。有关QinQ和VLAN映射的详细介绍,请分别参见“二层技术-以太网交换配置指导”中的“QinQ”和“VLAN映射”。
图1-1 环路检测报文以太网头的封装格式
环路检测报文以太网头的封装格式如图1-1所示,其中各字段的解释如下:
· DMAC:报文的目的MAC地址,使用组播MAC地址010f-e200-0007。当设备开启了环路检测功能时,会将该目的地址的报文上送CPU处理,并在收到该报文的VLAN内将原始报文广播一份。
· SMAC:报文的源MAC地址,为发送该报文的设备的桥MAC地址。
· TPID:VLAN标签的类型,取值为0x8100。
· TCI:VLAN标签的具体值,具体内容为优先级、VLAN ID等。
· Type:协议类型,取值为0x8918。
环路检测报文的内部头的封装格式如图1-2所示,其中各字段的解释如下:
· Code:协议子类型,取值为0x0001,表示环路检测协议。
· Version:版本,取值为0x0000,目前保留。
· Length:报文长度(包括环路检测报文的头部,但不包括以太网头部)。
· Reserved:保留字段。
环路检测报文的内容以TLV(Type/Length/Value,类型/长度/值)格式进行封装,环路检测支持的TLV类型如表1-1所示。
TLV名称 |
说明 |
携带要求 |
End of PDU |
结束TLV,用来标志PDU结束 |
可选 |
Device ID |
设备标识TLV,表示发送设备的桥MAC地址 |
必须 |
Port ID |
端口标识TLV,用来标识PDU发送端的端口索引 |
可选 |
Port Name |
端口名称TLV,用来标识PDU发送端的端口名称 |
可选 |
System Name |
系统名称TLV,表示设备的名称 |
可选 |
Chassis ID |
框号TLV,表示发送端口所在的框号 |
可选 |
Slot ID |
槽位号TLV,表示发送端口所在的槽位号 |
可选 |
Sub Slot ID |
子槽位号TLV,表示发送端口所在的子槽位号 |
可选 |
由于网络时刻处于变化中,因此环路检测是一个持续的过程,它以一定的时间间隔发送环路检测报文来确定各端口是否出现环路、以及存在环路的端口上是否已消除环路等,这个时间间隔就称为环路检测的时间间隔。
环路检测的处理模式是指当系统检测到端口出现环路时的处理方式,包括以下几种:
· Block模式:当系统检测到端口出现环路时,除了生成日志信息外,还会禁止端口学习MAC地址并将端口阻塞。
· No-learning模式:当系统检测到端口出现环路时,除了生成日志信息外,还会禁止端口学习MAC地址。
· Shutdown模式:当系统检测到端口出现环路时,除了生成日志信息外,还会自动关闭该端口,使其不能收发任何报文。
缺省情况下,系统不采用上述任何一种模式,当系统检测到端口出现环路时,除了生成日志信息外不对该端口进行任何处理。
在开启环路检测功能的网络中,设备检测到环路后,可以延迟对检测到环路的端口根据配置的环路检测处理模式进行阻塞或关闭处理。从端口收到本设备发出的环路检测报文到设备对此端口进行处理这段时间,就称为环路检测处理的延迟时间。用户可以通过在上游设备开启环路检测处理的延时功能并配置延时时间,使下游设备先对环路检测进行处理,以避免因上游设备端口被阻塞或关闭,影响下游所有设备的流量。
在Block模式和No-learning模式下,当设备检测到某端口出现环路后,若在三倍的环路检测时间间隔内仍未收到环路检测报文,就认为该端口上的环路已消除,自动将该端口恢复为正常转发状态,并生成日志通知给用户。这个过程就是端口状态的自动恢复过程。
在Shutdown模式下,出现环路的端口先被自动关闭,然后在shutdown-interval命令(请参考“基础配置命令参考”中的“设备管理”)所配置的时间之后自动恢复。如果此时环路尚未消除,该端口将被再次关闭,然后恢复……如此往复直至环路消除。
当网络中存在环路时,为防止大量报文的冲击,设备会丢弃部分报文。而如果环路检测报文也被丢弃,设备在端口状态自动恢复功能的作用下会误判定环路已消除。在这种情况下,建议将环路检测的处理模式配置为Shutdown模式,或当设备提示出现环路时通过手工排查来消除环路。
在M-LAG组网环境中,M-LAG设备上的环路检测相关配置要保证一致。
环路检测配置任务如下:
(1) 开启环路检测功能
(2) (可选)配置环路检测处理模式
(3) (可选)配置环路检测时间间隔
(4) (可选)配置环路检测处理的延迟时间
设备全局或者端口开启环路检测功能,当设备上任一端口收到设备发送的任一VLAN的环路检测报文时,会触发该端口的环路保护动作。
(1) 进入系统视图。
system-view
(2) 全局开启环路检测功能。
loopback-detection global enable vlan { vlan-id-list | all }
缺省情况下,环路检测功能处于全局关闭状态。
(1) 进入系统视图。
system-view
(2) 进入二层以太网接口/二层聚合接口视图。
interface interface-type interface-number
(3) 在端口上开启环路检测功能。
loopback-detection enable vlan { vlan-id-list | all }
缺省情况下,端口上的环路检测功能处于关闭状态。
用户可以在系统视图下全局配置环路检测的处理模式,也可以在接口视图下配置当前端口的环路检测处理模式。系统视图下的配置对所有端口都有效,接口视图下的配置则只对当前端口有效,且接口视图下的配置优先级较高。
(1) 进入系统视图。
system-view
(2) 全局配置环路检测的处理模式。
loopback-detection global action shutdown
缺省情况下,当系统检测到端口出现环路时不对该端口进行任何处理,仅生成日志信息。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 在端口上配置环路检测的处理模式。
loopback-detection action { block | no-learning | shutdown }
缺省情况下,当系统检测到端口出现环路时不对该端口进行任何处理,仅生成日志信息。
不同接口下支持配置处理模式不同,具体支持情况请参见命令手册。
当开启了环路检测功能后,系统开始以一定的时间间隔发送环路检测报文,该间隔越长耗费的系统性能越少,该间隔越短环路检测的灵敏度越高。用户可以通过本配置调整发送环路检测报文的时间间隔,以在系统性能和环路检测的灵敏度之间进行平衡。
(1) 进入系统视图。
system-view
(2) 配置环路检测的时间间隔。
loopback-detection interval-time interval
缺省情况下,环路检测的时间间隔为30秒。
系统视图下的配置对所有二层以太网接口都有效,接口视图下的配置则只对当前接口有效,且接口视图下的配置优先级较高。
建议不同端口或不同设备上配置不同环路检测延迟时间,避免网络中的设备端口同时down或up。
(1) 进入系统视图。
system-view
(2) 开启环路检测处理的延迟功能并配置延迟时间。
loopback-detection global delay-timer time
缺省情况下,环路检测处理的延迟功能处于关闭状态,设备检测到环路之后立即进行处理。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 在端口上配置环路检测的延迟时间。
loopback-detection delay-timer time
缺省情况下,端口上的环路检测延迟功能处于关闭状态,环路检测处理的延迟时间以全局配置为准。
在完成上述配置后,在任意视图下执行display命令可以显示配置后环路检测的运行情况,通过查看显示信息验证配置的效果。
表1-2 环路检测显示和维护
操作 |
命令 |
display loopback-detection |
· 三台设备Device A、Device B和Device C组成一个物理上的环形网络。
· 通过在Device A上配置环路检测功能,使系统能够自动关闭Device A上出现环路的端口,并通过打印日志信息来通知用户检查网络。
图1-3 环路检测基本功能配置组网图
(1) 配置Device A
# 创建VLAN 100,并全局开启该VLAN内的环路检测功能。
<DeviceA> system-view
[DeviceA] vlan 100
[DeviceA–vlan100] quit
[DeviceA] loopback-detection global enable vlan 100
# 配置端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2为Trunk类型,并允许VLAN 100通过。
[DeviceA] interface ten-gigabitethernet 1/0/1
[DeviceA-Ten-GigabitEthernet1/0/1] port link-type trunk
[DeviceA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 100
[DeviceA-Ten-GigabitEthernet1/0/1] quit
[DeviceA] interface ten-gigabitethernet 1/0/2
[DeviceA-Ten-GigabitEthernet1/0/2] port link-type trunk
[DeviceA-Ten-GigabitEthernet1/0/2] port trunk permit vlan 100
[DeviceA-Ten-GigabitEthernet1/0/2] quit
# 全局配置环路检测的处理模式为Shutdown模式。
[DeviceA] loopback-detection global action shutdown
# 配置环路检测的时间间隔为35秒。
[DeviceA] loopback-detection interval-time 35
(2) 配置Device B
# 创建VLAN 100。
<DeviceB> system-view
[DeviceB] vlan 100
[DeviceB–vlan100] quit
# 配置端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2为Trunk类型,并允许VLAN 100通过。
[DeviceB] interface ten-gigabitethernet 1/0/1
[DeviceB-Ten-GigabitEthernet1/0/1] port link-type trunk
[DeviceB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 100
[DeviceB-Ten-GigabitEthernet1/0/1] quit
[DeviceB] interface ten-gigabitethernet 1/0/2
[DeviceB-Ten-GigabitEthernet1/0/2] port link-type trunk
[DeviceB-Ten-GigabitEthernet1/0/2] port trunk permit vlan 100
[DeviceB-Ten-GigabitEthernet1/0/2] quit
(3) 配置Device C
# 创建VLAN 100。
<DeviceC> system-view
[DeviceC] vlan 100
[DeviceC–vlan100] quit
# 配置端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2为Trunk类型,并允许VLAN 100通过。
[DeviceC] interface ten-gigabitethernet 1/0/1
[DeviceC-Ten-GigabitEthernet1/0/1] port link-type trunk
[DeviceC-Ten-GigabitEthernet1/0/1] port trunk permit vlan 100
[DeviceC-Ten-GigabitEthernet1/0/1] quit
[DeviceC] interface ten-gigabitethernet 1/0/2
[DeviceC-Ten-GigabitEthernet1/0/2] port link-type trunk
[DeviceC-Ten-GigabitEthernet1/0/2] port trunk permit vlan 100
[DeviceC-Ten-GigabitEthernet1/0/2] quit
当配置完成后,系统在一个环路检测时间间隔内在Device A的端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2上都检测到了环路,于是将这两个端口自动关闭,并打印了如下日志信息:
[DeviceA]
%Feb 24 15:04:29:663 2019 DeviceA LPDT/4/LPDT_LOOPED: A loop was detected on Ten-GigabitEthernet1/0/1.
%Feb 24 15:04:29:664 2019 DeviceA LPDT/4/LPDT_VLAN_LOOPED: A loop was detected on Ten-GigabitEthernet1/0/1 in VLAN 100.
%Feb 24 15:04:29:667 2019 DeviceA LPDT/4/LPDT_LOOPED: A loop was detected on Ten-GigabitEthernet1/0/2.
%Feb 24 15:04:29:668 2019 DeviceA LPDT/4/LPDT_VLAN_LOOPED: A loop was detected on Ten-GigabitEthernet1/0/2 in VLAN 100.
%Feb 24 15:04:44:243 2019 DeviceA LPDT/5/LPDT_VLAN_RECOVERED: A loop was removed on Ten-GigabitEthernet1/0/1 in VLAN 100.
%Feb 24 15:04:44:243 2019 DeviceA LPDT/5/LPDT_RECOVERED: All loops were removed on Ten-GigabitEthernet1/0/1.
%Feb 24 15:04:44:248 2019 DeviceA LPDT/5/LPDT_VLAN_RECOVERED: A loop was removed on Ten-GigabitEthernet1/0/2 in VLAN 100.
%Feb 24 15:04:44:248 2019 DeviceA LPDT/5/LPDT_RECOVERED: All loops were removed on Ten-GigabitEthernet1/0/2.
使用display loopback-detection命令可以查看Device A上环路检测的配置和运行情况:
# 显示Device A上环路检测的配置和运行情况。
[DeviceA] display loopback-detection
Loop detection is enabled.
Global loop detection interval is 35 second(s).
Loop is detected on following interfaces:
Interface Action mode VLANs/VSI
Ten-GigabitEthernet1/0/1 Shutdown 100
Ten-GigabitEthernet1/0/2 Shutdown 100
由此可见,Device A上显示在端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2上检测到环路,由于环路检测功能运行在Shutdown模式下,端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2上出现环路后均已被自动关闭,因此设备打印的日志信息显示这两个端口上的环路已消除。此时,使用display interface命令分别查看Device A上端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2的状态信息:
# 显示Device A上端口Ten-GigabitEthernet1/0/1的状态信息。
[DeviceA] display interface ten-gigabitethernet 1/0/1
Ten-GigabitEthernet1/0/1 current state: DOWN (Loopback detection down)
...
# 显示Device A上端口Ten-GigabitEthernet1/0/2的状态信息。
[DeviceA] display interface ten-gigabitethernet 1/0/2
Ten-GigabitEthernet1/0/2 current state: DOWN (Loopback detection down)
...
由此可见,端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2均已被环路检测模块自动关闭。
在M-LAG组网环境中部署环路检测,以便在网络中存在环路时设备可以自动关闭设备上出现环路的端口,并及时通知用户检查网络环境。如图1-4所示,Device A和Device B组成M-LAG系统,同时部署环路检测。Device C、M-LAG系统、Device D和Device E组成一个物理上的环路。
图1-4 M-LAG组网应用环路检测配置组网图
(1) 配置Device A
# 创建VLAN 100。
<DeviceA> system-view
[DeviceA] vlan 100
[DeviceA-vlan100] quit
# 配置M-LAG系统配置。
[DeviceA] m-lag system-mac 1-1-1
[DeviceA] m-lag system-number 1
[DeviceA] m-lag system-priority 123
# 配置Keepalive报文的目的IP地址和源IP地址。
[DeviceA] m-lag keepalive ip destination 1.1.1.1 source 1.1.1.2
# 配置端口Ten-GigabitEthernet1/0/6工作在三层模式,并配置IP地址为Keepalive报文的源IP地址。
[DeviceA] interface ten-gigabitethernet 1/0/6
[DeviceA-Ten-GigabitEthernet1/0/6] port link-mode route
[DeviceA-Ten-GigabitEthernet1/0/6] ip address 1.1.1.2 24
[DeviceA-Ten-GigabitEthernet1/0/6] quit
# 配置Keepalive链路接口为M-LAG保留接口。
[DeviceA] m-lag mad exclude interface ten-gigabitethernet 1/0/6
# 创建动态二层聚合接口3,并配置该接口为peer-link接口。
[DeviceA] interface bridge-aggregation 3
[DeviceA-Bridge-Aggregation3] link-aggregation mode dynamic
[DeviceA-Bridge-Aggregation3] port m-lag peer-link 1
[DeviceA-Bridge-Aggregation3] quit
# 将端口Ten-GigabitEthernet1/0/5加入到聚合组3中。
[DeviceA] interface ten-gigabitethernet 1/0/5
[DeviceA-Ten-GigabitEthernet1/0/5] port link-aggregation group 3
[DeviceA-Ten-GigabitEthernet1/0/5] quit
# 配置二层聚合接口3为Trunk端口,并允许VLAN 100的报文通过。
[DeviceA] interface bridge-aggregation 3
[DeviceA-Bridge-Aggregation3] port link-type trunk
[DeviceA-Bridge-Aggregation3] port trunk permit vlan 100
[DeviceA-Bridge-Aggregation3] quit
# 创建动态二层聚合接口4,并配置该接口为M-LAG接口4。
[DeviceA] interface bridge-aggregation 4
[DeviceA-Bridge-Aggregation4] link-aggregation mode dynamic
[DeviceA-Bridge-Aggregation4] port m-lag group 4
[DeviceA-Bridge-Aggregation4] quit
# 分别将端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2加入到聚合组4中。
[DeviceA] interface ten-gigabitethernet 1/0/1
[DeviceA-Ten-GigabitEthernet1/0/1] port link-aggregation group 4
[DeviceA-Ten-GigabitEthernet1/0/1] quit
[DeviceA] interface ten-gigabitethernet 1/0/2
[DeviceA-Ten-GigabitEthernet1/0/2] port link-aggregation group 4
[DeviceA-Ten-GigabitEthernet1/0/2] quit
# 配置二层聚合接口4为Trunk端口,并允许VLAN 100的报文通过。
[DeviceA] interface bridge-aggregation 4
[DeviceA-Bridge-Aggregation4] port link-type trunk
[DeviceA-Bridge-Aggregation4] port trunk permit vlan 100
[DeviceA-Bridge-Aggregation4] quit
# 创建动态二层聚合接口5,并配置该接口为M-LAG接口5。
[DeviceA] interface bridge-aggregation 5
[DeviceA-Bridge-Aggregation5] link-aggregation mode dynamic
[DeviceA-Bridge-Aggregation5] port m-lag group 5
[DeviceA-Bridge-Aggregation5] quit
# 分别将端口Ten-GigabitEthernet1/0/3和Ten-GigabitEthernet1/0/4加入到聚合组5中。
[DeviceA] interface ten-gigabitethernet 1/0/3
[DeviceA-Ten-GigabitEthernet1/0/3] port link-aggregation group 5
[DeviceA-Ten-GigabitEthernet1/0/3] quit
[DeviceA] interface ten-gigabitethernet 1/0/4
[DeviceA-Ten-GigabitEthernet1/0/4] port link-aggregation group 5
[DeviceA-Ten-GigabitEthernet1/0/4] quit
# 配置二层聚合接口5为Trunk端口,并允许VLAN 100的报文通过。
[DeviceA] interface bridge-aggregation 5
[DeviceA-Bridge-Aggregation5] port link-type trunk
[DeviceA-Bridge-Aggregation5] port trunk permit vlan 100
[DeviceA-Bridge-Aggregation5] quit
# 关闭STP功能。
[DeviceA] undo stp global enable
# 全局开启VLAN 100内的环路检测功能,配置环路检测处理模式为shutdown,环路检测的时间间隔为35秒。
[DeviceA] loopback-detection global enable vlan 100
[DeviceA] loopback-detection global action shutdown
[DeviceA] loopback-detection interval-time 35
(2) 配置Device B
配置Device B的M-LAG系统编号为2,Keepalive报文的目的IP地址为1.1.1.2,源IP地址为1.1.1.1。其他配置与Device A类似,不再赘述。
(3) 配置Device C
# 关闭STP功能。
<DeviceC> system-view
[DeviceC] undo stp global enable
# 创建VLAN 100。
[DeviceC] vlan 100
[DeviceC-vlan100] quit
# 创建二层聚合接口4,并配置该接口为动态聚合模式。
[DeviceC] interface bridge-aggregation 4
[DeviceC-Bridge-Aggregation4] link-aggregation mode dynamic
[DeviceC-Bridge-Aggregation4] quit
# 分别将端口Ten-GigabitEthernet1/0/1~Ten-GigabitEthernet1/0/4加入到聚合组4中。
[DeviceC] interface range ten-gigabitethernet 1/0/1 to ten-gigabitethernet 1/0/4
[DeviceC-if-range] port link-aggregation group 4
[DeviceC-if-range] quit
# 配置二层聚合接口4为Trunk端口,并允许VLAN 100的报文通过。
[DeviceC] interface bridge-aggregation 4
[DeviceC-Bridge-Aggregation4] port link-type trunk
[DeviceC-Bridge-Aggregation4] port trunk permit vlan 100
[DeviceC-Bridge-Aggregation4] quit
# 配置端口Ten-GigabitEthernet1/0/5为Trunk端口,并允许VLAN 100的报文通过。
[DeviceC] interface ten-gigabitethernet 1/0/5
[DeviceC-Ten-GigabitEthernet1/0/5] port link-type trunk
[DeviceC-Ten-GigabitEthernet1/0/5] port trunk permit vlan 100
[DeviceC-Ten-GigabitEthernet1/0/5] quit
(4) 配置Device D
# 关闭STP功能。
<DeviceD> system-view
[DeviceD] undo stp global enable
# 创建VLAN 100。
[DeviceD] vlan 100
[DeviceD-vlan100] quit
# 创建二层聚合接口5,并配置该接口为动态聚合模式。
[DeviceD] interface bridge-aggregation 5
[DeviceD-Bridge-Aggregation5] link-aggregation mode dynamic
[DeviceD-Bridge-Aggregation5] quit
# 分别将端口Ten-GigabitEthernet1/0/1~Ten-GigabitEthernet1/0/4加入到聚合组5中。
[DeviceD] interface range ten-gigabitethernet 1/0/1 to ten-gigabitethernet 1/0/4
[DeviceD-if-range] port link-aggregation group 5
[DeviceD-if-range] quit
# 配置二层聚合接口5为Trunk端口,并允许VLAN 100的报文通过。
[DeviceD] interface bridge-aggregation 5
[DeviceD-Bridge-Aggregation5] port link-type trunk
[DeviceD-Bridge-Aggregation5] port trunk permit vlan 100
[DeviceD-Bridge-Aggregation5] quit
# 配置端口Ten-GigabitEthernet1/0/5为Trunk端口,并允许VLAN 100的报文通过。
[DeviceD] interface ten-gigabitethernet 1/0/5
[DeviceD-Ten-GigabitEthernet1/0/5] port link-type trunk
[DeviceD-Ten-GigabitEthernet1/0/5] port trunk permit vlan 100
[DeviceD-Ten-GigabitEthernet1/0/5] quit
(5) 配置Device E
# 关闭STP功能。
<DeviceE> system-view
[DeviceE] undo stp global enable
# 创建VLAN 100。
[DeviceE] vlan 100
[DeviceE-vlan100] quit
# 配置端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2为Trunk端口,并允许VLAN 100的报文通过。
[DeviceE] interface ten-gigabitethernet 1/0/1
[DeviceE-Ten-GigabitEthernet1/0/1] port link-type trunk
[DeviceE-Ten-GigabitEthernet1/0/1] port trunk permit vlan 100
[DeviceE-Ten-GigabitEthernet1/0/1] quit
[DeviceE] interface ten-gigabitethernet 1/0/2
[DeviceE-Ten-GigabitEthernet1/0/2] port link-type trunk
[DeviceE-Ten-GigabitEthernet1/0/2] port trunk permit vlan 100
[DeviceE-Ten-GigabitEthernet1/0/2] quit
当配置完成后,系统在一个环路检测时间间隔内在Device A的M-LAG接口4和M-LAG接口5上都检测到了环路,于是将这两个M-LAG接口自动关闭,并打印了如下日志信息:
[DeviceA]
%Aug 1 03:28:48:110 2019 DeviceA LPDT/4/LPDT_LOOPED: A loop was detected on
Bridge-Aggregation4.
%Aug 1 03:28:48:191 2019 DeviceA LPDT/4/LPDT_VLAN_LOOPED: A loop was detect
ed on Bridge-Aggregation4 in VLAN 100.
%Aug 1 03:28:48:194 2019 DeviceA LPDT/4/LPDT_LOOPED: A loop was detected on
Bridge-Aggregation5.
%Aug 1 03:28:48:288 2019 DeviceA LPDT/4/LPDT_VLAN_LOOPED: A loop was detect
ed on Bridge-Aggregation5 in VLAN 100.
%Aug 1 03:28:48:290 2019 DeviceA LPDT/5/LPDT_VLAN_RECOVERED: A loop was rem
oved on Bridge-Aggregation4 in VLAN 100.
%Aug 1 03:28:48:291 2019 DeviceA LPDT/5/LPDT_RECOVERED: All loops were remo
ved on Bridge-Aggregation4.
%Aug 1 03:28:48:302 2019 DeviceA LPDT/5/LPDT_VLAN_RECOVERED: A loop was rem
oved on Bridge-Aggregation5 in VLAN 100.
%Aug 1 03:28:48:304 2019 DeviceA LPDT/5/LPDT_RECOVERED: All loops were remo
ved on Bridge-Aggregation5.
使用display loopback-detection命令可以查看Device A上环路检测的配置和运行情况:
# 查看Device A上环路检测的配置和运行情况。
[DeviceA] display loopback-detection
Loop detection is enabled.
Global loop detection interval is 35 second(s).
Loop is detected on following interfaces:
Interface Action mode VLANs/VSI
Bridge-Aggregation4 Shutdown 100
Bridge-Aggregation5 Shutdown 100
由此可见,Device A上显示在聚合组4和聚合组5上检测到环路,由于环路检测功能运行在Shutdown模式下,聚合组4和聚合组5上出现环路后均已被自动关闭,因此设备打印的日志信息显示这两个聚合组上的环路已消除。此时,使用display interface命令分别查看Device A上聚合组4和聚合组5的状态信息:
# 显示Device A上聚合组4的状态信息。
[DeviceA] display interface Bridge-Aggregation 4
Bridge-Aggregation4
The interface has assigned a M-LAG group.
Current state: DOWN (Loopback detection down)
...
# 显示Device A上聚合组5的状态信息。
[DeviceA] display interface Bridge-Aggregation 5
Bridge-Aggregation5
The interface has assigned a M-LAG group.
Current state: DOWN (Loopback detection down)
...
由此可见,聚合组4和聚合组5均已被环路检测模块自动关闭。
Device B上的现象和Device A上一致。
VXLAN网络下的环路检测功能通过周期性地发送检测报文,确定VXLAN网络中是否存在环路,当检测出环路时通过阻塞AC来消除环路,并生成日志信息(请参见“网络管理和监控配置指导”中的“信息中心”)及时通知用户检查网络连接和配置情况。
在图2-1所示的VXLAN组网中,不同站点的终端除了可以通过VTEP进入VXLAN网络进行互通,还可以通过直连的二层网络进行互通。VXLAN网络和二层网络可能会形成环路,从而引起广播风暴。
通过在两台VTEP上配置VXLAN网络下的环路检测功能,可以检测与VXLAN网络连接的站点网络中是否存在环路,并且在检测到环路后阻塞其中一台VTEP上的AC,从而消除该网络中的环路。
图2-1 VXLAN网络下的环路检测应用场景
如图2-2所示,环路检测报文封装在以太网报文中,由以太网头、环路检测报文头、环路检测TLV三部分组成。
以太网头中各字段的解释如下:
· DMAC:报文的目的MAC地址,使用组播MAC地址010f-e200-0007。当设备开启了环路检测功能时,会将该目的地址的报文上送CPU处理,并在收到该报文的VLAN内广播该报文。
· SMAC:报文的源MAC地址,为发送该报文的设备的桥MAC地址。
· TPID:VLAN标签的类型,缺省取值为0x8100。
· TCI(Tag Control Information):标签控制信息,内容为优先级、VLAN ID等。
· Type:协议类型,取值为0x8918。
环路检测报文头各字段的解释如下:
· Code:协议子类型,取值为0x0001,表示环路检测类型。
· Version:版本,目前为保留字段,取值固定为0x0000。
· Length:报文长度,包括环路检测报文的头部,但不包括以太网头部。
· Reserved:保留字段。
环路检测报文的内容以TLV(Type/Length/Value,类型/长度/值)格式进行封装,环路检测支持的TLV类型如表2-1所示。
TLV名称 |
说明 |
携带要求 |
End of PDU |
结束TLV,用来标志PDU结束 |
可选 |
Device ID |
设备标识TLV,表示发送设备的桥MAC地址 |
必须 |
Port ID |
端口标识TLV,用来标识PDU发送端的端口索引 |
可选 |
Port Name |
端口名称TLV,用来标识PDU发送端的端口名称 |
可选 |
System Name |
系统名称TLV,表示设备的名称 |
可选 |
Chassis ID |
框号TLV,表示发送端口所在的框号 |
可选 |
Slot ID |
槽位号TLV,表示发送端口所在的槽位号 |
可选 |
Sub Slot ID |
子槽位号TLV,表示发送端口所在的子槽位号 |
可选 |
Priority |
优先级值TLV,用来表示发送AC所在VSI的环路检测优先级值 |
必须 |
VXLAN ID |
VXLAN ID TLV,用来表示发送AC所在VSI对应的VXLAN ID |
必须 |
ACinfo |
AC信息TLV,用来表示发送AC的信息 |
必须 |
M-LAG ID |
M-LAG ID TLV,用来表示发送AC所在M-LAG接口对应的M-LAG组ID |
可选 |
AC发出的环路检测报文中携带的环路检测优先级由VSI的环路检测优先级值、设备桥MAC地址和AC的链路标识符共同决定,优先级高低的比较规则为:
· 优先级值越小,优先级越高。
· 优先级值相同时,则比较设备桥MAC地址。桥MAC地址越小,优先级越高。
· 若桥MAC地址仍相同,则说明该报文是由本设备发出的,此时比较规则为:
¡ 在非M-LAG系统中,比较发送与接收该报文的两个AC在所属VSI内链路标识符,取值越小,优先级越高。
¡ 在M-LAG系统中,M-LAG接口之间比较所属的M-LAG组编号,编号值越大,优先级越高;M-LAG接口的优先级高于非M-LAG接口;非M-LAG接口之间仍比较所属VSI内链路标识符。
开启VXLAN网络下的环路检测功能后,设备将在属于该VSI的所有AC上发送环路检测报文,AC发送环路检测报文的同时开始检测是否接收到环路检测报文以确认是否存在环路。若AC收到的环路检测报文内容中封装的VXLAN ID与AC所属VSI对应的VXLAN ID一致,则认为该VXLAN中存在环路。
AC接收到环路检测报文并判断网络中存在环路后,将比较报文中携带的优先级与自身的优先级,若报文中携带的优先级更高,则本AC需要进行配置的环路检测保护动作,否则不触发环路检测保护动作。
报文仅从AC方向发送,即检测VXLAN网络连接的站点网络中是否存在环路。若从VXLAN隧道方向上收到环路检测报文且判断存在环路,此时将会认为本设备上转发该报文的AC存在环路。
由于网络时刻处于变化中,因此环路检测是一个持续的过程,它以一定的时间间隔发送环路检测报文来确定各AC是否出现环路、以及存在环路的AC上是否已消除环路等,这个时间间隔称为环路检测的时间间隔。
将AC的环路检测处理模式配置为Block模式后,当系统检测到AC出现环路时,除了生成日志信息外,环路检测优先级较低的一端还会禁止AC学习MAC地址并将其阻塞(即禁止转发报文)。
当设备检测到某AC出现环路后,若在三倍的环路检测时间间隔内仍未收到环路检测报文,就认为该AC上的环路已消除,自动将被阻塞的AC恢复为正常转发状态,并生成日志信息通知用户。这个过程就是AC状态的自动恢复过程。
VXLAN利用M-LAG功能将两台物理设备连接起来虚拟成一台设备,使用该虚拟设备作为VTEP,用以避免VTEP单点故障对网络造成影响,从而提高VXLAN网络的可靠性。M-LAG的详细介绍,请参见“二层技术-以太网交换配置指导”中的“M-LAG”。
图2-3 VXLAN网络下的环路检测支持M-LAG组网图
如图2-3所示,在VXLAN支持M-LAG网络中,环路检测功能的工作机制为:
· 对于用户终端双归接入M-LAG系统的情形(如图中Server 2):
¡ 需要在M-LAG的两台VTEP上均开启环路检测功能。开启环路检测功能后,两台VTEP都会在M-LAG接口的AC上发送环路检测报文,报文的源MAC地址、VLAN Tag、发送时间间隔和检测优先级相同。报文的源MAC地址为AC所在接口的M-LAG系统MAC地址。
¡ M-LAG设备从M-LAG接口接收到环路检测报文后,会通过peer-link链路同步给另一台VTEP设备,以避免单点链路故障导致另一台VTEP设备无法收到环路检测报文。
¡ M-LAG设备从M-LAG接口的AC接收到环路检测报文并判断网络中存在环路后,将比较报文中携带的优先级与自身的优先级。若报文中携带的优先级更高,则在两台M-LAG设备中,属于同一M-LAG组的AC均会进行配置的环路检测保护动作;否则不触发环路检测保护动作。
· 对于用户终端单归接入M-LAG系统的情形(如图中Server 4):
¡ 只需要在用户终端接入的VTEP上开启环路检测功能即可。开启环路检测功能后,仅用户终端接入的VTEP设备会在单边接入的M-LAG接口AC上发送环路检测报文。报文的源MAC地址为AC所在接口的M-LAG系统MAC地址。
¡ M-LAG设备从单归接入的M-LAG接口的AC接收到环路检测报文并判断网络中存在环路后,将比较报文中携带的优先级与自身的优先级。若报文中携带的优先级更高,则对接收到报文的AC进行配置的环路检测保护动作;否则不触发环路检测保护动作。
基于VXLAN网络的环路检测,不受系统视图下相关环路检测配置的影响。
本功能仅在关联VSI的AC为以太网服务实例时生效。
在双归接入的VXLAN支持M-LAG网络中开启环路检测功能时,请在两台M-LAG设备上配置相同的环路检测功能参数。
VXLAN网络下的环路检测功能配置任务如下:
(2) (可选)配置环路检测处理模式
(3) (可选)配置环路检测时间间隔
(4) (可选)配置VSI的环路检测优先级值
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 开启环路检测功能。请选择其中一项进行配置。
¡ 开启VSI内携带一层VLAN Tag的环路检测功能。
loopback-detection enable [ vlan vlan-id-list ]
¡ 开启VSI内携带两层VLAN Tag的环路检测功能。
loopback-detection enable s-vid vlan-id-list c-vid vlan-id-list
缺省情况下,VSI的环路检测功能处于关闭状态。
配置不携带VLAN Tag的环路检测功能时,需要将对应VSI下所有的AC接入模式配置为VLAN模式;配置携带一层或两层VLAN Tag的环路检测功能时,需要将对应VSI下所有的AC接入模式配置为Ethernet模式。否则可能无法正常检测到环路。
在VSI视图下配置环路检测的处理模式,对VSI下所有AC都生效。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 在VSI上配置环路检测的处理模式。
loopback-detection action block
缺省情况下,当系统检测到AC出现环路时不对该AC进行任何处理,仅生成日志信息。
当开启了环路检测功能后,系统开始以一定的时间间隔发送环路检测报文,该间隔越长耗费的系统性能越少,该间隔越短环路检测的灵敏度越高。用户可以通过本配置调整发送环路检测报文的时间间隔,以在系统性能和环路检测的灵敏度之间进行平衡。
当网络中VSI数量较多但环路检测时间间隔配置较短时,可能造成环路检测结果反复变化,引起链路震荡,建议根据网络中VSI的数量适当增加环路检测的时间间隔。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 在VSI上配置环路检测的时间间隔。
loopback-detection interval-time interval
缺省情况下,VSI的环路检测的时间间隔为30秒。
设备在收到环路检测报文判断某一VSI存在环路后,仅在收到的报文中携带的环路检测优先级更高时,才会触发环路检测保护动作。因此可以通过调整VSI的环路检测优先级值,选择检测到环路时优先关闭的AC。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 配置VSI的环路检测优先级值。
loopback-detection priority priority
缺省情况下,VSI的环路检测优先级值为7。
在完成上述配置后,在任意视图下执行display命令可以显示配置后环路检测的运行情况,通过查看显示信息验证配置的效果。
表2-2 环路检测显示和维护
操作 |
命令 |
显示环路检测的配置和运行情况 |
display loopback-detection |
Device A、Device B作为VXLAN网络的VTEP,在其上配置环路检测功能,使系统能够自动禁止出现环路的AC进行MAC地址学习同时将其阻塞,并通过打印日志信息来通知用户检查网络。
图2-4 VXLAN网络下的环路检测基本功能配置组网图
请在VXLAN网络内配置路由协议,确保VTEP之间路由可达。
(1) 配置Device A
# 配置VSI,VXLAN ID和Tunnel。
<DeviceA> system-view
[DeviceA] l2vpn enable
[DeviceA] interface tunnel 10 mode vxlan
[DeviceA-Tunnel10] source 1.1.1.1
[DeviceA-Tunnel10] destination 2.2.2.2
[DeviceA-Tunnel10] quit
[DeviceA] vsi 1
[DeviceA-vsi-1] vxlan 1
[DeviceA-vsi-1-vxlan-1] tunnel 10
[DeviceA-vsi-1-vxlan-1] quit
# 关闭STP功能。
[DeviceA] undo stp global enable
# 配置AC。
[DeviceA] interface ten-gigabitethernet 1/0/1
[DeviceA-Ten-GigabitEthernet1/0/1] service-instance 1
[DeviceA-Ten-GigabitEthernet1/0/1-srv1] encapsulation s-vid 10
[DeviceA-Ten-GigabitEthernet1/0/1-srv1] xconnect vsi 1
[DeviceA-Ten-GigabitEthernet1/0/1-srv1] quit
# 开启环路检测功能。
[DeviceA] vsi 1
[DeviceA-vsi-1] loopback-detection enable
# 配置环路检测的处理模式为Block模式。
[DeviceA-vsi-1] loopback-detection action block
# 配置环路检测的时间间隔为35秒。
[DeviceA-vsi-1] loopback-detection interval-time 35
# 配置环路检测的优先级为1。
[DeviceA-vsi-1] loopback-detection priority 1
(2) 配置Device B
# 配置VSI,VXLAN ID和Tunnel。
<DeviceB> system-view
[DeviceB] l2vpn enable
[DeviceB] interface Tunnel 10 mode vxlan
[DeviceB-Tunnel10] source 2.2.2.2
[DeviceB-Tunnel10] destination 1.1.1.1
[DeviceB-Tunnel10] quit
[DeviceB] vsi 1
[DeviceB-vsi-1] vxlan 1
[DeviceB-vsi-1-vxlan-1] tunnel 10
[DeviceB-vsi-1-vxlan-1] quit
# 关闭STP功能。
[DeviceB] undo stp global enable
# 配置AC。
[DeviceB] interface ten-gigabitethernet 1/0/1
[DeviceB-Ten-GigabitEthernet1/0/1] service-instance 1
[DeviceB-Ten-GigabitEthernet1/0/1-srv1] encapsulation s-vid 10
[DeviceB-Ten-GigabitEthernet1/0/1-srv1] xconnect vsi 1
[DeviceB-Ten-GigabitEthernet1/0/1-srv1] quit
# 开启环路检测功能。
[DeviceB] vsi 1
[DeviceB-vsi-1] loopback-detection enable
# 配置环路检测的处理模式为Block模式。
[DeviceB-vsi-1] loopback-detection action block
# 配置环路检测的时间间隔为35秒。
[DeviceB-vsi-1] loopback-detection interval-time 35
# 配置VSI的环路检测优先级值为6。
[DeviceB-vsi-1] loopback-detection priority 6
配置完成后,Device A的AC(Ten-GigabitEthernet1/0/1接口上的以太网服务实例1)在一个环路检测时间间隔内检测到了环路,打印了如下日志信息:
[DeviceA]
%Mar 25 10:59:59:690 2019 Device A LPDT/4/LPDT_VSI_LOOPED: A loop was detected on VSI 1's Ethernet service instance srv1 on Ten-GigabitEthernet1/0/1.
# 显示Device A上环路检测的配置和运行情况。
[DeviceA] display loopback-detection
Loop detection is enabled.
Global loop detection interval is 30 second(s).
Loop is detected on following interfaces:
* indicates the loop protection action was not triggered.
# indicates the loop protection action failed.
Interface Action mode VLANs/VSI
Ten-GigabitEthernet1/0/1 srv1 Block* 1
# 显示Device B上环路检测的配置和运行情况。
[DeviceB] display loopback-detection
Loop detection is enabled.
Global loop detection interval is 30 second(s).
Loop is detected on following interfaces:
* indicates the loop protection action was not triggered.
# indicates the loop protection action failed.
Interface Action mode VLANs/VSI
Ten-GigabitEthernet1/0/1 srv1 Block 1
由此可见,Device A和Device B都在各自的AC(Ten-GigabitEthernet1/0/1接口上的以太网服务实例1)上检测到了环路,并且Device B阻塞存在环路的AC。这是由于Device A的优先级较高,所以仅显示环路信息,未触发环路保护动作(环路检测处理模式字段的显示有特殊标识“*”)。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!