RSTP Note


在sw3上使用debug spanning-tree events来观察现象
在非根桥sw2上
mac access-list extended stp
deny any any

interface f0/1
mac access-group stp in

portfast 什么时候用? blocking---->forwarding
连接单独主机,没有工作在trunk模式才生效
若连其他设备(hub),端口产生临时性桥接环路

回顾802.1D 
解决冗余环路问题,瓶颈:收敛速度
cisco提出:portfast uplinkfast backbonefast
加速:
1)portfast:接入层交换机连接最终用户的地方
2)uplinkfast:接入层交换机连接分布层交换机的地方
3)backbonefast:分布层连核心层的地方

劣质BPDU
SW4检测到link down------>产生劣质BPDU
SW4------->SW1( SW5 is root) 认为自己是根告诉SW1
SW1 收到BPDU发出查询
SW5(root)收到查询----->确认
SW1-------->SW4 (root还存在)

==========================
STP的三种补丁技术BackboneFast ,UplinkFast 和 Port Fast 。

Uplink Fast 是为本SW提供一个备份的RP端口(Root Port),一旦原RP down掉,备份RP马上进入Forwarding状态。备份RP口在RSTP中就是Alternative Port。
 
Backbone Fast 是别的SW的RP口坏了,而恰好他要开启的新RP口与我直连的口是Block的,我就开启这个接口(显然的,这个口会成为指定端口),让他能和根桥通信,开启条件:收到他的BPDU,显示BID=RID,且至少见过一次。
 
事实上RSTP中Backbone技术也是独立出来的,并没有通过Backup Port实现,Backup Port是指定端口的备份,而Alternative Port是根端口的备份,仅此而已。
 
Port Fast 是用来接终端设备,这样的接口不参与STP破环,所以可以回避Listening和Learning状态,直接进行转发

==========================
快速生成树协议 IEEE 802.1w
快速生成树协议(RSTP)对802.1d标准的提升:加速STP收敛。

为了实现这个目的,RSTP定义了与STP所不同的BPDU,定义了新的端口状态以及新的端口角色,同时它还能与STP兼容。(STP中的BPDU有两种,Configuration BPDU 和 TCN (Topology Change Notification)BPDU,其中配置BPDU由根桥始发,直到STP收敛。TCN BPDU是第一时间发现网络拓扑有变的SW始发,先通过单播到达根桥(途中收到该TCN BPDU的SW会回传一个Hello并在其中的TCA位(Topology Change Ack)中做标记),再通过组播由根桥通告所有SW,后来RSTP对此做了改进,在RSTP中,TCN BPDU是以始发SW作为根,即时通告,离得越近的就越早知道,从而提高了收敛速度。)

具体如下:
1)RP反应速度:只等待3个Hello(STP是10个)
2)可由丢弃状态(代替了STP的阻塞状态)直接转换到学习状态,而不需要STP的监听状态
3)Cisco的PortFast、UplinkFast和BackboneFast功能的标准化
4)如果一个交换机有多个端口连接到同一共享LAN段,可以允许备份的DP

Edge ports边缘端口=PortFast快速端口

RSTP定义了三种链路类型:
1)点对点:交换机间的连接
2)共享:交换机到hub的连接
3)边:交换机到用户设备的连接

RSTP link types都是点到点的。
点到点: 全双工
share: 半双工

强制该成点到点的模式
进入接口模式下:
spanning-tree link-type X

对于边链路类型的处理方式,与前面所述的ProtFast类似(配置也一样)。对于点对点链路,RSTP直接向相邻交换机查询状态,这与BackboneFast类似,只不过这里使用的是IEEE的标准消息罢了。

RSTP为什么会快? BPDU进行修改

7 0 没有变

Flag 

有8位组成,而在我们的STP中只用到了最高位和最低位,是在top发生变化时用到的。
而RSTP中,把中间的6位用的非常的充分。。其中3 2两位表示的是port role
port role
00:Unknown
01:Alternative/backup
10:root
11:designated

----------------------------------
RSTP能够快速收敛取决于网桥之间能进行明确的握手会话
在flag中。。第6位的Agreement(同意)和第1位的proposal(请求)是RSTP协议的根本的原因
在RSTP中是分段同步收敛的,STP收敛时间30s....

P0: designated port DP frowding
P1: nes root port frowding
P2: Alternative port bork
P3: designated port
P4: Edae port(接着都是非交换机)

在RSTP中把所有的端口置为同步状态:
当交换机收到一个Proposal时,把下面连接的端口都给阻塞掉,后在返回一个Agreement信息
这样就是一个段络的收敛。这一段收敛非常的快一般一到二秒
简单的说就是,本交换机收到一个proposal把其它的接口都置为同步,再回一个Agreement

sw1  f0/23------------f0/23 sw2
sw1 ------提议------>sw2  (BPDU)
       <----------------
sw2发现sw1优先级要低(假设),f0/23置为RP,返回一个Agreement
sw1 -----------------> RP sw2  (BPDU)
       <----------------Agreement

RSTP有效利用了交换网络的拓扑结构,因而可以加速收敛。
举例:
提议/同意握手机制
RSTP使用提议/同意握手机制来完成端口的快速收敛。下面以图中的变化为例说明

假设SW-1有一条新的链路连接到根桥。链路起来时,根桥的P0口和SW-1的P1口同时进入指定阻断状态,而且P0和P1同时发布带有提议标志位的RSTP BPDU ,同时P1成为新的根端口。

  SW-1开始同步新的消息给其他的端口,P2为替换端口,同步中保持不变,P3为指定端口,同步中必须阻断P3。P4为边缘端口,同步中保持不变 ;SW-1 通过新的根端口P1给根桥发送一个提议BPDU同意消息,将标志位有提议给为同意,P0和P1握手成功,P0和P1直接进入转发状态;这时P3端口为指定端口,还处于阻断状态,同样按照P0和P1的提议/同意握手机制,SW-1和SW-2快速进入转发状态。

  提议/同意握手机制收敛很快,状态转变中无须依赖任何定时器;如果指定阻断端口发送提议消息后没有收到同意消息,此时进入STP的监听、学习机制,这种可能出现在对方网桥不知道RSTP的BPDU,或者端口是关闭状态。
选举的原则:和STP完全一样


RSTP与STP的区别
  1)端口角色
    STP:   RP /DP / NDP
    RSTP: RP /DP /NDP --- (AP:Alternate Port,  BP:Backup Port)
   
其中 AP(替换端口),用来替换       Root Port/Designated Port
       BP(备份端口),用来备份       Designated Port
    AP----替换--->RP
    BP----替换--->DP
    AP:若一个端口是由于接收到[其他]交换机的BPDU报文而进入blocking,则该端口为AP
    BP:若一个端口是由于接收到[ 本 ]交换机的BPDU报文而进入blocking,则该端口为BP


RP(root ports)根端口,DP(designated ports)指定端口,NDP非指定端口------STP的端口分类,
在RSTP里,把NDP非指定端口划分成两个
AP(alternative port)替代端口
BP(Backup port)备份端口

AP和BP的状态----阻塞
AP:不同的交换机比较
BP:相同的交换机比较

2)端口状态
      STP:   Blocking / Listening / Learning / Forwarding
      RSTP: Discarding / Learning / Forwarding

RSTP和STP端口状态比较:


3)RSTP改进收敛速度的方法
 a)引入hello机制(类似于邻居机制)
      连续3次没有收到hello报文,则认为邻居故障,将从该邻居得到的BPDU消息老化
 b)一个交换机C(一个端口为RP,其余端口为AP,处于阻塞状态),若交换机C的RP故障,则AP成为的RP,该端口可以直接转发(类似于uplinkfast)
   
                            (4096)A-----------B(8192)
                                                       /
                                                    /
                                                   /
                                                  /
                              x RP            / (阻塞)AP
                                           C (32768) 接入层

c)Proposal-Agreement机制(提议/同意机制) p2p
        注1: Proposal-Agreement必须在Point-to-Point链路上进行。
        注2:若交换机的端口工作在 [全双工],则缺省认为是Point-to-Point链路。       
       
例子:spanning-tree link-type point-to-point
若交换机的端口工作在 半双工,  则缺省认为是Share链路。          

      从根桥开始,由DP端口向下游交换机的端口发出Proposal消息,下游交换机的端口必须满足一些条件才可以回复 Agreement消息,
      一个端口己经被选举成为DP / RP,想进入转发状态,使用"提议/同意机制" 结果: 双方都想进入转发状态需要满足什么条件?
     下游交换机除了接收Proposal消息以外的所有其他端口必须满足sync条件,才可以回复Agreement消息

  注:一个端口怎样才算满足sync条件?
     1)该端口是edge-port(这种端口通常连接的是终端设备,它的收敛时间为0, 类似 portfast)
            或
    2)该端口是阻塞的

d)拓扑改变机制
   STP:  由发现拓扑改变的交换机产生TCN BPDU,沿着去往Root Bridge的方向,最终发送到Root Bridge
   原因:STP中,只有Root Bridge才能产生Configuration BPUD报文
   RSTP:由发现拓扑改变的交换机直接--[泛 洪]--这个消息到网络中。
   原因:每个交换机可以自动 产生 / 发送 BPDU报文。
   RSTP中,什么才算拓扑改变?
   非边缘端口 进入 转发(forwarding)状态    
   STP中,什么才算拓扑改变?
   端口进入blocking或forwarding状态


在RSTP中,丢弃状态意味着该端口既不转发帧,也不接收帧,也不学习源MAC地址,而不管其什么原因造成。RSTP不再需要监听状态,因为它是动态查询邻接交换机,这就已经保证其收敛的时候不会产生环。

设置RSTP的命令:
spanning-tree mode rapid-pvst (global),
也可以使用802.1s MST(使用的也是802.1w RSTP)
 
·快速Per VLAN增值生成树(RPVST+)
RSTP与PVST+的组合,结合了两者的优点,与MSTP和PVST+兼容。
配置方法:
在接口上
spanning-tree link-type point-to-point
 

原文地址:https://www.cnblogs.com/cyrusxx/p/12615692.html