生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能。
由于生成树协议本身比较小,所以并不像路由协议那样广为人知。但是它却掌管着端口的转发大权—“小树枝抖一抖,上层协议就得另谋生路”。真实情况也确实如此,特别是在和别的协议一起运行的时候,生成树就有可能断了其他协议的报文通路,造成种种奇怪的现象。
生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。本文标题中的“生成树协议”是一个广义的概念,并不是特指IEEE 802.1D中定义的STP协议,而是包括STP以及各种在STP基础上经过改进了的生成树协议。
在生成树协议发展过程中,老的缺陷不断被克服,新的特性不断被开发出来。按照大功能点的改进情况,我们可以粗略地把生成树协议的发展过程划分成三代,下面一一道来。
开天辟地的第一代生成树协议:
STP/RSTP
在网络发展初期,透明网桥是一个不得不提的重要角色。它比只会放大和广播信号的集线器聪明得多。它会悄悄把发向它的数据帧的源MAC地址和端口号记录下来,下次碰到这个目的MAC地址的报文就只从记录中的端口号发送出去,除非目的MAC地址没有记录在案或者目的MAC地址本身就是多播地址才会向所有端口发送。通过透明网桥,不同的局域网之间可以实现互通,网络可操作的范围得以扩大,而且由于透明网桥具备MAC地址学习功能而不会像Hub那样造成网络报文冲撞泛滥。
但是,金无足赤,透明网桥也有它的缺陷,它的缺陷就在于它的透明传输。透明网桥并不能像路由器那样知道报文可以经过多少次转发,一旦网络存在环路就会造成报文在环路内不断循环和增生,甚至造成恐怖的“广播风暴”。之所以用“恐怖”二字是因为在这种情况下,网络将变得不可用,而且在大型网络中故障不好定位,所以广播风暴是二层网络中灾难性的故障。
在这种大环境下,扮演着救世主角色的STP(Spanning TreeProtocol)协议来到人间,其中以IEEE的802.1D版本最为流行。
STP协议的基本思想十分简单。大家知道,自然界中生长的树是不会出现环路的,如果网络也能够像一棵树一样生长就不会出现环路。于是,STP协议中定义了根桥(RootBridge)、根端口(RootPort)、指定端口(DesignatedPort)、路径开销(PathCost)等概念,目的就在于通过构造一棵自然树的方法达到裁剪冗余环路的目的,同时实现链路备份和路径最优化。用于构造这棵树的算法称为生成树算法SPA(Spanning TreeAlgorithm)。
要实现这些功能,网桥之间必须要进行一些信息的交流,这些信息交流单元就称为配置消息 BPDU(BridgeProtocol Data Unit)。STP BPDU是一种二层报文,目的MAC是多播地址01-80-C2-00-00-00,所有支持STP协议的网桥都会接收并处理收到的BPDU报文。该报文的数据区里携带了用于生成树计算的所有有用信息。
要了解生成树协议的工作过程也不难,首先进行根桥的选举。选举的依据是网桥优先级和网桥MAC地址组合成的桥ID(Bridge ID),桥ID最小的网桥将成为网络中的根桥。在图1所示的网络中,各网桥都以默认配置启动,在网桥优先级都一样(默认优先级是32768)的情况下,MAC地址最小的网桥成为根桥,例如图1中的SW1,它的所有端口的角色都成为指定端口,进入转发状态。
接下来,其他网桥将各自选择一条 “最粗壮”的树枝作为到根桥的路径,相应端口的角色就成为根端口。假设图1中SW2和SW2、SW3之间的链路是千兆GE链路,SW1和SW3之间的链路是百兆FE链路,SW3从端口1到根桥的路径开销的默认值是19,而从端口2经过SW2到根桥的路径开销是4+4=8,所以端口2成为根端口,进入转发状态。同理,SW2的端口2成为根端口,端口1成为指定端口,进入转发状态。
根桥和根端口都确定之后一棵树就生成了,如图中实线所示。下面的任务是裁剪冗余的环路。这个工作是通过阻塞非根桥上相应端口来实现的,例如SW3的端口1的角色成为禁用端口,进入阻塞状态(图中用“×”表示)。
生成树经过一段时间(默认值是30秒左右)稳定之后,所有端口要么进入转发状态,要么进入阻塞状态。STPBPDU仍然会定时从各个网桥的指定端口发出,以维护链路的状态。如果网络拓扑发生变化,生成树就会重新计算,端口状态也会随之改变。
当然生成树协议还有很多内容,在这里不可能一一介绍。之所以花这么多笔墨介绍生成树的基本原理是因为它太“基本”了,其他各种改进型的生成树协议都是以此为基础的,基本思想和概念都大同小异。
STP协议给透明网桥带来了新生。但是,随着应用的深入和网络技术的发展,它的缺点在应用中也被暴露了出来。STP协议的缺陷主要表现在收敛速度上。
当拓扑发生变化,新的配置消息要经过一定的时延才能传播到整个网络,这个时延称为Forward Delay,协议默认值是15秒。在所有网桥收到这个变化的消息之前,若旧拓扑结构中处于转发的端口还没有发现自己应该在新的拓扑中停止转发,则可能存在临时环路。为了解决临时环路的问题,生成树使用了一种定时器策略,即在端口从阻塞状态到转发状态中间加上一个只学习MAC地址但不参与转发的中间状态,两次状态切换的时间长度都是Forward Delay,这样就可以保证在拓扑变化的时候不会产生临时环路。但是,这个看似良好的解决方案实际上带来的却是至少两倍Forward Delay的收敛时间!
为了解决STP协议的这个缺陷,在世纪之初IEEE推出了802.1w标准,作为对802.1D标准的补充。在IEEE 802.1w标准里定义了快速生成树协议RSTP(Rapid Spanning Tree Protocol)。RSTP协议在STP协议基础上做了三点重要改进,使得收敛速度快得多(最快1秒以内)。
第一点改进:为根端口和指定端口设置了快速切换用的替换端口(Alternate Port)和备份端口(Backup Port)两种角色,当根端口/指定端口失效的情况下,替换端口/备份端口就会无时延地进入转发状态。图2中所有网桥都运行RSTP协议,SW1是根桥,假设SW2的端口1是根端口,端口2将能够识别这种拓扑结构,成为根端口的替换端口,进入阻塞状态。当端口1所在链路失效的情况下,端口2就能够立即进入转发状态,无需等待两倍Forward Delay时间。
第二点改进:在只连接了两个交换端口的点对点链路中,指定端口只需与下游网桥进行一次握手就可以无时延地进入转发状态。如果是连接了三个以上网桥的共享链路,下游网桥是不会响应上游指定端口发出的握手请求的,只能等待两倍Forward Delay时间进入转发状态。
第三点改进:直接与终端相连而不是把其他网桥相连的端口定义为边缘端口(Edge Port)。边缘端口可以直接进入转发状态,不需要任何延时。由于网桥无法知道端口是否是直接与终端相连,所以需要人工配置。
可见,RSTP协议相对于STP协议的确改进了很多。为了支持这些改进,BPDU的格式做了一些修改,但RSTP协议仍然向下兼容STP协议,可以混合组网。虽然如此,RSTP和STP一样同属于单生成树SST(SingleSpanning Tree),有它自身的诸多缺陷,主要表现在三个方面。
第一点缺陷:由于整个交换网络只有一棵生成树,在网络规模比较大的时候会导致较长的收敛时间,拓扑改变的影响面也较大。
第二点缺陷:近些年IEEE802.1Q大行其道,逐渐成为交换机的标准协议。在网络结构对称的情况下,单生成树也没什么大碍。但是,在网络结构不对称的时候,单生成树就会影响网络的连通性。
假设SW1是根桥,实线链路是VLAN 10,虚线链路是802.1Q的Trunk链路,Trunk了VLAN 10和VLAN 20.当SW2的Trunk端口被阻塞的时候,显然SW1和SW2之间VLAN 20的通路就被切断了。
假设SW1是根桥,SW4的一个端口被阻塞。在这种情况下,SW2和SW4之间铺设的光纤将不承载任何流量,所有SW2和SW4之间的业务流量都将经过SW1和SW3转发,增加了其他几条链路的负担。
这些缺陷都是单生成树SST无法克服的,于是支持VLAN的多生成树协议出现了。
聪明伶俐的第二代生成树协议:
PVST/PVST+
每个VLAN都生成一棵树是一种比较直接,而且最简单的解决方法。它能够保证每一个VLAN都不存在环路。但是由于种种原因,以这种方式工作的生成树协议并没有形成标准,而是各个厂商各有一套,尤其是以Cisco的VLAN生成树PVST(Per VLAN Spanning Tree)为代表。
为了携带更多的信息,PVSTBPDU的格式和STP/RSTPBPDU格式已经不一样,发送的目的地址也改成了Cisco保留地址01-00-0C- CC-CC-CD,而且在VLAN Trunk的情况下PVST BPDU被打上了802.1Q VLAN标签。所以,PVST协议并不兼容STP/RSTP协议。
Cisco很快又推出了经过改进的PVST+协议,并成为了交换机产品的默认生成树协议。经过改进的PVST+协议在VLAN 1上运行的是普通STP协议,在其他VLAN上运行PVST协议。PVST+协议可以与STP/RSTP互通,在VLAN 1上生成树状态按照STP协议计算。在其他VLAN上,普通交换机只会把PVST BPDU当作多播报文按照VLAN号进行转发。但这并不影响环路的消除,只是有可能VLAN 1和其他VLAN的根桥状态可能不一致。
所有链路默认VLAN是VLAN 1,并且都Trunk了VLAN 10和VLAN 20.SW1和SW3运行单生成树SST协议,而SW2运行PVST+协议。在VLAN 1上,可能SW1是根桥,SW2的端口1被阻塞。在VLAN 10和VLAN 20上,SW2只能看到自己的PVSTBPDU,所以在这两个VLAN上它认为自己是根桥。VLAN 10和VLAN 20的PVST BPDU会被SW1和SW3转发,所以SW2检测到这种环路后,会在端口2上阻塞VLAN 10和VLAN 20.这就是PVST+协议提供的STP/RSTP兼容性。可以看出,网络中的二层环路能够被识别并消除,强求根桥的一致性是没有任何意义的。
由于每个VLAN都有一棵独立的生成树,单生成树的种种缺陷都被克服了。同时,PVST带来了新的好处,那就是二层负载均衡。
四台设备都运行PVST+协议,并且都Trunk了VLAN 10和VLAN 20.假设SW1是所有VLAN的根桥,通过配置可以使得SW4端口1上的VLAN 10和端口2上的VLAN 20阻塞,SW4的端口1所在链路仍然可以承载VLAN20的流量,端口2所在链路也可以承载VLAN 10的流量,同时具备链路备份的功能。这在以往的单生成树情况下是无法实现的。
聪明伶俐的PVST/PVST+协议实现了VLAN认知能力和负载均衡能力,但是新技术也带来了新问题,PVST/PVST+协议也有它们的“难言之隐”。
第一点缺陷:由于每个VLAN都需要生成一棵树,PVST BPDU的通信量将正比于Trunk的VLAN个数。
第二点缺陷:在VLAN个数比较多的时候,维护多棵生成树的计算量和资源占用量将急剧增长。特别是当Trunk了很多VLAN的接口状态变化的时候,所有生成树的状态都要重新计算,CPU将不堪重负。所以,Cisco交换机限制了VLAN的使用个数,同时不建议在一个端口上Trunk很多VLAN.
第三点缺陷:由于协议的私有性,PVST/PVST+不能像STP/RSTP一样得到广泛的支持,不同厂家的设备并不能在这种模式下直接互通,只能通过一些变通的方式实现,例如Foundry的IronSpan.IronSpan默认情况下运行的是STP协议,当某个端口收到PVSTBPDU时,该端口的生成树模式会自动切换成PVST/PVST+兼容模式。
一般情况下,网络的拓扑结构不会频繁变化,所以PVST/PVST+的这些缺点并不会很致命。但是,端口Trunk大量VLAN这种需求还是存在的。于是,Cisco对PVST/PVST+又做了新的改进,推出了多实例化的MISTP协议。
多实例化的第三代生成树协议:MISTP/MSTP
多实例生成树协议MISTP(Multi-Instance Spanning TreeProtocol)定义了“实例”(Instance)的概念。简单的说,STP/RSTP是基于端口的,PVST/PVST+是基于VLAN 的,而MISTP就是基于实例的。所谓实例就是多个VLAN的一个集合,通过多个VLAN捆绑到一个实例中去的方法可以节省通信开销和资源占用率。
在使用的时候可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在端口上转发状态将取决于对应实例在MISTP里的状态。值得注意的是网络里的所有交换机的VLAN和实例映射关系必须都一致,否则会影响网络连通性。为了检测这种错误,MISTPBPDU里除了携带实例号以外,还要携带实例对应的VLAN关系等信息。MISTP协议不处理STP/RSTP/PVST BPDU,所以不能兼容STP/RSTP协议,甚至不能向下兼容PVST/PVST+协议,在一起组网的时候会出现环路。为了让网络能够平滑地从 PVST+模式迁移到MISTP模式,Cisco在交换机产品里又做了一个可以处理PVST BPDU的混合模式MISTP-PVST+。网络升级的时候需要先把设备都设置成MISTP-PVST+模式,然后再全部设置成MISTP模式。
MISTP带来的好处是显而易见的。它既有PVST的VLAN认知能力和负载均衡能力,又拥有可以和SST媲美的低CPU占用率。不过,极差的向下兼容性和协议的私有性阻挡了MISTP的大范围应用。
多生成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定义的一种新型多实例化生成树协议。这个协议目前仍然在不断优化过程中,现在只有草案(Draft)版本可以获得。不过Cisco已经在 CatOS 7.1版本里增加了MSTP的支持,华为公司的三层交换机产品Quidway系列交换机也即将推出支持MSTP协议的新版本。
MSTP协议精妙的地方在于把支持MSTP的交换机和不支持MSTP交换机划分成不同的区域,分别称作MST域和SST域。在MST域内部运行多实例化的生成树,在MST域的边缘运行RSTP兼容的内部生成树IST(Internal Spanning Tree)。
中间的MST域内的交换机间使用MSTP BPDU交换拓扑信息, SST域内的交换机使用STP/RSTP/PVST+ BPDU交换拓扑信息。在MST域与SST域之间的边缘上,SST设备会认为对接的设备也是一台RSTP设备。而MST设备在边缘端口上的状态将取决于内部生成树的状态,也就是说端口上所有VLAN的生成树状态将保持一致。
MSTP设备内部需要维护的生成树包括若干个内部生成树IST,个数和连接了多少个SST域有关。另外,还有若干个多生成树实例MSTI(Multiple Spanning Tree Instance)确定的MSTP生成树,个数由配置了多少个实例决定。
MSTP相对于之前的种种生成树协议而言,优势非常明显。MSTP具有VLAN认知能力,可以实现负载均衡,可以实现类似RSTP的端口状态快速切换,可以捆绑多个VLAN到一个实例中以降低资源占用率。最难能可贵的是MSTP可以很好地向下兼容STP/RSTP协议。而且,MSTP是IEEE标准协议,推广的阻力相对小得多。
可见,各项全能的MSTP协议能够成为当今生成树发展的一致方向是当之无愧的。
生成树协议的未来之路
任何技术的发展都不会因为某项“理想”技术的出现而停滞,生成树协议的发展历程本身就说明了这一点。随着应用的深入,各种新的二层隧道技术不断涌现,例如Cisco的802.1QTunneling,华为QuidwayS8016的QinQ,以及基于MPLS的二层VPN技术等。在这种新形势下,用户和服务提供商对生成树协议又会有新的需求。生成树协议该往何处走?这个问题虽然现在还没有一个统一的答案,但是各厂商已经开始了这方面的积极探索。也许不久的将来,支持二层隧道技术的生成树协议将成为交换机的标准协议。
生成树算法的网桥协议STP(Spanning Tree Protocol) 它通过生成生成树保证一个已知的网桥在网络拓扑中沿一个环动态工作。网桥与其他网桥交换BPDU消息来监测环路,然后关闭选择的网桥接口取消环路,统指IEEE802·1生成树协议标准和早期的数字设备合作生成树协议,该协议是基于后者产生的。IEEE版本的生成树协议支持网桥区域,它允许网桥在一个扩展本地网中建设自由环形拓扑结构。IEEE版本的生成树协议通常为在数字版本之上的首选版本。
生成树协议的主要功能有两个:一是在利用生成树算法、在以太网络中,创建一个以某台交换机的某个端口为根的生成树,避免环路。二是在以太网络拓扑发生变化时,通过生成树协议达到收敛保护的目的。
结构思路
生成树协议拓扑结构的思路是: 不论网桥(交换机)之间采用怎样物理联接,网桥(交换机)能够自动发现一个没有环路的拓扑结构的网路,这个逻辑拓扑结构的网路必须是树型的。生成树协议还能够确定有足够的连接通向整个网络的每一个部分。所有网络节点要么进入转发状态,要么进入阻塞状态,这样就建立了整个局域网的生成树。当首次连接网桥或者网络结构发生变化时,网桥都将进行生成树拓扑的重新计算。为稳定的生成树拓扑结构选择一个根桥, 从一点传输数据到另一点, 出现两条以上条路径时只能选择一条距离根桥最短的活动路径。生成树协议这样的控制机制可以协调多个网桥(交换机)共同工作, 使计算机网络可以避免因为一个接点的失败导致整个网络联接功能的丢失, 而且冗余设计的网络环路不会出现广播风暴。
实现
802.1D生成树协议概述
1,几个关键的概念:(1)网桥标识(bridge ID):
①非扩展的:网桥优先级(2bytes)+ MAC地址
②扩展的:网桥优先级(4bits) + 系统标识(VLAN ID;12bits) + MAC地址
(2)网桥协议数据单元(BPDU):
①配置(CFG)BPDU: 初始时每个网桥都会发送,假设自己就是根网桥
收敛后,只从根网桥发出,其他网桥在根端口接收后向下中继。
②拓扑改变提示(TCN)BGDU:当拓扑发生变化时,其他网桥可以从根端口发出该BPDU,到达根网桥。
根网桥在配置BPDU中设定TCN位,提示其他网桥快速清理MAC地址表。
(3)时间值:
①HELLO间隔:2秒,CFG BPDU发送间隔
②MAX AGE: 20秒,CFG BPDU的保留时间
③FWD_DELAY: 15秒,监听(listening)和学习(learning)的时间
(4)路径代价:与链路速率相关,用于计算网桥间的距离
(5)端口状态:
①关闭(disable):端口处于管理关闭状态
②阻塞(blocking): 不能转发用户数据
③监听(listening): 接口开始启动
④学习(learning) : 学习MAC地址, 构建MAC表进程项
⑤转发(forwarding): 可以转发用户数据
(6)选择标准:
①最低的网桥标识号
②最低的路径代价到根网桥
③最低的发送者的网桥标识号
④最低的端口标识号
2,选择操作顺序:
(1)选择一个根网桥:每一个网络选择一个
(2)选择一个根端口:每一个非根网桥选择一个
(3)选择一个指派端口:每一个网段选择一个
(4)非指派端口被放置在阻塞状态
在园区网中实现生成树协议
1,实现优化的生成树拓扑
(1)每VLAN生成树协议(PVST):每一个VLAN有一个生成树的计算进程
(2)根网桥的选择:楼内分布层交换机应该成为根网桥,即避免访问层交换机成为根网桥
(3)生成树的负载平衡:配置不同的分布层交换机成为不同VLAN的根网桥
2,配置根网桥:两种方式
(1)定义优先级:
(config)#spanning-tree vlan
(2)定义交换机为根网桥:
(config)#spanning-tree vlan
加速生成树协议的收敛过程
1,端口快速(postfast):
(1)端口立即从阻塞状态进入转发状态,不经过监听和学习状态
(2)应该只将这一特性配置在连接终端主机的端口上,即不应配置在交换机间的端口上。
(3)配置命令:两种方式
①接口配置模式:
(config-if)#spanning-treeportfast
②全局模式:对所有非骨干链路端口生效
(config)#spanning-treeportfastdefault
2,快速生成树协议(RSTP):802.1w
(1)端口状态:
①丢弃(discarding):不能转发用户数据
②学习(learning):学习MAC地址, 构建MAC表进程项
③转发(forwarding): 可以转发用户数据
(2)端口类型:
①根(root)端口:与802.1D相同
②指派(designated)端口: 与802.1D相同
③预备(alternative)端口: 端口被阻塞,作为根端口的备份
④备份(backup)端口:(learning) : 端口被阻塞,作为指派端口的备份
(3)网桥协议数据单元:
①数据字段:增加了4个字段描述位,说明端口的状态和类型
②CFG BPDU:直接在两个交换机间交换,如果丢失3个BPDU,意味着链路拓扑发生改变。
③TCNBPDU:直接在交换机间泛洪。
(4)快速收敛机制:
①边缘(edge)端口: 连接终端主机的端口,自动实现端口快速特性
②点到点链路:即全双工链路,自动实现快速端口状态改变,不再有max-age和fwd-delay的延迟
(5)配置命令:
(config)#spanning-tree mode rapid-pvst
(6)校验命令:
#show spanning-tree vlan
#debug spanning-tree
增强生成树协议的操作性能
1,多进程生成树协议(MSTP):
(1)定义:映射多个vlan生成树计算进程到一个MST的进程;减少PVST的计算负担;实现与CST域的互操作
(2)配置命令:
①进入MST配置模式:
(config)#spanning-tree mst configuration
②定义MST域名:
(config-mst)#name
③定义MST的配置版本号:
(config-mst)#revision
④映射多个VLAN到一个MST进程:
(config-mst)#instance
⑤定义根网桥:
(config)#spanning-tree mst
(3)校验命令:
#show spanning-tree mst configuration
#show spanning-tree mst
2,以太通道(etherchannel):
(1)定义:
①绑定多条相同的以太网链路作为一个逻辑的通道。
②生成树协议将其看作为一个端口的链路
③实现多链路上的负载平衡和冗余
(2)配置二层的以太通道:
①指定要绑定的端口范围:
(config)#interface range <type slot/port - port>
②定义通道管理协议:
(config-if-range)#channel-protocol [pagp|lacp]
③定义端口到通道:
(config-if-range)#channel-group
④定义负载平衡模式:
(config)#port-channel load-banlance
(3)校验命令:
#show interfaces
#show etherchannel
#show etherchannel
保护优化的生成树拓扑结构
1,防止“端口快速”的错误:
错误:把交换机连接到了配置了“端口快速”的端口上,可能引起环路问题
(1)BPDU守卫(GUARD):
①定义:当配置了“端口快速”的端口接收到BPDU时,关闭该端口。
②配置命令:
(config)#spanning-treeportfastbpduguard
③校验命令:
#show spanning-tree summary totals
(2)BPDU过滤(filtering):
①定义:当配置了“端口快速”的端口接收到BPDU时,该端口失去“端口快速”特性。
②配置命令:
(config)#spanning-treeportfastbpdufilter default
③校验命令:
#show spanning-tree summary totals
2,保护现有优化的根网桥:“根守卫”(root guard)
(1)定义:当端口收到一个具有更好的参数的网桥协议数据单元(superiorbpdu)时,
将该端口放置在一个“根不一致(root-inconsistent)”状态,不转发这一BPDU。
(2)配置命令:
(config-if)#spanning-tree guardroot
(3)校验命令:
#show spanning-tree inconsistentports
3,阻止可能的生成树的环路:
(1)单向链路检测(UDLD):
①定义: 通过发送检测消息发现物理链路出现单向中断时,关闭该链路端口。
②配置命令:
(config)#udld enable →在所有的光纤端口上启用
或(config-fi)#udld enable →在某一个光纤或非光线端口上启用
③校验命令:
#show udld interface
(2)环路守卫(loop guard):
①定义: 当某一方向端口在MAX-AGE时间后没有收到BPDU时,
将该端口放置在一个“环路非一致(loop-inconsistent)”状态,
阻止该端口发送用户数据。
②配置命令:
(config-if)#spanning-tree guardloop
③校验命令:
#show spantree guard
分析
网络专业人士对生成树协议的几点分析见解:
(1)生成树协议提供一种控制环路的方法。采用这种方法,在连接发生问题的时候,你控制的以太网能够绕过出现故障的连接。
(2)生成树中的根桥是一个逻辑的中心,并且监视整个网络的通信。最好不要依靠设备的自动选择去挑选哪一个网桥会成为根桥。
(3)生成树协议重新计算是繁冗的。恰当地设置主机连接端口(这样就不会引起重新计算),推荐使用快速生成树协议。
(4)生成树协议可以有效的抑制广播风暴。开启生成树协议后抑制广播风暴,网络将会更加稳定,可靠性、安全性会大大增强。