STP
(三)、STP的状态机制
1.STP的端口状态:
阻塞状态(Blocking):在选举之前,所有的端口从disable过度到的第一个状态
在选举结束之后,被阻塞的端口,就是阻塞状态
不能接收或者传输数据,不能把MAC地址加入地址表,只能接收BPDU
监听状态(Listening):在监听的状态下,交换机完成STP的角色的选举,选出根桥、根端口、指定端口、非指定端口
选举结束之后,网络拓扑无环,处于一种比较稳定的状态
不能接受或者传输数据,也不能把MAC地址加入地址表,但可以接收和发送BPDU
学习状态(Learning):交换机转发数据,依靠CAM表,交换机的接口开始学习MAC地址来形成CAM表
如果交换机接口从监听直接跳跃到转发状态,在最开始的时候,交换机的CAM表是空的,在网络中的一段时间内,会有大量的泛洪的数据
不能传输数据,但可以发送和接收BPDU,也可以学习MAC地址
转发状态(Forwarding):能够发送和接收数据、学习MAC地址、发送和接收BPDU
##注解:Disable:不会参加STP选举(可能端口没有打开或者没有连线)
端口角色:RP DP NDP(阻塞端口)
阻塞状态——最大老化时间=20S 监听状态——forwarding delay(转发延迟)=15S 学习状态——forwarding delay=15S


2.STP计时器
*阻塞到转发状态通常要30-50s(默认50S,即20+15+15),这个时间也可以通过配置生成树计时器来调整
*Hello 时间——网桥发送配置BPDU的时间间隔(缺省为2s)
*转发延迟时间——侦听到学习状态, 或者学习状态转换到转发状态所需要的时间 (缺省为15s)
*最大存活期——在丢弃BPDU之前,网桥用来存储BPDU的时间(缺省为20s),如果连续收不到10个BPDU(20s的时间),开始进入listening 状态

##注解:1.(左图)正常情况下路线1——2——3——4,当被阻塞的端口在20S之内一直未收到BPDU时,他就会从阻塞状态变成监听状态,通过选举之后变成学习状态到最后的转发状态。
2.(右图)当端口被选举为DP或RP时,就会从阻塞状态变成监听状态
当端口被选举为NDP时,就会从监听状态/学习状态/转发状态变成阻塞状态
当监听状态经过forwarding delay(转发延迟,默认15S)间隔后变成学习状态,学习状态经过forwarding delay间隔变成转发状态
(四)STP的拓扑变更机制
1.当网络中某些链路、交换机设备出现的故障的时候,与该交换机有关的MAC地址信息就会变成无用的信息
2.拓扑变更机制的目的:让其他交换机快速刷新CAM表,将这些无用的信息快速的刷新掉,节省计算和带宽资源
3.TCN BPDU 概述(TCN:top change notice)
当网络拓扑出现变更的时候,最先意识到变化的交换机将发送 TCN BPDU。在发生以下事件时,交换机发送TCN:
*对于处于转发和监听状态的接口,过渡到Block状态(链路故障的情况 )
*端口进入转发状态,并且网桥已经拥有指定端口
*非root网桥在它的指定端口收到 TCN
4.变更过程


讲解: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表。
##注解:1.TCN: top change notice =>最先感知到 top变化的交换机发送到报文,这个报文最终将要被传递到根桥
2.TCN ACK :当交换机收到一个TCN报文的时候,向发送TCN的交换机发出的回复报文
3.TC: 根桥发出的,用于通知全网交换机,网络拓扑发生了变化:35s
当交换机收到 TC的时候,会将自己的 CAM表老化时间由原来的 300s秒调整到15s,快速的将 CAM表进行刷新,刷新之后,就不再由关于发生故障交换机的 MAC地址信息了
(五)STP的特性
1.Portfast
*portfast 端口一旦接了设备,接口可绕过listening和learning状态直接进入forwarding状态。
*链接终端的接口,不会连接其他的交换机,所以也不会出现环路,但是这些接口依然受控与STP,当接口在启用的时候,依然要经历30-50漫长的时间。
所以,要把连接终端的端口的选举机制去掉,让这些端口在启用后,迅速的进入到转发状态
*配置边缘端口命令:[Switch]interface interface-ID
[Switch-GigabitEthernet0/0/1]stp edged-port enable
只配置portfast的缺陷/弊端:当边缘端口配置了portfast的端口接入交换机的时候,交换机会发送bpdu,则portfast接口会重新参与stp计算,造成环路或者二层的网络动荡
2. bpdu guard/bpdu防护
*该接口在收到 BPDU报文后,会立即切换到down(hauwei)/err-disbale(cisco)的状态
[Switch] stp bpdu-protection //收到bpdu报文会自动shutdown
*常搭配portfast特性在接口上一起使用,用于连接主机
*可在接口模式上激活,也可在全局模式上配置,两者有所不同·
*在接口模式下配置,该接口收到 BPDU报文后,立即切换到err-disable状态
*边缘端口down掉之后,两种恢复方式:
---手动恢复 [Switch]interface GigabitEthernet 0/0/1
[Switch-GigabitEthernet0/0/1]undo shutdown
---自动恢复:会自动执行undo shutdown
[Switch]error-down auto-recovery cause bpdu-protection interval 30 //30秒自动恢复
验证命令:display stp //验证整个交换机全局是否开启BPDU保护,默认是disable
display stp interface g0/0/1 //查看接口是否开启了边缘端口特性以及BPDU保护特性
3.BPDUFilter
可以在全局模式下配置,也可以在接口模式下配置:
*全局配置 [Switch]stp bpdu-filter default
希望这个接口处于边缘接口的角色,但是也可以接入交换机设备,一旦收到BPDU的时候,就会消失掉portfast的特性,成为一个普通的stp的端口
a) 启用了portfast的接口将激活bpdufilter特性
b)上述接口在link up后瞬间会发送BPDU(a few),此后不在发送任何BPDU
c)上述接口在收到BPDU后立即丢失portfast及bpdufilter特性,成为一个普通的spanning-tree接口
*接口配置 [Switch-GigabitEthernet0/0/1]stp bpdu-filter enable (不建议)
相当于关闭了 STP的功能,当收到BPDU的时候,可能会导致二层环路
a) 该接口将不会发送BPDU,也忽略接收到的BPDU
b) Enabling BPDU filtering on an interface is the same as disabling spanning tree on it and can result in spanning-tree loops.
c) 在接口上配置,不一定必须portfast特性,可独立实施。当然,建议搭配portfast特性使用。
4.uplink fast
主动向其他交换机发送自己下联PC的MAC地址信息,让其他交换机快速更新CAM表

5.backbone fast
BackboneFast是对UplinkFast的一种补充,UplinkFast能够检测直连链路的失效,BackboneFast是用来检测间接链路的失效。
当启用了BackboneFast的交换机检测到间接链路失效之后,会马上使阻塞的端口进入监听状态,少了20S的老化时间。

6.RootGuard
如果新接入的交换机优先级更低,将抢占原有的根网桥
Root Guard是一种强制的根保护措施,它的作用是防止意外(或者非法)加入的交换机成为网络中的根桥
浙公网安备 33010602011771号