为什么要配置环路检测?
网络连接错误或配置错误都容易导致二层网络中出现转发环路,使网络设备对广播、组播报文进行重复发送,这样就会造成网络资源和设备硬件资源的严重浪费,将会造成设备卡顿运维缓慢甚至导致网络瘫痪。
为了能够及时发现二层网络中的环路,避免对整个网络造成严重影响,需要提供一种检测机制,使网络中出现环路时能及时通知用户检查网络连接和配置情况,这种机制就是环路检测机制。
当网络中出现环路时,环路检测机制通过生成日志信息来通知用户,并可根据用户事先的配置来选择是否关闭出现环路的端口。
设备通过发送环路检测报文并检测其是否返回本设备以确认是否存在环路,若某端口收到了本设备发出的环路检测报文,就认定该端口所在链路存在环路。
注:不要求收端口和发端口为同一端口
设备多久发一次环路检测报文?
因为网络时刻都在变化中的,所以环路检测是一个持续的 一直进行的过程,它以一定的时间间隔发送环路检测报文来确定各端口是否有环路以及存在环路的端口上是否已消除环路等,这个时间间隔就称为环路检测的时间间隔。
当网络设备检测到有环路
怎么处理?
当系统检测到端口出现环路时的处理方式,有以下几种方式:
1、Block模式:
当系统检测到端口出现环路时,不仅会生成日志信息,还会禁止端口学习mac地址并将端口阻塞掉(我们知道端口不能学习MAC地址也就是这个端口无法使用了)
2、No-learning模式:
当系统检测到端口出现环路时,不仅会生成日志信息,还会禁止端口学习MAC地址
3、Shutdown模式:
当系统检测到端口出现环路时,不仅会生成日志信息外,还会自动关闭该端口,使其不能收发任何报文
被关闭的端口将在shutdown-interval命令所配置的时间之后自动恢复。
默认情况下系统不采用上述任何一种模式(需要配置),当系统检测到端口出现环路时,只生成日志信息,不对该端口进行任何处理
注意:
· 在Block模式和No-learning模式下,当设备检测到某端口出现环路后,若在三倍的环路检测时间间隔内没有再收到环路检测报文,就会认为这个端口上的环路已经消除了,会自动将该端口恢复为正常状态,并通知给用户。
· 在Shutdown模式下,出现环路的端口直接被系统关闭,然后在shutdown-interval命令所配置的时间之后自动恢复正常。如果此时环路尚未消除,还是能接收到环路检测报文,这个端口将再次关闭,然后恢复……如此往复直至环路消除
环路检测功能开启及配置
system-view
[H3C]loopback-detection enable
注:全局开启环路检测功能(默认是关闭的)
system-view
[H3C]interface GigabitEthernet 1/0/1 #进入需要开启环路检测的端口
[H3C-GigabitEthernet1/0/1]loopback-detection enable #开启端口环路检测功能
system-view
[H3C]loopback-detection interval-time 60 #配置环路检测报文的发送间隔(5-300秒)
注:间隔时间越长消耗的系统性能越就越少,间隔时间越短环路检测的灵敏度越高,是系统资源消耗也高,所以一般都不更改(默认30秒)
system-view
[H3C]interface GigabitEthernet 1/0/1 #进入需要开启环路检测的端口
[H3C-GigabitEthernet1/0/1]loopback-detection action ? #
no-learning No-learning mode
semi-block Semi-block mode
shutdown Shutdown mode
[H3C-GigabitEthernet1/0/1]
注:在端口上配置端口环路处理模式(根据设备类型不同有稍微差别)
配置完环路检测的配置后,我们可以使用以下命令查看设备是否存在环路
display loopback-detection
总结
以上就是环路检测的内容及配置(有部分配置没说明,因为我们基本用不到),原理比较简单,配置更简单,就几条命令。
环路在网络实际环境中,尤其是规模比较大、比较复杂的网络中是很容易出现的,所以环路检测最好是配置上,一般都会直接配置发现环路直接shutdown端口。
当我们发现同一个lan中的多用户网络很卡,甚至是时断时续,我们就要注意了,很可能是有端口环路产生,当你远程设备远程不上,但是设备在线时,或者通过console口登录设备,发现设备很卡,那么我们也要注意了,是不是有端口环路。