STP3
802.1D STP Port States(端口状态)
生成树端口分为角色和状态:
- 三种角色:
- RB 根桥
- RP 根端口
- DP 指定端口
2.五种状态:
- Disabled(禁用)
端口Down掉或没插线、管理员关闭或默认关闭,这个状态既不能发送也不能接收帧。
- Blocking(阻塞)
只能接受BPDU,不能发送或发送其他任何的数据。
- Listening(监听)
发送和接收BPDU。(对比Blocking状态又近了一步,能到发送和接收BPDU)
- Learning(学习)
发送和接收BPDU,学习MAC Address 构造出 MAC Address Table,为后面的数据转发打下基础,(在Listening的基础上增加了学习MAC Address的能力)
- Forwarding(转发)
这个端口现在可以发送和接受数据帧,发送和接收BPDU,collect MAC Address(收集MAC地址)
因为上面是最老的生成树协议(也仅限于802.1D)所以才有五种状态,最新的协议状态很少。
端口之间的关系(状态机:状态的转化)
802.1D STP Timer(STP 计时器)
计时器对于STP来说非常重要
计时器讲解:
1.一种是从Link comes up(链路来到UP),也就是从down的状态进入Blocking(可能时设备刚刚启动);
另一种本来就是Blocking状态(也即是BPDU选举完成时,什么角色都不是)
Blocking虽然可以接收BPDU,但在这个端口只能保存20秒,超过20秒就不能接收BPDU 活着 跟我20秒之前接收到的BPDU不一样时,(loss of BPUD Default )这时就会等待20秒后进入到一个Listening状态
2.Blocking会进入Listening,这里会(等待20秒=Max age)
3.Listening(等待15秒=Forward delay(进入Learning
4.Learning(等待15秒=Forward delay)进去Forwarding
从Blocking状态----->Forwarding时间是50秒(20+15×2=50)
802.1D STP Converge(生成树的收敛)
1.什么叫做收敛?
从Blocking----->Forwarding这恶鬼过程叫做收敛
2.收敛时可以转发数据吗?
收敛数据的时候用户无法进行数据的转发,需要等待端口状态先从Blocking----->Forwarding,大概需要50秒的时间。
(就像平时等待路由器启动一样,要等待路由器的网络型号等亮一样,这个过程中网络还没有通常呢)
3.802.1D这个老协议中,会出现两种情况,等待50秒 and 30秒!
条件:
50秒:如果是通过BPDU的选举,选举为Blocking状态时,就增加了20秒时间,因为进入Blocking的状态也是需要收敛的。(Blocking--------20s------>Listening------15s----->Learning------15s------>Forwarding)
30秒:如果是Blocking另一边的端口DOWN掉了只剩一个Blocking端口,就不会等待MAX Age 20秒,而会直接从Blocking----->进入Listening状态。(Blocking------------>Listening------15s----->Learning------15s------>Forwarding)
4.如果此时A和B之间的链路断开,那么C的Blocking端口会接收到BPDU吗,如果断开后会寻找新的路径的收敛时间是多少?
50秒:
- A和B因为断掉了,此时B会认为自己是Root Bridge 就会像外发送BPDU
- C会收到新BPDU Root Bridge ID(来自交换机B),SWC之前存放着SWA的Root Bridge ID,SWC会发现现在收到的Root Bridge ID和之前收到的不一样,而且通过对比发现现在收到的Root Bridge ID 比之前要大 (SWB BID > SWA BID)
- 这时候SWB就知道了网络发生了变化,这时C的Fa0/1会等待20s(MAX Age)看看会不会恢复,如果20s后没有恢复就会进入Listening----15s---->Learning----15s--->Forwarding
30秒:
1.A和C之间链路断掉了,SWC的Fa0/0是RP
2.交换机侦听到我离根桥最近的一个端口Down了,还剩一个Blocking 就不用等待Stars MAX Age 20秒,因为SWC知道自己唯一去根桥的路已经DOWN了,会直接将Blocking------>listening----15s--->Learning----15s--->Forwarding
两种收敛速度的区别是什么呢?
一种是从0开始进入状态,另一种是原本就是Blocking状态,省去了进入Blocking的时间。
其次是交换机的判断:
- 如果交换机判断已经没有去根桥的路径了就会将让Blocking进入下一个状态
- 如果交换机判断还有去往根桥的路径,就会选择等待恢复,如果没有等到就会进入listening状态。等待的时间是20s
现实生活中有可能等待时间更长,收敛速度更慢
STP Topology Change Mechanism(拓扑改变机制)
-
当一个交换机侦测检测到拓扑发生变化时,会把这种变化告诉整个网络
-
当一个网络中的其他交换机收到后,MAC Table就会从他原来的300-变更->15秒
虽然上面说到整个网络收敛速度分为30秒和50秒,但是这里为什么收敛速度会长达5分钟呢。因为状态中有MAC Table的存在,因为交换机转发数据是靠MAC Table,MAC Table也有个Timer,Timer会储存300秒。
会出现什么问题呢?
原本状态由Blocking变为Forwarding就可以转发数据了,但是如果我的交换机的MAC Talbe还没有Time Out的话,就会出现目的MAC是BB,但由于MAC Table还存在,就会以为MAC是从上面已经Dows掉的交换机学到的,就会将数据发送给上面的交换机。只有等待MAC Table挂掉,MAC Table空白,SWA才会重新学习MAC address ,学习到后路径才会变成SWA右边的接口转发数据。
- 这种减少Time为15秒的状态不会持续太,久一般是35秒
- 当网络中一台交换机侦测到链路状态(Link states)发生变化,交换机会通告整个网络,整个网络中全部的MAC address Table计时器会从300秒变更为15秒,15秒这种状态会持续35秒,35秒过后MAC address Table 又会变回300秒
- 收敛降至30秒,核心通知整个网络,通知网络发生变化怎么样实现,怎样实现呢?通过第二种BPDU TCN
- TCN BPDU 包含一个重要的信息 Type:Topology Change Notification(拓扑变更通知)通过很小的数据包告诉整个网络发生了变化,当端口发生变化或者出现角色时,正常转发变成不能转发 Forwardiing------>DOWN,就知道了拓扑发生了变化
当拓扑发生改变,交换机会通知全部网络分为两个步骤:
- 第一步:跟我的Root Bridge讲,;链路出现了问题
- 第二步:由Root Bridge向外进行广播,告诉全部交换机,链路出现了问题,请你们将MAC Timer的时间缩短
STP Topology Change Notification Process(拓扑改变通知过程)
第一步:拓扑改变通知过程(给根桥说,链路出现了问题)
- B的拓扑出现问题就会向上发送TCN(BPDU),通过交换机的Root Port发出,对应上面端口的DP
- 上面的交换机收到后会向下TCA回复
- 回复完TCA后,会朝着根方向继续转发TCN
- 通过TCN--->TCA满满靠近根的方向的转发
- 最终TCN中的BPUD(Topology Change Notification(拓扑改变通知))被转到根桥上
第二步:拓扑改变通知过程(Root Bridge知道链路出现了问题,告诉全部交换机)
1.根桥搜狐到TCN后,会向外发送一个特殊的BPDU(configuration BPDU),其中有一个字段(TC Bitser)原本是TC中是0-------> 改变后------>TC是1
2.根桥向所有交换机发送TC
3.交换机收到TC将MAC Table Timer修改为15秒并持续35秒。之后将恢复成300秒
4.这种过程实现了STP变化与MAC Talbe Timer联动
5.STP<------->MAC Table 实现30秒对网络的收敛
STP Topology Change Case Study(案例研究)
案例分析
- 一般情况下,网络拓扑发生变化,交换机会发送TCN通过Root Port发送,但是现在连接Root Port断掉了,只剩下一个Blocking Port无法发送TCN ,也就不能代表根桥无法向交换机发送TC,如果不能发送TC,也就代表MAC Table Timer无法由300秒变更为15秒,收敛时间也就由15秒变为300秒。
- 在这种特殊的情况下,如果Root Port 出现问题,Root Bridge会侦测到Root Port DOWN掉了。(因为Root Port 连接在Root Bridge上)
- 然后Root Bridge就会向交换机发送TCN,通知其他交换机,MAC TAble Timer 时间修改为15秒
TCN Flood
TCN的存在就是为了MAC Table Timer 使网络出现问题的时候收敛速度变快
TCN会带来一个新的问题!
1.端口、拓扑发生变化,Root Bridge会受到TCN带有TC bit的BPDU Broadcost光博会发送全部网段
2.用户PC开关或者插拔端口,如果服务器正在做BackUP时都会失败的
3.TCN本来时好事情,可是在拓扑、端口发生变化时,虽然MAC Table Timer 会加快网络的收敛速度,但是又造成了别的问题。