定义
以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,并导致广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为解决交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)。
STP包含两种含义:
- 狭义的STP是指IEEE 802.1D中定义的STP协议。
- 广义的STP包括IEEE 802.1D中定义的STP、IEEE 802.1W中定义的快速生成树协议RSTP(Rapid Spanning Tree Protocol)和IEEE 802.1S中定义的多生成树协议MSTP(Multiple Spanning Tree Protocol)。
目前,生成树协议支持如下:
- STPIEEE于1998年发布的802.1D标准定义了STP。STP是数据链路层的管理协议,用于二层网络的环路检测和预防。STP可阻塞二层网络中的冗余链路,将网络修剪成树状,达到消除环路的目的。但是,STP拓扑收敛速度慢,即使是边缘端口也必须等待两倍forward delay定时器的时间(缺省为30秒)延迟,端口才能迁移到转发状态。
- RSTPIEEE于2001年发布的802.1W标准定义了RSTP。RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN(Virtual Local Area Network)共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡,还有可能造成部分VLAN的报文无法转发。RSTP向下兼容STP协议,可以混合组网。
- MSTPIEEE于2002年发布的802.1S标准定义了MSTP。MSTP通过设置VLAN映射表(即VLAN和生成树实例的对应关系表),把VLAN和生成树实例联系起来。同时它把一个交换网络划分成多个域,每个域内形成多棵生成树实例,生成树实例之间彼此独立。MSTP将环路网络修剪成为一个无环的树形网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。MSTP兼容STP和RSTP。三种生成树协议的比较如表1所示。
目的
在以太网交换网中部署生成树协议后,如果网络中出现环路,生成树协议通过拓扑计算,可实现:
- 消除环路:通过阻塞冗余链路消除网络中可能存在的网络通信环路。
- 链路备份:当前活动的路径发生故障时,激活冗余备份链路,恢复网络连通性。
STP出现的背景
STP是一个用于局域网中消除环路的协议。运行该协议的交换设备通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路。由于局域网规模的不断增长,生成树协议已经成为了当前最重要的局域网协议之一。
图1 典型局域网络示意图
如图1所示网络中,会产生如下两种情况:
- 广播风暴导致网络不可用。环路产生广播风暴,这是众所周知的。图1中,假设交换设备上没有启用STP协议。如果HostA发出广播请求,那么广播报文将被其他两台交换设备的端口port1接收,并分别从端口port2广播出去,然后端口port2又收到另一台交换设备发过来的广播报文,再分别从两台交换设备的端口port1转发,如此反复,最终导致整个网络资源被耗尽,网络瘫痪不可用。
- MAC地址表震荡导致MAC地址表项被破坏。如图1所示,即使是单播报文,也有可能导致交换设备的MAC地址表项混乱,以致破坏交换设备的MAC地址表。假设图1所示的网络中没有广播风暴,HostA发送一个单播报文给HostB,如果此时HostB临时从网络中移去,那么交换设备上有关HostB的MAC地址表项也将被删除。此时HostA发给HostB的单播报文,将被交换设备S1的端口port1接收,由于S1上没有相应的MAC地址转发表项,该单播报文将被转发到端口port2上,然后交换设备S2的端口port2又收到从对端port2端口发来的单播报文,然后又从port1发出去。如此反复,在两台交换设备上,由于不间断地从端口port1、port2收到主机A发来的单播报文,交换设备会不停地修改自己的MAC地址表项,从而引起了MAC地址表的抖动。如此下去,最终导致MAC地址表项被破坏。
STP基本概念
基本思想
STP是数据链路层协议。运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断增生和无限循环,避免设备由于重复接收相同的报文造成处理能力下降。
运