一,STP概述
STP(Spanning Tree Protocol,生成树协议)是有应用于交换机之间的防环的。功能是用来防环的。
基本原理:
通过在交换机之间传递一种特殊的协议报文,网桥协议数据单元(BPDU),来确定网络的拓扑结构。BPDU有两种,一种是配置BPDU(configuration BPDU),一种TC BPDU(拓扑变更BPDU)。
前者是用于计算无环的生成树的;后者是用于在二层网络拓扑发生变化时产生用来缩短MAC表项的刷新时间的(由默认的300s--->15s)
分类:
STP
PVST
RSTP---->802.1w
MSTP---->802.1s
二,STP选举机制
1.STP网桥角色
角色:根网桥(Root),备根网桥(Secondary),非根网桥
选举依据:根据BID(网桥ID)来标识符来进行选举的
--->BID=优先级(默认是32768)+本地MAC地址
越小越优先
2.STP端口角色
角色:根端口(RP),指定端口(DP),非指定端口(NDP)
选举依据:
①先选举cost值最短
②再选举BID最小
③再选举邻居PID最小
越小越优先----在STP中所有的参数都是越小越优先
总结:
根端口:对象是非根设备,每个非根设备有且仅有一个,除了根以外,离根最近的端口,用来接收BPDU分组。
指定端口:对象是链路,每条链路上有且仅有一个。离根最近,用来发送BPDU分组
阻塞端口:每一个环形拓扑有且仅有一个,用来阻塞数据防止环路。
要根据PID来选举的情况:
3.STP选举流程
步骤:
①先选举根桥,并且根桥的所有接口都为DP。
②一般DP对面就是RP(因为DP发送BPDU分组,RP接收BPDU分组)
③一般选举的流程:
先选根桥--->选DP/RP--->选NDP(阻塞端口)
三,STP数据分组----BPDU
1.BPDU的定义
BPDU(Bridge Protocol Data Unit,网桥协议数据单元)用于实现生成树的选举和维持。一般包含选举的参数,如BID,PID,cost。
----初始情况,都能发送,当根选举出来之后,只有根才能发送,其他交换机仅仅是转发。
2.BPDU的分类
配置BPDU----周期2s
TC BPDU----①TCN BPDU ②TC BPDU ③TCA BPDU
TCN BPDU:拓扑变更告知包,只能从RP发出,不一定所有的交换机都有该数据包
TC BPDU:拓扑变更包,当根桥收到TCN BPDU后,会从DP指定端口发出TC BPDU包,所有的设备都会收到该数据包,收到TC BPDU数据包的设备会将MAC地址的老化时间从300s设置为15s。
TCA BPDU:拓扑变更确认包,当收到TCN BPDU的交换机会向发送者发送TCA BPDU报文,作为回复。
3.拓扑发生变化的流程---重点
正常情况下,交换机只会从它的RP根端口每2s接收到configuration BPDU包,但不会主动发送configuration BPDU给root bridge 根桥的。
发生拓扑变化时,
①当交换机检测到拓扑发生变化了,它就会发送TCN BPDU包给root bridge,切记,TCN是通过root port向root bridge方向发出的。
②当交换机从它的指定端口DP接收到TCN类的BPDU,它必须为其做转发,也是从它的RP发出,同时,它必须做出回复,从它的DP向发送者发送TCA BPDU作为回复。 注:这里是正常的configuration BPDU包.它的TCA位被置1,表明是要给TCN以回复的,但它跟TCN不是一类型的包.
③当TCN到达root bridge后,root bridge也要做出回应,会发出一种正常的BPDU包,包内的TC字段会被置1,TC即topology change,表示发现拓扑变化.这个包会被所有交换机转发,同样的TC位会置1,直至传遍全网,所有交换机都得知拓扑变化为止.
④收到TC BPDU包的交换机将把MAC地址的老化时间从300s--->15s
四,STP端口状态机
1.端口状态机
功能:描述端口从初始化状态到最终转发数据的过程
BLK:阻塞状态 处理BPDU,对应接口只能接收BPDU
LIS:监听状态,处理BPDU和端口选举
LRN:学习状态 ,地址学习。
FWD:转发状态,数据的转发。
五,STP链路收敛
1.链路状态收敛的定义
从链路出现故障到网络拓扑恢复稳定的过程
2.分类
直接链路收敛和间接链路收敛
直接链路收敛-----30s
必须满足的条件:-----原先的NDP就处于阻塞状态了,所以就不需要最大20s的老化时间了。
当二层网络中拓扑发生改变,将处于阻塞状态下的端口过渡到转发状态,可能用30秒或50秒的时间.其故障原因满足下面条件,从阻塞状态过渡到转发状态需要30秒,那就是交换机X的直连链路down并且阻塞接口同时也位于交换机X之上,此时30秒可以收敛[直连检测机制]。其它情况均为50秒。
间接链路收敛-----50s
间接情况:down掉的交换机x上没有阻塞端口NDP,需要20s的老化时间。
六,STP增强特性
1.Portfast---加速30s
端口加速,用于加速主机接入交换机。
注:如果在连接其他交换机的端口上启用portfast的时候,将存在产生根桥环路的风险
配置和验证portfast特性:
2.uplinkfast-----加速30s
能够在直接链路故障后提供快速收敛,加速选举新根端口。
注:启用uplinkfast特性时,将影响到交换机上所有的vlan。Catalyst交换机不支持以vlan为基础配置uplinkfast特性。
在 交换机启动uplinkfast后,由于提高了交换机上所有端口的路径开销,所以不适合作为根桥。
uplinkfast激活一个快速重新配置的条件:
①在交换机上必须启动uplinkfast功能
②至少有一个处于Blocking的端口(存在冗余链路)
③链路失效必须发生在Root Port。
3.Backbonefast------加速20s
骨干加速,用于加速间接链路收敛,加速20s
在丢失了根端口且备份俩路采用不同交换机的情况中,该特性可以降低默认的收敛时间50s--->30s。
注:通过自己做实验得知,在间接链路收敛上,down掉的端口必须是Root Port根端口。