STP
一、STP的诞生背景,解决的问题?
-
环路产生,是因为,我们在交换网络中,需要设计机制,避免线路单点故障,提升冗余性
-
物理上线路的冗余,产生了环路,而环路会带来很大的副作用
广播风暴 耗尽交换机的带宽,CPU资源,导致数据无法正常转发
现场,看一下交换机,如果交换机的所有的亮着灯,都出现疯狂闪烁,肯定是环路
广播风暴,无解,交换机 关机重启,因为二层广播报文,没有TTL机制,它会一直存在。
不稳定CAM表交换机对于学习到的MAC地址,反复记录在不同的接口上,引起CAM表的抖动,
影响正常通信重复的单播帧 -
需要物理线路上的冗余,同时又要避免环路带来的副作用,同时还要能够自动化的实现STP的终极目的,就是自动破除逻辑上的二层环路
二、生成树是如何实现的?
-
通过协议:STP IEEE=802.1d
阻塞网络中的某一个接口(从逻辑上),实现物理链路正常链接,逻辑上关闭(down),避免环路的危害 -
具体要阻塞哪一个端口?交换机之间的协商出来的===》BDPU报文,交换机通过BPDU中的关键的参数,进行选举,选举出来的结果,就是要阻塞的端口。
三、STP的选举过程
- 选举根桥
- 选举根端口
- 选举指定端口
- 最后选出 阻塞端口(非指定端口)
-
根桥选举 需要比较关键参数(BPDU),BID=brige id 网桥(交换机)优先级+MAC地址 优先级范围0-65535 默认32768
所有的交换机之间产生的,BID越小越优先display stp 查看根桥的BID stp root primary/secondary 将交换机设为根桥BID为0 stp priority <0-61440> 将交换机设为根桥BID为<0-61440>,默认是32768 display stp brief 查看交换机的端口角色 注:设置桥优先级,优先级的值,必须是4096的倍数 -
非根桥上选举根端口(RP)(所有接口都参加选举)每一个非根桥交换机所有端口进行比较选举出一个根端口(负责接受根桥发送BPDU数据)
根据根路径成本来选举(三个交换机成三角形相连)
cost of path 到达根桥的开销值(STP的路径成本)越小越优先,与接口带宽有关不是按链路的带宽算,而是按接口算的
100M------19
1000M-----4
10G--------2
根据发送网桥ID来选举(四个交换机成矩形相连)
sender BID 发送者的BID 这个接口对端交换机的BID 越小越优先 在现网中,我们会对BID进行规划,一般来讲,BID越小
的,越靠近核心层
根据发送端口ID来选举(两个交换机两条线相连)
sender PID(端口ID=端口优先级+端口ID缺省优先级为128,范围0-255,越小越好)
根据本地端口ID来选举(SW1-hub=SW2)
local PID -
所有非根桥交换机空余链路中选择出来的指定端口(DP)(是在两台交换机之间选择出来的)(负责转发BPDU数据)
cost of path 注意: 此处的开销值,指的不是接口到达根桥的开销,而是当前接口所在交换机,它的根端口到达根桥
的开销值
local BID (本地交换机的BID) 越小越优先
local PID (交换机本地端口ID) 越小越优先
根桥上所有接口都是指定接口(不需要选就知道) -
剩下的就是阻塞(BP)(不转发负责对指定端口的转发BPDU数据的监听)
注:
Hub内部为总线,通过载波监听来判断线路是否被占用,所有的接口出于一个冲突域,Hub所发信息都是广播的形式
工作形式:CMCD:载波监听
交换机和hub的区别:
交换机内部存在一个有高带宽的线路板,交换模块,交换机所有的接口都在一个广播域下,交换机内部可以实现 终端的单播通信(CAM表)
四、STP的状态机制
-
STP的端口状态
disable===》不会参加STP的选举(可能端口没有打开,或者没有连线)阻塞(Blocking)---》 20S---》和计时器有关
在选举之前,所有的端口从disable过度到的第一个状态
在选举结束之后,被阻塞的端口,就是阻塞状态监听(Listening)--->选举 forwarding delay =15S
在监听的状态下,交换机完成STP的角色的选举,选出根桥、根端口、指定端口、非指定端口
选举结束之后,网络拓扑无环,处于一种比较稳定的状态学习(Listening) forwarding delay = 15S: 交换机学习MAC地址,完善CAM表
交换机转发数据,依靠CAM表,交换机的接口开始学习MAC地址来形成CAM表
如果交换机接口从监听直接跳跃到转发状态,
在最开始的时候,交换机的CAM表是空的,在网络中的一段时间内,会有大量的泛洪的数据转发(Forwarding)
交换机的端口能够正常的转发数据流量
五、STP的拓扑变更
-
拓扑变更机制
当网络中某些链路、交换机设备出现的故障的时候,与该交换机有关的MAC地址信息就会变成无用的信息
拓扑变更机制的目的:让其他交换机快速刷新CAM表,将这些无用的信息快速的刷新掉,节省计算和带宽资源TCN: top change notice =>最先感知到top变化的交换机发送到报文,这个报文最终将要被传递到根桥
TCN ACK :当交换机收到一个TCN报文的时候,向发送TCN的交换机发出的回复报文
TC:根桥发出的,用于通知全网交换机,网络拓扑发生了变化:35s,当交换机收到TC的时候,会将自己的CAM表老化时间 由原来的300s秒调整到15s,快速的将CAM表进行刷新,刷新之后,就不再由关于发生故障交换机的MAC地址信息了
-
扑变更信息通知及操作过程
1.SWB 感知到SWA的链路故障2.SWB 通过自己的根端口 向上发送TCN BPDU,通知上面的交换机 拓扑变更的情况,TCN BPDU最终要通知到根桥
3.SWC 的指定端口 收到SWB 发送的BPDU,会给SWB 一个TCN ACK报文的回复,同时,会将接收到的TCN BPDU 再通过自己的根端口向上转发
4.SWC 发送的BPDU TCN 最终被根桥接收,根桥向SWC发送TCN ACK的回复信息
5.根桥向全网通知 拓扑变更
6.全网交换机将自己的CAM表时间由300s 变成15s,重新刷新自己的CAM表。
六、STP的特性
-
port fast
链接终端的接口,不会连接其他的交换机,所以也不会出现环路,但是这些接口依然受控与STP,当接口在启用的时候,依然要经历30-50
漫长的时间,所以,要把连接终端的端口的选举机制去掉,让这些端口在启用后,迅速的进入到转发状态 -
bpdu guard/bpdu防护
只配置portfast的缺陷:当 边缘端口/配置了portfast的端口接入交换机的时候,交换机会发送bpdu,则portfast接口会重新参与stp计算,造成环路或者二层的网络动荡
当交换机的portfast 接口收到 BPDU报文的时候,接口会切换到 down(hauwei)/err-disbale(cisco)的状态 -
bpdu filter
背景:
1. 全局配置BPDU filter
希望这个接口处于 边缘接口的角色,但是也可以接入交换机设备,一旦收到BPDU的时候,就会消失掉portfast的特性,成为一个普通的stp的端口
2. 在接口情况下配置bpdu filter
相当于关闭了 STP的功能,当收到BPDU的时候,可能会导致二层环路 -
uplink fast
主要作用:主动向其他交换机发送自己下联PC的MAC地址信息,让其他交换机快速更新CAM表 -
backbone fast
BackboneFast是对UplinkFast的一种补充,
UplinkFast能够检测直连链路的失效,
BackboneFast是用来检测间接链路的失效。
当启用了BackboneFast的交换机检测到间接链路失效之后,会马上使阻塞的端口进入监听状态,少了20S的老化时间。 -
RootGuard
如果新接入的交换机优先级更低,将抢占原有的根网桥
Root Guard是一种强制的根保护措施,它的作用是防止意外(或者非法)加入的交换机成为网络中的根桥

浙公网安备 33010602011771号