什么是STP
STP(Spanning Tree Protocol,生成树协议)就是把一个环形的结构改变成一个树形的结构,STP协议在逻辑上断开网络的环路,防止广播风暴的产生,而一旦正在用的线路出现故障,逻辑上被断开的线路又被连通,继续传输数据。
STP的作用
1.保证网络的可靠性
2.防止广播风暴的产生
STP工作原理(生成树算法及STP选举过程)
生成树算法分为三个步骤:
1.选择根网桥
选择根网桥的依据是网桥ID,网桥ID是一个八字节的字段,前两个字节的十进制数称为网桥优先级,后两个字节是网桥的MAC地址。网桥优先级是用于衡量网桥在生成树算法中优先级的十进制,取值范围为0-65535,默认值是32768。网桥ID中的MAC地址是交换机的自身MAC地址。当比较某个STP参数的两个取值时,值小的优先级高。在选择根网桥的时候,比较的方法是看那台交换机的网桥ID的值最小,优先级小的被选为根网桥,在优先级相同的情况下,MAC地址小的为根网桥。
2.选择根端口
根端口存在于非根网桥上,需要在每个非根网桥上选择一个根端口。
选择根端口的依据按照顺序依次如下:
(1)到根网桥最低的根路径成本
(2)直连的网桥ID最小
(3)对端的端口ID最小
根路径成本是两个网桥间的路径上所有链路的成本之和,也就是某个网桥到达根网桥的中间所有链路的路径成本之和,路径成本用来代表一条链路带宽的大小,一条链路的带宽越大,它传输的数据的成本就越低。
4.选择指定端口
选择指定端口的依据与根端口相同,按顺序有三个:
(1)根路径成本较低
(2)所在的交换机的网桥ID的值最小
(3)自身的端口ID最小
根网桥上的接口都是指定端口,因为根网桥上端口的根路径成本为0。
BPDU(Bridge Protocol Data UNit,桥协议数据单元)
交换机之间通过BPDU来交换网桥ID、根路径成本等信息。交换机从端口发送一个BPDU帧,使用该端口本身的MAC地址作为源地址。BPDU帧利用了一个STP组播地址(01-80-c2-00-00-00)作为它的一个目的地址,使之能到达相邻的、并处于STP侦听状态的交换机。每隔两秒,便向所有的交换机端口发送一次BPDU报文,以便交换机或网桥能交换当前最新的拓扑信息,并迅速识别和检测其中的环路。
1. BPDU的两种类型
一种是配置BPDU,用于生成树计算。
一种是拓扑变更通告BPDU,用于通告网络拓扑的变化。
2.BPDU报文字段
(1)根网桥ID:由一个二字节优先级和一个六字节网桥MAC地址组成。这个信息组合标明已经被选定为根网桥的设备的标识。
(2)根路径成本:说明了这个BPDU从根网桥传输了多远,成本是多少。这个字段的值用来决定哪些端口将进行转发,哪些端口将被阻断。
(3)发送网桥ID:这是发送该BPDU的网桥信息。由网桥的优先级和网桥MAC地址组成。
(4)端口ID:端口ID是由一个字节的端口优先级和一个字节的端口编号组成。
(5)计时器:计时器用于说明生成树用多长时间能完成它的每项功能。
STP端口状态详细描述如下:
(1)Disabled(禁用):由管理员设定或因网络故障使系统的端口处于Disabled状态。
(2)Blocking(阻塞):阻塞状态的端口既不能接收或发送数据,也不能向它的地址表添加MAC地址。仅允许接收BPDU报文,以便能侦听到其他的邻接交换机的信息。选出指定端口后非指定端口也处于阻塞状态。
(3)Listening(侦听):在Listening状态下,端口仍不能接收或发送数据帧,允许它接收或发送BPDU报文。
(4)Learning(学习):该状态下端口可以发送和接收BPDU报文,可以学习新的MAC地址,并将该地址添加到交换机的地址表中。
(5)Forwarding(转发):在Forwarding状态下,该端口既可以发送和接收数据帧,也可以收集MAC地址加入到它的地址表,还可以发送和接收BPDU报文。
3.生成树利用三种计时方法来确保一个网络正确地收敛。现将STP计时器及它们的默认值描述如下:
(1)Hello时间:网桥发送配置BPDU报文之间的时间间隔,IEEE802.1d标准规定的默认访问时间为2s。
(2)转发延迟:一个交换机端口在Listening和Learning状态所花费的时间间隔,默认值各为15s。
(3)最大老化时间:交换机丢弃BPDU报文之前存储它的最大时间,最大老化时间的默认值为20s。
典型的端口过渡如下:
(1)从阻塞到侦听(20s)
(2)从侦听到学习(15s)
(3)从学习到转发(15s)
STP与VLAN的关系
VLAN与生成树之间的关系主要有以下几种:
(1)IEEE的通用生成树(CST)
(2)Cisco的每VLAN生成树(PVST)
(3)Cisco的能够兼容CST的PVST(PVST+)
(4)IEEE的MST(Multiple Spanning Tree,多生成树)
PVST+的配置
除了配置网络中比较稳定的交换机为根网桥外,PVST+的配置主要还有以下方面:
(1)利用PVST+实现网络负载分担
(2)配置速端口(PostFast),使连接终端的短裤快速进入转发状态
PVST+的配置命令
(1)启用生成树命令如下:
Switch(config)#spanning-tree vlan vlan-list
(2)指定根网桥
由于MAC地址不可更改,所以要指定VLAN的优先级,可以使用下面命令更改优先级:
Switch(config)#spanning-tree vlan vlan-list priority Bridge-priority
还可以使用命令指定交换机为根网桥,如配置为primary,则交换机的优先级变成24576,配置为secondary,优先级变成为28672。配置命令如下:
Switch(config)#spanning-tree vlan vlan-list root {primary | secondary}
(3)修改端口成本命令如下:
Switch(config-if)#spanning-tree vlan vlan-list cost cost
(4)修改端口优先级命令如下:
Switch(config-if)#spanning-tree vlan vlan-list port-priority priority
(5)配置速端口命令如下:
Switch(config-if)#spanning-tree portfast
(6)查看生成树的配置命令如下:
Switch#show spanning-tree
(7)查看某个VLAN的生成树详细信息命令如下:
Switch#show spanning-tree vlan vlan-id detail