STP思维导图

STP(生成树协议)-编程知识网

STP

    • STP思维导图
  • STP技术概念
    • 生成树协议概述
    • 产生背景
    • 冗余拓扑
      • 环路的影响
  • STP技术工作原理
    • 如何实现
    • 选举过程
      • SPT路径成本
      • 每个广播域选择一个根桥
      • 每个非根桥上选择一个根端口
      • 每个段选择一个指定端口
      • 最后选出阻塞端口(非指定端口)
  • STP的状态机制
    • 端口状态
      • 阻塞状态(Blocking)
      • 监听状态(Listening)
      • 学习状态(Learning)
      • 转发状态(Forwarding)
    • STP计时器
      • Hello时间
      • 转发延迟时间
      • 最大存活期
  • STP的拓扑变更
  • STP的特性
    • port fast
    • bpdu guard/bpdu保护
    • bpdu filter
    • uplink fast
    • backbone fast
    • RootGuard

STP技术概念

生成树协议概述

IEEE 802.1d STP(生成树协议,Spanning-Tree Protocol)协议:
①使冗余端口置于“阻塞状态”
②网络中的计算机在通信时,只有一条链路生效
③当这个链路出现故障时,将处于“阻塞状态”的端口重新打开,从而确保网络连接稳定可靠
STP(生成树协议)-编程知识网

产生背景

网络链路和设备的冗余性(避免网络不够健壮导致的单点故障)
链路的冗余会形成交换网络的环路

冗余拓扑

既要冗余还要无环,使用自动化的形式来实现→STP
物理链路上的冗余,但是逻辑上是要破除二层的环路的

环路的影响

  • 广播风暴
    概念:广播信息在网络中不断的转发,直至导致交换机出现超负荷运转,最终耗尽所有带宽资源、阻塞全网通信
    STP(生成树协议)-编程知识网
    工程现场:如果发现交换机的灯疯狂闪烁→肯定存在环路
    如何解决广播风暴:无解、重启设备
    二层的广播报文,没有TTL的限制,会一直存在,并且二层环路,越来越多

  • 多帧复制
    概念:单播的数据帧被多次复制传送到目的站点
    STP(生成树协议)-编程知识网

  • MAC地址表抖动
    概念:由于相同帧的拷贝在交换机的不同端口上被接收而引起的 MAC地址表不稳定
    STP(生成树协议)-编程知识网

交换机的一个接口能对应多个MAC地址,但是,一个MAC地址只能对应一个接口
MAC地址被反复的记录在交换机的不同接口上,引起CAM表的抖动,影响交换机的正常通信

STP技术工作原理

如何实现

  • 通过协议:STP IEEE=802.1d
    阻塞网络中的某一个接口(从逻辑上),实现物理链路正常链接,逻辑上关闭(down),避免环路的危害
  • 具体要阻塞哪一个接口?
    交换机之间协商出来的→BDPU报文,交换机通过BPDU中的关键参数,进行选举,选举出来的结果,就是要阻塞的端口

选举过程

SPT路径成本

  • 路径成本的计算和链路的带宽相关联
  • 根路径成本就是到根网桥的路径中所有链路的路径成本的累计和
    STP(生成树协议)-编程知识网

每个广播域选择一个根桥

  • 根桥(Root Bridge):网络中倒数的根,整网络中只存在一个根
  • Root bridge 桥=交换机
  • 比较BPDU中的关键参数BID(bridge id) 桥优先级(0-65535)+MAC地址
  • 根桥是从所有的交换机中选举出来的,BID优先级越小越优先,如果优先级相同比较MAC地址,越小越优先
  • 非根桥(Non-Root Bridge):除了根以外的所有桥,都是非根桥

STP(生成树协议)-编程知识网
桥ID修改方法

  • 修改桥优先级方法1:stp root primary/secondary ———— 将优先级直接改成0
  • 修改桥优先级方法2:stp priority <0-61440> ———— 将优先级改成比默认值小的

每个非根桥上选择一个根端口

  • 根端口(Root Port):每个非根桥离根桥最近的端口

  • 所有非根桥交换机的端口都参加选举

  • cost of path→端口到达根桥路径开销

  • sender bid→这个接口对端交换机的BID,越小越优先

  • sender pid→由优先级(0-255,默认128)+端口编号组成的 优先级和端口编号越小越优先

  • local pid
    STP(生成树协议)-编程知识网
    修改根端口

  • 修改根端口的cost值
    [Huawei-GigabitEthernet0/0/1]stp cost ? INTEGER<1-200000000> Port path cost

  • 端口的PID修改方法
    [Huawei-GigabitEthernet0/0/1]stp port priority ? INTEGER<0-240> Port priority, in steps of 16

每个段选择一个指定端口

  • 指定端口(Design Port):无环路的可以转发数据的端口
  • 所有的非根桥交换机空余链路中选出来的指定端口(在两台交换机之间的链路上选举出来的)
  • 选举方式:COST值 (此处的COST值是当前接口所在交换机到达根桥的开销)
  • 如果开销值一样:local BID:所在根桥的BID local PID:
  • 根桥上所有的端口都是指定端口
  • 根端口对端交换机的接口也是指定端口
    STP(生成树协议)-编程知识网

最后选出阻塞端口(非指定端口)

  • 阻塞端口(Blocking Port):有环路的需要被阻塞的端口
    STP(生成树协议)-编程知识网

STP的状态机制

端口状态

STP(生成树协议)-编程知识网
STP(生成树协议)-编程知识网

  • disable→不会参加STP的选举(可能端口没有打开,或者没有连线)

阻塞状态(Blocking)

  • 概念:不能接收或者传输数据,不能把MAC地址加入地址表,只能接收BPDU
  • 在选举之前,所有端口从disable过度到的第一个状态
    在选举结束之后,被阻塞的端口,就是阻塞状态

监听状态(Listening)

  • 概念:不能接收或者传输数据,也不能把MAC地址加入地址表,但可以接收和发送BPDU
  • 在监听状态下,交换机完成STP的角色的选举,选出根桥、根端口、指定端口、非指定端口
  • 在选举结束之后,网络拓扑无环,处于一种比较稳定的状态

学习状态(Learning)

  • 概念:不能传输数据,但可以发送和接收BPDU,也可以学习MAC地址
  • 交换机转发数据,依靠CAM表,交换机的接口开始学习MAC地址来形成CAM表
  • 如果交换机接口从监听状态直接跳跃到转发状态,在最开始的时候,交换机的CAM表是空的,在网络中,会有大量的泛洪的数据

转发状态(Forwarding)

  • 概念:能够发送和接收数据、学习MAC地址、发送和接收BPDU

STP计时器

  • 概念:阻塞到转发状态通常要30-50s(默认50s,即20+15+15),这个时间也可以通过配置生成树计时器来调整

Hello时间

  • 概念:根网桥发送配置BPDU的时间间隔 缺省为2s

转发延迟时间

  • 概念:侦听到学习状态,或者学习状态转换到转发状态所需要的时间 缺省为15s

最大存活期

  • 概念:在丢弃BPDU之前,网桥用来存储BPDU的时间,缺省为20s。如果连续收不到10个bpdu(20s的时间),开始进入listening状态

STP的拓扑变更

STP(生成树协议)-编程知识网
STP(生成树协议)-编程知识网
STP(生成树协议)-编程知识网

  • 拓扑变更机制的目的:让其他交换机快速刷新CAM表,将这些无用的信息快速刷新掉,节省计算和带宽资源
  • TCN(top change notice)→最先感知到top变化的交换机发送到报文,这个报文最终将要被传递到根桥
  • TCN ACK:当交换机收到一个TCN报文的时候,向发送TCN的交换机发出的回复报文
  • TC:根桥发出的,用于通知全网交换机,网络拓扑发生了变化(35s)
  • 当交换机收到TC的时候,会将自己的CAM表老化时间由原来的500s调整到15是s,快速的将CAM表进行刷新,刷新之后就不再由关于发送故障交换机的MAC地址信息了

STP的特性

port fast

  • 链接终端的接口,不会连接其他的交换机,所以也不会出现环路,但是这些接口依然受控于STP,当接口在启用的时候,依然要经历30-50s时间,所以要把连接终端的端口的选举机制去掉,让这些端口在启用后,迅速的进入到转发状态

bpdu guard/bpdu保护

  • 只配置portfast的缺陷:当边缘端口/配置了portfast的端口接入交换机的时候,交换机会发送bpdu,则portfast接口会重新参与stp计算,造成环路或者二层的网络动荡
  • 当交换机的portfast接口收到BPDU报文的时候,接口会切换到down(huawei)/err-disable(Cisco)的状态

bpdu filter

背景:

  1. 全局配置BPDU filter
    希望这个接口处于边缘接口的角色,但是也可以接入交换机设备,一旦收到BPDU的时候,就会消失掉portfast的特性,成为一个普通的stp的端口

  2. 在接口情况下配置bpdu filter
    相当于关闭了STP的功能,当收到BPDU的时候,可能会导致二层环路

uplink fast

  • 主要作用:主动向其他交换机发送自己下联PC的MAC地址信息,让其他交换机快速更新CAM表

backbone fast

  • BackboneFast是对UplinkFast的一种补充,
  • UplinkFast能够检测直连链路的失效;
  • BackboneFast是用来检测间接链路的失效。
  • 当启用了BackboneFast的交换机检测到间接链路失效之后,会马上使阻塞的端口进入监听状态,少了20S的老化时间。
    STP(生成树协议)-编程知识网

RootGuard

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