更新时间:2024-11-11
1环路检测概述
网络中的环路会导致设备对广播、组播以及未知单播等报文进行重复发送,造成网络资源的浪费甚至导致网络瘫痪。为了能够及时发现二层网络中的环路问题,以避免对整个网络造成严重影响,需要提供一种检测功能,使网络中出现环路时能及时通知用户检查网络连接和配置情况,并能够将出问题的端口进行受控操作。Loopback Detection(环路检测)功能可以检测设备的端口是否发生环回,它通过从端口定时发送检测报文,并检测该报文是否能够从发出去的接口送回来。当设备发现接口存在环回情况,可以及时通过发送告警信息到网管系统,使管理人员及时发现并解决网络问题,避免长时间断网现象。此外,设备还可以进行端口受控,根据需求选择配置阻端接口、禁止端口MAC 学习、关闭端口(error-disable)三种处理方式,能迅速将环回对网络的影响降低至最小。
本公司交换机支持的环路检测特性比较丰富,主要有:
• 支持配置端口的环路检测功能
• 支持配置环路检测报文的目的MAC地址,可以对每个端口发送的环路检测报文进 行配置
• 支持配置端口对指定的VLAN进行环路检测,最多支持对10个VLAN进行环路检测
• 支持配置端口环路检测报文的发送周期和端口进行受控操作后的恢复周期
• 支持对端口进行受控操作,主要有阻塞端口、禁止端口的MAC地址学习、关闭端口(error-disable)三种处理方式
• 支持对端口默认是否存在环路进行配置操作
1.1环路检测报文的格式
字段 |
长度/字节 |
值 |
DMAC |
6 |
0x0180C2B0000A(默认,可以配置) |
SMAC |
6 |
交换机的系统MAC地址 |
TPID |
2 |
0x8100,VLAN标签类型 |
TCI |
2 |
VLAN标签的具体值,优先级,VLAN ID |
TYPE |
2 |
Type:协议类型,取值为0x9001 |
CODE |
2 |
协议子类型,代表环路检测,取值0x0001 |
VERSION |
2 |
取0x0000,目前保留 |
Length |
2 |
取0x0008, 环路检测报文头部的长度 |
RESERVE |
2 |
保留字段 |
SYSMAC |
6 |
交换机系统的MAC地址 |
SEQUENCE |
4 |
报文的序列号,发送报文前系统会随机生成 |
DiID |
4 |
端口号,85机型为全局端口号 |
End |
2 |
0x0000 结束符 |
2环路检测配置任务表
• 配置全局的环路检测功能
• 配置端口的环路检测功能
• 配置端口对指定VLAN进行环路检测
• 配置端口的环路检测周期
• 配置端口的受控功能
• 配置端口发送的环路检测报文的目的MAC地址
• 配置端口默认存在环路问题
• 显示环路检测全局配置信息
• 显示环路检测端口信息
3环路检测配置
3.1配置全局的环路检测功能
全局打开或关闭环路检测功能,全局命令默认对所有物理端口生效。全局配置相当于一个开关,只有当全局命令开启后,端口上开启的环路检测功能才会生效。如果端口上未开启环路检测功能,则端口配置不生效。
命令 |
目的 |
[no] loopback-detection |
配置全局环路检测功能 |
3.2配置端口的环路检测功能
在指定端口上打开或关闭环路检测功能。需要全局上开启环路检测功能后,端口配置才会生效。
命令 |
目的 |
[no] loopback-detection enable |
配置端口环路检测功能 |
3.3配置端口对指定VLAN进行环路检测
配置对指定VLAN的环回检测功能后,端口会定时发送多份带指定VLAN Tag的检测报文,一个接口最多可发送10份带指定VLAN Tag的检测报文。
需要注意的是端口必须存在于所配置的VLAN内,否则配置失效,且配置的VLAN必须创建,具体为,如果端口在VLAN2-VLAN8内进行环路检测,如果端口配置成trunk模式,且trunk vlan-allowed为VLAN 5-8,那么交换机发出的带2-4tag的报文会无法从端口出去导致配置失效,同时trunk vlan-untagged需要配置为包括2-8使出去的报文都能带上vlan tag,且相关VLAN必须创建,否则那些带该VLAN id的tag会失效。
命令 |
目的 |
[no] loopback-detection vlan-control vlanlist |
配置端口对指定VLAN进行环路检测 |
3.4配置端口的环路检测周期(报文发送周期、端口受控恢复周期)
命令 |
目的 |
[no] loopback-detection hello-time time |
配置端口环路检测报文发送的周期 |
由于网络是处于一个时刻变化中,因此环路检测是一个持续的过程。端口以一定的时间间隔周期性的发送环路检测报文。这个时间间隔即环路检测报文的发送周期,系统默认时间为3秒。
命令 |
目的 |
[no] loopback-detection recovery-time time |
配置端口环路检测报文发送的周期 |
设置当环路消失后,端口的自动恢复时间。默认当端口10秒内没有收到发出去的环路检测报文,就认为环路消失。建议恢复时间至少是报文发送时间的3倍;如果发送周期配置的很小,恢复时间建议至少比发送周期多10S。
3.5配置端口的受控功能
命令 |
目的 |
[no] loopback-detection control {block|learning|shutdown} |
配置端口的环路检测受控功能 |
当端口检测到该端口下的网络存在环路时,可以根据配置的受控功能来对端口进行相应的受控操作,端口的受控状态有block(堵塞端口),nolearn(禁止MAC地址学习),shutdown(error-disable关闭端口),trap(接口只上报告警)。当配置了任何一种受控状态且发现端口下存在环路时,都会发送trap告警信息。缺省情况下为trap配置。
全局开启环路检测之后,通过开启环路检测功能的端口发送环路检测报文后,该端口又收到了之前发送的环路检测报文,则会该端口进行下面四种受控操作:
Block:堵塞端口.当检测到环路时,将该端口与其它端口隔离,进入该端口的数据报文无法转发给其它端口。使该端口处于protocol down状态同时老化该端口的MAC地址表。
Nolearn:禁止端口MAC地址学习。当检测到环路时,该端口将不再进行MAC地址学习同时老化该端口的MAC地址表。
shutdown: 关闭端口。当检测到环路时,除了发送trap告警信息和老化端口的MAC地址表,还将自动关闭该端口(error-disable),使其不能收发报文。直到err-disable-recover时间到。
Trap: 端口只上报告警:当检测到环路时,端口只上报告警和老化端口的MAC地址,无其他动作,端口的默认受控配置即为trap操作。
当端口在block状态时,将无法转发进入该端口的数据报文,同时端口会继续发送环路检测报文,当检测到环路消失时,端口将自动恢复。默认在10s内没收到发出去的环路检测报文,认为环路消失。当端口处在block状态时。
Block状态时,端口协议为down,而shutdown状态时,端口链路直接down。
3.6配置端口发送的环路检测报文的目的MAC地址
命令 |
目的 |
[no] loopback-detection dest-mac Mac-address |
配置端口发送环路检测报文的目的MAC地址 |
系统默认发出的环路检测报文的目的MAC地址为01-80-C2-00-00-0a,如果用户进行了配置则按照用户配置的MAC地址作为环路检测报文的目的MAC地址。
3.7配置端口默认存在环路问题
命令 |
目的 |
[no] loopback-detection existence |
配置端口默认是否存在环路问题 |
主要为配置当端口起来和端口环路检测功能生效的时候是否认为该端口下存在环路问题。当端口的受控功能配置为shutdown时,不宜将端口下配置成存在环路问题,因为处于shutdown状态的话端口已经不转发报文了。默认配置为认为端口下不存在环路。
3.8显示环路检测全局配置信息
命令 |
目的 |
show loopback-detection |
显示全局的环路检测配置信息 |
主要用来显示全局的一些环路检测配置和信息,主要包括全局的配置,以及各个端口下是否发现环路问题,以及端口的一些配置信息。
3.9显示环路检测端口配置信息
命令 |
目的 |
show loopback-detection interface intf |
显示端口的环路检测配置信息 |
主要用来显示端口的环路检测信息,包括端口的定时器值和端口收发的报文数据信息。
4配置示例
图1.1环路检测配置示例图
如图1.1所示,交换机S1的端口进行对指定VLAN(1,2,3)的环路检测,需要在各个交换机上进行这样的配置:
交换机S1:
端口interface GigaEthernet0/1的配置:
switchport trunk vlan-untagged 1-3
switchport mode trunk
loopback-detection enable
loopback-detection control block
loopback-detection vlan-control 1-5
全局配置:
loopback-detection
vlan 1-3
交换机S2:
端口interface GigaEthernet0/1的配置:
switchport mode trunk
端口interface GigaEthernet0/2的配置:
switchport mode trunk
端口interface GigaEthernet0/3的配置:
switchport mode trunk
全局配置:
vlan1-3
交换机S3
端口interface GigaEthernet0/1的配置:
switchport pvid 3
如果S3连接的网络存在环路,如S3在某个端口下存在环路且该端口的PVID为3,则会报文会回传到S1的G0/1,S1发现环路问题后会对端口G0/1进行block受控操作。