STP:生成树协议

STP的作用:
1、通过阻断冗余链路来消除桥接网络中可能存在的路径回环
2、当前路径发生故障时,激活冗余备份链路,恢复网络连通性

BPDU:桥协议数据单元,用于传递STP协议相关报文。

BPDU分类:
1.配置BPDU :用于传递stp配置信息(从根网桥周期性发出,其他设备进行转发,发送周期为一个hello time(2秒))
2.TCN BPDU :用于通告拓扑变更信息

STP的选举机制:
1.在所有交换机中选举出一台作为 根网桥(Root bridge)
选举规则 :Bridge-id小的优先
Bridge-id 定义: 桥ID,BID,用来标识交换机身份 格式:优先级+Mac地址 (优先级默认32768,必须是4096的倍数)
2.每台非根网桥(交换机)选举出一个 根端口(Root port)
选举规则 :a.到达根网桥开销小的优先 b.对端交换机BID小的优先 c.端口ID小的优先
开销:COST,代表路径耗费的代价和成本,带宽越大,cost越小
3.每个物理段上选举出一个 指定端口(Designated port)
选举规则:a.到达根网桥开销小的优先 b.本机BID小的优先 c.端口ID小的优先
4.剩下没有角色的端口就是 闭塞端口(Blocked port)
根网桥,根端口,指定端口是同步进行选举的

stp消除环路的思想
将网络拓扑修剪为树形:选择树根节点 确定最短路径 阻塞冗余链路

边缘端口 

将交换机连接终端(计算机、服务器等)的端口配置为边缘端口可以减少端口30秒的转发延时,同时边缘端口的开启和关闭不会造成因网络拓扑改变(TCN BPDU)带来的MAC地址表频繁被老化所导致的短暂广播风暴问题。如果从一个边缘端口收到一个配置BPDU报文,则该边缘端口将丢失边缘端口角色,变成一个普通端口并执行生成树选举。边缘端口支持配置STP安全策略,如BPDU防护和BPDU过滤等安全策略,该策略可以防止边缘端口因接入支持STP的交换机而导致的网络拓扑改变。

边缘端口由于其快速转发的特性,也会出现临时环路问题。例如,将两个边缘端口连接到一起或则接入一台不支持STP的交换机会造成临时环路,临时环路的持续时间为0~2秒,边缘端口收到配置BPDU报文后会放弃边缘端口角色,变成一个普通端口进行生成树选举,从而解决环路问题。

STP初始化流程 交换机端口状态:
1.disable:禁用状态,被关闭的端口
2.blocking:阻塞状态,接收BPDU,但不发送BPDU,不学习Mac地址,不转发数据
3.listening:监听状态,接收并发送BPDU,不学习Mac地址,不转发数据,持续15秒(这个状态下会进行选举端口角色)
4.learning:学习状态,接收并发送BPDU,学习Mac地址,不转发数据,持续15秒
5.forwarding:转发状态,接收并发送BPDU,学习Mac地址,转发数据

STP计时器
1.Hello time:2秒(配置BPDU的发送周期)
2.Max age:20秒(配置BPDU老化时间,判断链路故障的时间,10个hello time周期)
3.Forwarding delay:15秒(状态切换延迟)

交换机启动stp协议后的mac老化时间
动态MAC地址表项的缺省老化时间为300秒,交换机收到TC置位BPDU报文后刷新MAC表

为了解决stp的网桥故障提出了stp拓扑变更机制
1.Mac age超时或有接口变更为转发状态,判断为拓扑发生变更,向根网桥发起TCN BPDU
2.收到TCN BPDU的交换机继续向根网桥转发TCN BPDU
3.当根网桥收到TCN BPDU后,向所有端口发起TC置位的配置BPDU
4.交换机收到TC置位的配置BPDU后,Mac地址表的老化时间缩短到15秒
stp发生拓扑变更的条件:
1、处于转发状态或者监听状态的端口过渡到阻塞状态,这个状态通常是链路故障
2、处于未启用状态的端口进入转发状态,这个状态通常是增加了新的链路
3、交换机从指定端口收到TCNBPDU报文。

stp缺点:1.收敛速度慢,故障切换时间太长(30-50秒)2.网络中大量主机频繁上下线,会导致TCN BPDU大量发送,导致Mac地址表不稳定

RSTP:快速生成树协议

端口状态减少到3种
端口角色增加到4种:指定端口和根端口不变,闭塞端口细分为两种:a.替代端口(Alternata port)->根端口的备份b.备份端口(Backup port)->指定端口的备份

边缘端口机制:1.当链路激活,边缘端口立即进入转发状态,不参与STP计算 2.边缘端口UP/DOWN不会触发拓扑变更 3.建议把连接PC的端口配置为边缘端口 (PC是7层设备,而且在二层组网中不会成环,所以不需要去参加生成树的计算,故而可以配置成边缘端口)
根端口的快速切换:根端口故障后,如果新的根端口对端的指定端口处于转发状态,则新的根端口立即进入转发状态
指定端口的快速切换:P/A机制
P/A机制: (P/A机制的条件:握手必须在点到点链路进行) 握手请求报文:Proposal 握手回应报文:Agreement
1、SW1新增链路或故障链路恢复,指定端口要进入转发状态之前,向对端SW2发送Proposal报文
2、SW2收到Proposal报文后,立即进行同步操作(同步是指阻塞除边缘端口以外的所有端口,为了防止临时环路)
3、同步完成后,向对端SW1发送Agreement报文
4、收到Agreement报文后,SW1的指定端口进入转发状态
5、SW2上被同步阻塞的端口继续进行P/A流程,直至整个网络收敛

RSTP拓扑改变处理机制:
拓扑改变触发条件:只有非边缘端口转变为Forwarding状态时,产生拓扑改变
拓扑改变处理:在两倍的Hello时间内(TC While Timer)向所有其他指定端口和根端口发送TC置位BPDU报文。清除除接收到TC报文的端口之外的所有端口和边缘端口学习的MAC地址,然后也为自己所有非边缘指定端口和根端口启动TC While Timer,重复以上过程。(不使用TCN。收敛更快速。每台交换机都可以以自己为出发点来发送TC报文)
注:由于每台交换机都可以主动发起RST BPDU,所以取消了TCN机制!

RSTP和STP的兼容运行:RSTP的端口连续三次接收到版本为stp的BPDU,则端口协议将切换到STP协议,切换到stp协议的RSTP端口将丧失快速收敛特性。出现STP和RSTP混用的情况,建议将stp设备放在网络边缘。运行STP的网桥移除后,由RSTP模式切换到STP模式的端口仍将运行在STP模式(可以使用命令设置回切 全局:[H3C] stp global mcheck 端口视图:[H3C-Ethernet0/1] stp mcheck )

Hello Time的配置需要注意:
–>较长的Hello Time 可以降低生成树计算的消耗
–>过长的Hello Time 会导致对链路故障的反应迟缓
–>较短的Hello Time 可以增强生成树的健壮性
–>过短的Hello Time 会导致频繁发送配置消息,加重cpu和网络负担
[H3C] stp timer hello —-

配置网络直径
网络直径:任意两台终端设备之间通过的交换机数目的最大值
改变网络直径会间接影响到Max Age和Forward Delay这两个参数的值,这种方法比直接手工配置两个参数更为可靠。
所以当网络中加入交换机可以通过改变网络直径参数来到达适应网络状况的目的。
配置命令为:[H3C] stp bridge-diameter bridgenum

PVST: Per-VLAN Spanning Tree(每个VLAN生成树)
每个VLAN生成树(PVST)为每个在网络中配置的VLAN维护一个生成树实例。它使用ISL中继和允许一个VLAN中继当被其它VLANs的阻塞时将一些VLANs转发。尽管PVST对待每个VLAN作为一个单独的网络,它有能力(在第2层)通过一些在主干和其它在另一个主干中的不引起生成树循环的Vlans中的一些VLANs来负载平衡通信。

MSTP:多生成树协议

MSTP:基于实例计算出多棵生成树,实例间实现负载分担
MST域(MST Region):拥有相同MST配置标识的网桥构成的集合
相同域的必要条件 :1->域名一致 2->修订级别一致 3->实例和VLAN映射关系一致
IST:内部生成树,每个MST域独立计算的内部生成树实例
实例0:默认所有VLAN都映射在实例0
CST:公共生成树,用来互联MST域的单生成树(把每个MST域作为一台交换机,计算出的生成树实例)
CIST:公共内部生成树,CST+每个域的内部IST
CIST域根:每个IST的根网桥
CIST总根:整个CIST的根网桥
Master端口:CST的根端口,单域MSTP中不可能存在Master端口,多域MSTP中,根域不可能存在Master端口,其他域只有一个
MSTI-多生成树实例:MSTI是指MST域内的生成树。一个MST域内可以通过MSTP生成多棵生成树,各棵生成树之间彼此独立。一个MSTI可以与一个或者多个VLAN对应,但一个VLAN只能与-个MSTI对应。

CIST的优先级向量
CIST优先级向量={RootID:ERPC:RRooyID:IRPC:DesignateBridgeID:DesignatePortID:RcvPortID}
比较原则:最小最优
–>首先比较CIST总根ID
–>其次比较CIST外部路径开销
–>再次比较CIST域根ID
–>再其次比较CIST内部路径开销
–>再其次比较CIST指定桥ID
–>再其次比较CIST指定端口ID
–>最后比较CIST接收端口ID
MSTI 的优先级向量
MSTI优先级向量={RRootID:IRPC:DesignateBridgeID:DesignatePORTid:RcvPortID}
比较原则:最小最优
–>首先比较MSTI域根ID
–>其次比较MSTI内部路径开销
–>再次比较MSTI指定桥ID
–>再其次比较MSTI指定端口ID
–>最后比较MSTI接收端口ID

MSTP计算方法:
1>CST/IST的计算和RSTP类似
2>MSTI的计算仅限与区域内
3>MSTI计算参数包含在IST BPDU中,和IST的计算同步完成

1.STP RSTP MSTP 区别是什么?
STP RSTP 区别
首先RSTP相对于STP 提出边缘端口机制加速终端上线,避免 30s 等待提出根端口快速切换,无需根据计时器等待拓扑收敛实现 RP 快速进入转发状态,提出交换机之间指定端口快速切换,通过 P/A 握手主动协商机制实现 DP 快速进入转发状态
端口状态STP:disable(port down)、blocking、listening、learning、forwarding,RSTP:discarding、learning、forwarding
BPDU格式上的变化,网络收敛方式,网络收敛后,STP BPDU只有根才能周期发送,而RSTP每个网桥自行发送。故障处理方式,STP使用独立的TCN BPDU报文通告网络变化,RSTP中则取消了TCN BPDU。
Flag的使用,Flag位的使用情况:STP使用了FLAG位的0与7位,RSTP使用全8位置,次优BPDU的处理,STP中,阻塞端口收到次优配置BPDU不理会。RSTP中,阻塞端口收到次优配置BPDU后立即回应。
拓扑变动前提,STP有端口转变为Forwarding状态,且该网桥至少包含一个DP。有端口从Learning或Forwarding转变为Blacking状态拓扑会发生改变,RSTP只要有非边缘端口转变为Forwarding状态就会造成拓扑变化,
拓扑变动处理方式,RSTP每个网桥自行发送TC置位的BPDU 并清空除接收TC BPDU和边缘端口的接口上的mac表。STP网桥故障只有根桥发送TC置位的BPDU。下游设备收到置位BPDU将mac地址表老化时间缩短为一个Forwarding delay
RSTP 和MSTP的区别?
MSTP可以对用来负载,多域与多实例的负载,不会浪费链路
新增了Master端口
MSTP BPDU中新增专有字段。

2.P/A握手机制是什么?实现的原理是什么?以及注意事项?
原理
P/A机制是上下游设备在运行PA机制之前都会成为指定端口,互发RST BPDU,下游设备端口收到等有的RST BPD之后意识到自己不是指定端口而是根端口,上游设备端口端口进入discarding状态并向下发送P置位的BPDU,下游设备接收到P置位的bpdu后,开始将自己的所有端口进入 sync 变量置位将处边缘端口以外的指定端口阻塞,下游设备的端口成为discarding之后,下游端口sysned置位,根端口sysned也置位,此时向上游设备发送A置位的RST BPDU并将端口置为转发状态,该RST BPDU携带的信息和根桥最初发送的一致,除了A位置位之外(P置为清0),上游设备再根据该RST BPDU,判断这是下游设备对刚刚发出P置位的回应,于是上游端口马上进入Forwarding状态。
注意事项
如中间接了了hub,如果上游设备发出了P位置位的rst BPDU报文,那么下游设备收到后都会回复A位置位的BPDU报文,但是上游设备收到A位置位的BPDU报文后,就会将指定端口打开,而此时下游有的设备没有同步完
成,还没有回复A位置位的BPDU报文,那么这时是会出现临时环路问题的。
2.如果下游接口有多台交换机,但上游交换机无法得知下游具体的交换机数量,从而无法判断应该收到多少个 A 置位的 BPDU,才能过渡到转发状态;如果贸然进入转发状态则有可能因为全局收敛不一致,导致转发环路的产生 前提:P/A机制的条件是要在全双工点到点链路上进行,只发生在DP和RP的链路上进行P/A握手

3.说明一下根保护, TC 保护, BPDU 保护,环路保护几种机制实现原理 ?
根保护:用来防止现网根桥被恶意抢占,接口下预先启用根保护后,如果收到比当前根桥相应更优的 BPDU 则将该接口置为“侦听”状态,不进行接口数据转发
TC 保护:用来防止恶意泛洪的TC置位BPDU,导致网络中设备 MAC 缓存表项频繁刷新,引起转发资源消耗过大问题,全局开启并设置抑制阈值后,当在单位时间(固定为十秒)内,设备收到 TC-BPDU 后只会根据设定值,决定立即刷新转发地址表项的最高次数,以此达到 削弱攻击力度的目的
BPDU 保护:用来防止接入层面边缘端口收到不合法BPDU导致生成树转发结构异常重新计算,可能引起大流量迁移到低速链路转发降低网络质量。全局启用BPDU保护后,边缘端口再收到BPDU直接置为DOWN,不进行数据转发
环路保护:在运行 RSTP 协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的 RST BPDU 维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的 RST BPDU 时,此时交换设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路
保护动作:在启动了环路保护功能后,如果根端口或 Alternate 端口长时间收不到来自上游设备的 BPDU 报 文时,则向网管发出通知信息(此时根端口会进入 Discarding 状态,角色切换为指定端口),而Alternate 端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU 报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。说明:环路保护功能只能在根端口或 Alternate 端口(存储 BPDU 来维护端口角色)上配置生效

4.AP和BP作用什么,怎么选举出来的?
AP是对RP的备份,BP是对DP的备份。
AP从端口收到了更优的BPDU,BP从端口上收到了更优的BPDU,并且改BPDU的BID写的是自己

5.MSTP单域与多域有什么区别?
MSTP多域环境是把每个域单独看成是一台交换机,然后域间其实就是一颗生成树,是公共的,不能进行负载分担。Mstp 单域环境是可以基于不同的实例进行负载分担的,所以平时使用 mstp 单域环境比较多

6.根桥收到TCN-BPDU会有什么动作?非根桥收到TCN-BPDU会有什么动作?交换机又是依据什么判断需要进行MAC地址表刷新动作?
根桥收到tcn-bpdu后会将下一个要发送的配置dpdu中的tc位置位,其他非根桥收到后会将自己的mac地址老化时间改为15s。(tc报文就是交换机进行刷表动作的原因)
非根桥收到tcn-bpdu的话会向发送tc置a位置位的bpdu表示确认接收,并且把tcn-bpdu继续向自己的根端口发出,直到发送给根桥。
(置位设为1,复位设为0)

7.桥ID作用,由什么组成,字节是多少,stp的端口优先级多少?
作用:在STP中唯一的标识的一个桥
组成: 桥优先级+MAC地址 桥优先级32768 桥优先级2个字节(12BIT vlan id +4bit 优先级),桥MAC地址6个字节,端口优先级128

8.STP端口角色选举顺序是什么?
根端口:到达根网桥cost小的>对端网桥BID小的优先>端口ID(索引号)小的优先
指定端口:到达根网桥cost小的>本端BID小的>端口ID小的优先

9.STP发生网桥故障的重新收敛时间是多少时间?
350S

10.STP中阻塞端口重新转发数据所需时间是多少时间?
30S。STP没有快速收敛机制,最少需要30S

11.临时环路时间是多少?
2S

12.将接入端口关闭后,什么情况下会产生环路?
交换机接口关闭生成树协议,那么这个接口没有运行破环协议,这个接口会直接转发数据,如果接口接入的是交换机,那么二层端口状态全会转变成fowarding,出现二层环路

13.STP网桥故障处理的机制?
STP 拓扑变更到网络收敛一共 35 秒
拓扑发生变化后,下游设备会不间断地向上游设备发送TCN BPDU报文。上游设备收到下游设备发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文,其它端口也有可能收到TCN BPDU报文,但不会处理。上游设备会把配置BPDU报文中的Flags的TCA位设置1,然后发送给下游设备,告知下游设备停止发送TCN BPDU,上游设备复制一份TCN BPDU报文,向根桥方向发送,直到根桥收到TCN BPDU,根桥把配置BPDU报文中的Flags的TC位 置1后发送,通知下游设备直接删除桥MAC地址表项。 说明:TCN BPDU报文主要用来向上游设备乃至根桥通知拓扑变化。

14.RSTP 拓扑变更处理的机制?
一旦检测到拓扑发生变化,本交换设备的所有非边缘指定端口启动一个TC While Timer,该计时器值是Hello Time的两倍。在这个时间内,清空状态发生变化的端口上学习到的MAC地址。 同时,由这些端口向外(指定端口+根端口)发送RST BPDU,其中TC置位。一旦TC While Timer4秒超时,则停止发送RST BPDU。其他交换设备接收到RST BPDU后,清空所有端口学习到MAC地址,除了收到RSTBPDU的端口。然后也为自己所有的非边缘指定端口和根端口启动TC WhileTimer,重复上述过程。 如此,网络中就会产生RST BPDU的泛洪

15.RST BPDU 中的Flags 字段(标志位)有哪些?分别表示什么意思?
标志位0和7为STP中TCN和TCA置位,1和6位P/A机制置位 ,2和3置位表示端口角色(00表示未选举,01表示替代端口,02表示根端口,03表示指定端口)4和5置位代表learning和fowarding状态(00discarding,01learning,11forwarding)

16.MSTP与VRRP组合的缺陷?(主要体现Track端口与MSTP整体联动缺陷)
生成树通过设置实例与vlan的绑定,并且在根桥上配置根桥的主备关系控制二层流量的走向的,MSTP影响的是MAC地址表学习的功能,生成树中端口是否学习mac地址是因端口状态所影响,上层vrrp配置了track接口检测上层线路的连接状态,上行链路中断会导致网关的主备切换,vrrp在主备切换时后新的master,简单地发送一个携带虚拟路由器的 MAC 地址和虚拟 IP地址信息的免费 ARP 报文进行二层广播,这样就可以更新与它连接的主机或设备中的ARP 相关信息。因为网络中的主机感知不到 Master 路由器已经切换为另外一台设备,但是由于二层流量的转发受MSTP的影响,阻塞端口接收到ARP报文后并不会学习新的MAC地址,除阻塞端口以外的端口都会被刷新MAC地址表,也就是说阻塞端口依然不会允许数据通过,这时流量一定是按照之前的路径进行行走的,此时就造成了次优路径的产生。但是设备down机之后,拓扑会发生改变,导致MSTP重新计算,vrrp的主备自动根据优先级进行切换,切换后,MSTP重新选出转发端口,下属端口也会接受到vrrp发送的ARP报文,根据新的端口对数据进行转发。

17.AP以及BP的特点?
①AP: 阻塞状态,不转发 BPDU,存储 BPDU,做为 RP 的备份,当 R故障,AP 转化为 RP 时,无需等待 30S 的转发延迟,直接进入转发。
②BP:阻塞状态,不转发 BPDU,存储 BPDU,作为 DP 的备份,BP 一个网段中作为到根桥的备份路径,当 DP 故障之后,BP 需要等待老化时间才会成会 DP, 成为 DP 之后需要等待转发延迟时间才进入转发

18.STP选举四要素?
1桥ID(Root ID=根桥的优先级+mac地址)
2根路径开销(RPC:根据接口的带宽计算)
3桥ID(Bridge 者交换机的优先级+mac地址)
4.发送者端口ID(Port ID=发送端口的优先级+端口编号)若以上四个比较不出来:
5接收端口的ID (接收端口优先级+端口编号)

19.如果接口关闭了STP,收到BPDU会如何处理?
BPDU报文发送的目的地址为01-80-C2-00-00-00,交换机如果接口关闭了STP,收到目的MAC地址为:01-80-C2-00-00-00组播数据帧会接收不处理。

20.边缘端口的端口角色是什么角色?
DP端口,因为该没有收到更优的BPDU,当一台运行STP的交换机刚启动,端口的角色为DP端口,只有收到比该端口优的BPDU才会迁移成其他的角色,边缘端口一般用于连接终端设备,不会收到BPDU,即端口角色为DP端口

21.STP中为什么要设计转发延迟时间?
STP如果没有forwarding delay可能会带来的临时环路问题

22.运行STP的交换机是怎么感知拓扑发送变化的,为什么要发送TC置位BPDU,不发会怎么样?
标准的STP中当一个接口DOWN/UP则认为拓扑发生。
拓扑发生变化之后,原有的MAC地址表是不能正确引导数据转发的,如果不发TC置位 BPDU刷新MAC地址表,会导致数据流量无法正常转发,要等300S的MAC地址表老化时间后,才会刷新MAC地址表

23.CIST是什么?
CIST是通过STP或RSTP协议计算生成的,连接一个交换网络内所有交换设备的单生成树。总根是整个网络中优先级最高的网桥,即为CIST的根桥。所有MST域的IST加上CST就构成一棵完整的生成树,即CIST。

24.CST是什么?
CST是连接交换网络内所有MST域的一颗生成树
CST就是这些节点通过STP或RSTP协议计算生成的一棵生成树。

25.IST是什么?
内部生成树:IST(Internal Spanning Tree)是各MST域内的一棵生成树。
MST域内每颗生成树都对应一个实例号,IST的号为0。实例0无论有没有配置都是存在的

26.什么是主桥?
IST Master,它是域内距离总根最近的交换设备。如果总根在MST域中,则总根为该域的主桥

27.MSTP中域根是不是一定是实例0最优的桥ID?
单域的情况下,实例0最优的桥ID为域根。
多域的情况下,非总根域的域根为离总根域最近的交换机

28.如何判断设备是否在同一MSTP域?
1.都启动了MSTP。
2.域名。
3.VLAN到生成树实例映射配置。
4.具有相同的MSTP修订级别配置。

29.MSTP相比STP/RSTP多出了哪些端口角色?
Master端口:
1.MST域和总根相连的所有路径中最短路径上的端口,它是交换设备上连接MST域到总根的端口。
2.域中的报文去往总根的必经之路。
3.特殊域边缘端口,Master端口在CIST上的角色是Root Port,在其它各实例上的角色都是Master端口。
域边缘端口:
1.是指位于MST域的边缘并连接其它MST域的端口。
2.进行MSTP计算时,域边缘端口在MSTI上的角色和CIST实例的角色保持一致。

30.如果一个端口收到比自己还要差的BPDU会怎么处理? 
这种BPDU称为次优BPDU,华为交换机收到次优BPDU会丢弃该BPDU,并发送自己接口的最优的BPDU(stp与rstp处理行为一致)
*桥ID作用,由什么组成,字节是多少,stp的端口优先级是多少?
答:作用:在STP中唯一的标识的一个桥 组成: 桥优先级+MAC地址 桥优先级32768 桥优先级2个字节,桥MAC地址6个字节,端口优先级128

31.配置BPDU作用?发送方式以及目的地址,发送周期以及老化时间是多少?
答:用来进行生成树计算和维护生成树拓扑的报文,以组播方式进行发送到01-80-C2-00-00-00,发送周期2秒一次,Max age 20超时老化

转载:STP RSTP MSTP – Fw的个人学习网站 (zjnzzy.cn)