欢迎user
网络连接或配置的错误容易导致二层网络中出现转发环路,使设备对广播、组播以及未知单播等报文进行重复发送,造成网络资源的浪费甚至导致网络瘫痪。为了能够及时发现二层网络中的环路,以避免对整个网络造成严重影响,需要提供一种监测机制,使网络中出现环路时能及时通知用户检查网络连接和配置情况,并能够自动关闭出问题的端口以消除环路,这种机制就是环路监测机制。当网络中出现环路时,环路监测机制通过打印日志信息(log)和发送告警信息(trap)以通知用户,同时还可根据用户事先的配置来选择是否关闭出现环路的端口。
设备通过发送环路监测报文、并监测其是否返回本设备(不要求收、发端口为同一端口)以确认是否存在环路,若某端口收到了由本设备发出的环路监测报文,就认定该端口存在环路。
图 1 环路监测报文以太网头格式
如图 1所示,是环路监测报文的以太网头格式定义,其中各字段的解释如下:
l DMAC:报文的目的MAC地址,使用组播MAC地址010F-E200-0007。当设备使能了环路监测功能时,会将该目的地址的报文上送CPU处理,并在收到该报文的VLAN内将原始报文广播一份。
l SMAC:报文的源MAC地址,采用发送该报文的设备的桥MAC。
l TPID:VLAN标签的类型,取值为0x8100。
l TCI:VLAN标签的具体值,具体内容为优先级、VLAN ID等。
l Type:协议类型,取值为0x8918。
如图 2所示,是环路监测报文的内部头格式定义,其中各字段的解释如下:
l Code:协议子类型,取值为0x0001,表示环路监测协议。
l Version:版本,取值为0x0000,目前保留。
l Length:报文长度(包括环路监测报文的头部,但不包括以太网头部)。
l Reserved:保留字段。
环路监测报文的内容以TLV(Type/Length/Value,类型/长度/值)格式进行组装,环路监测机制所支持的TLV类型以及携带要求如表 1所示。
表 1 TLV类型以及携带要求
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,表示发送端口所在的子槽位号 | 可选 |
由于网络时刻处于变化中,因此环路监测是一个持续的过程,它以一定的时间间隔发送环路监测报文来以确定各端口是否出现环路、以及存在环路的端口上的环路是否已消除等,这个时间间隔就称为环路监测的时间间隔。
环路监测的处理模式,就是系统监测到环路时的处理方式,分为以下两种:
l None模式:当监测到端口出现环路时,除打印日志信息和发送告警信息外,不对该端口进行任何处理。
l Shutdown模式:当监测到端口出现环路时,除打印日志信息并发送告警信息外,还会关闭该端口,使其不能收发报文(包括环路监测报文)。
除非进行手工开启,否则被环路监测的Shutdown模式所关闭的端口将一直维持关闭状态。
环路状态自动恢复的过程如下:当设备监测到某端口出现环路后,在三倍环路监测时间间隔内该设备如果没有收到环路监测报文,就判定该端口上的环路已消除,并通知给用户。
l 环路状态自动恢复仅在None模式下有效。在Shutdown模式下,由于出现环路的端口将被强制关闭,因此环路会自动立即消失。
l 当网络中存在环路时,为防止大量报文的冲击,设备会丢弃部分报文。而如果环路监测报文也被丢弃,设备在环路状态自动恢复功能的作用下会误判定环路已消除。在这种情况下,建议用户将环路监测的处理模式配置为Shutdown模式,或当设备提示出现环路时进行手工排查,将环路消除。