• 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
     

  • 相关阅读:
    CentOS修改hosts文件及生效命令
    Elasticsearch处理 空对象问题
    Windows查看某个端口被占用的解决方法
    PHP Fatal error: Uncaught Error: Class ‘\Elasticsearch\Serializers\SmartSerializer‘ not found in /h
    浏览器正常导出文件phpecxel
    ElasticsearchPHP 快速开始
    MySQL为什么选择B+树存储索引
    PHP7.3.0+弃用FILTER_FLAG_SCHEME_REQUIRED的解决办法
    Zoom支持自动生成字幕;SharePlay上线;Safari 更新导致大量bug |WebRTC风向
    日均请求量1.6万亿次背后,DNSPod的秘密国密DoH篇
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12615692.html
Copyright © 2020-2023  润新知