HCIA笔记-STP

 

STP

 

  • STP,全程Spanning-Tree Protocol,生成树协议
  • 协议作用:防止二层网络环路。
    • 为了避免单点故障,出于冗余考虑,一般会部署冗余设备和冗余链路。当主设备或主链路故障时,备份设备或链路可以继续正常工作,避免网络中断。但同时就产生了二层的环路。如图,SW1----SW2---SW3之间就是一个环路,同样SW1-SW2-SW4之间也时一个环路。

  

 

 

 

  • 二层环路带来的影响:
    • 1、广播风暴:广播数据帧会在二层环路中永无止境的转发,这将消耗大量的设备性能和带宽资源;
    • 2、MAC地址表震荡:二层环路会导致MAC地址表频繁变化,影响数据转发;
    • 既然被称为生成树,那么其逻辑也和大树类似,需要有一个“树根”。在生成树协议中,“树根”被称为根桥,即根交换机。
    • STP工作过程:

    

 

 

 

 

  •  例如上面图中的拓扑,共有4台交换机互联组网,每台交换机的BID如图所示。
    • 1、第一步选举根桥
      • 初始状态,所有交换机都会认为自己是根桥。运行STP的交换机,默认每2秒发送一次BPDU(Bridge Protocol Data Unit),即网桥协议数据单元,其中包含了自己的BID(Bridge ID,桥ID)PID(Port ID,接口ID)RPC(Root Path Cost,根路径开销)等信息。交换机之间通过交互BPDU之后,就知道了对端交换机的BID。通过比较BID大小,来选举STP中的根桥。BID最小的最终选举胜出。
      • BID由两部分组成:桥优先级和桥MAC地址。例如4096.00-01-02-03-04-AA。其中4096代表桥优先级,00-01-02-03-04-AA代表交换机的MAC地址。在交换机上通过display stp命令来查看桥ID。
      • 例如,上图中四个交换机,通过交互BPDU之后,BID最小的SW1将会成为根桥,其他交换机都是非根桥。
    • 2、第二步选举根端口
      • 根桥选举结束之后,接着需要选举根端口。根端口是在非根桥的交换机上,选举出一个到根桥“最近”的一个接口。交换机判断举例根桥“远近距离”的依据是RPC根路径开销,开销值越小,距离根桥“越近”。选举过程如下:
      • 第一步,比较RPC。对比交换机自身所有UP的接口到根桥的路径开销。RPC值最小的接口选举胜出,成为根端口。若RPC相同,则比较第二步;
      • 第二步,比较对端BID。从所有接口收到的BPDU中,对比所有对端交换机的BID,BID最小的对应的接口胜出,成为根端口。若对端BID相同,则比较第三步;
      • 第三步,比较对端PID。从所有接口收到的BPDU中,对比所有对端交换机和自己本端相连的PID,PID最小的对应的接口胜出,成为根端口。
      • 举例,按照上面拓扑图中所示。SW2可以有两条路径到达根桥,一条路径是从G0/0/1接口向上出发到达根桥,另一条路径是从G0/0/2接口向下出发,经过SW4和SW3,到达SW1。RPC的值,等于交换机接收BPDU的接口的Cost值累加。
      • 默认情况下,接口Cost值等于20000000除以接口带宽。例如接口带宽我为千兆时,Cost=20000000/1000=20000
        • 对于第一条路径,根桥的BPDU到达SW2,只经过了SW2的G0/0/1口,因此这条路径RPC值为20000;
        • 对于第二条路径,根桥的BPDU到达SW2,经过了SW3的G0/0/1口,SW4的G0/0/2口,SW2的G0/0/2口,因此这条路径的RPC值为20000+20000+20000=60000
        • 经过PK两条路径的RPC,第一条路径的RPC小于第二条路径的RPC,因此,SW2的G0/0/1口成为了根端口。
      • SW4选举根端口。第一条路径可以从G0/0/1接口出发到达根桥,第二条路径可以从G0/0/2口到达根桥。
        • 第一步,PK两条路径的RPC,第一条路径的RPC为40000,第二条路径RPC也为40000。两条路径的RPC相同,因此需要第二步PK。
        • 第二步,PK需要比较两条路径的对端的BID,即比较SW2和SW3的BID。经过PK,SW2的BID小于SW3的BID,因此第一条路径胜出。SW4的G0/0/1口成为根端口。
      • SW3选举根端口。SW3共有三条路径到达根桥,第一条路径是从G0/0/1口出发到达根桥,第二条路径是从G0/03口出发到达根桥,第三条路径是从G0/0/2口出发,经过SW4,SW2到达根桥。
        • 第一步,先PK三条路径的RPC,第一条路径RPC为20000,第二条路径RPC为20000,第三条路径为60000,因此,排除第三条路径,然后继续PK;
        • 第二步,PK对端的BID。第一条路径和第二条路径,对端的BID都是SW1的BID,因此BID也相同,无法分出“胜负”,因此继续PK;
        • 第三步,PK对端的PID。PID是由接口优先级和接口号组成。默认接口优先级为128。例如G0/0/1口的PID为128.1,G0/0/2口的PID为128.2。两条路径上,对端的PID分别为128.1和128.2。经过PK,第一条路径上对端PID更小,因此第一条路径“胜出”,SW3的G0/0/1口成为根端口。
    • 3、选举指定端口
      • 根端口选举结束之后,开始指定端口的选举。每个链路上都要选举出来一个指定端口。根桥上所有接口都为指定端口。
      • 指定端口选举过程如下:
        • 第一步,比较根端口RPC。在一条链路上,双方交换机互相对比自己的根端口的RPC,RPC小的一方胜出,成为指定端口。若双方RPC一致,则比较第二步;
        • 第二步,比较BID。在一条链路上,双方互相对比BID,BID小的一方胜出,成为指定端口。若双方BID一致,则比较第三步;
        • 第三步,比较PID。在一条链路上,双方互相对比PID。PID小的一方胜出,成为指定端口。
      • 举例,按照上图拓扑图中所示,在SW3和SW4之间的链路上选举指定端口。
        • 第一步,比较RPC。SW3的根端口RPC为20000,SW4的根端口RPC为40000。SW3的根端口RPC更小,因此SW3胜出,这条链路上SW3的G0/0/2口成为指定端口。
        • 假如我们修改SW3的G0/0/1和G0/0/3的端口开销都修改为40000,修改之后,根端口依旧为G0/0/1,RPC变为了40000。此时,SW3和SW4的根端口RPC一致,因此两者之间链路上的指定端口选举,就需要第二步比较。
        • 第二步,比较BID。双方互相比较自己的BID。SW3的BID要小于SW4的BID,因此经过第二步比较,SW3胜出,SW3的G0/0/2口成为指定端口。
        • 假如我们将SW3的G0/0/4口和G0/0/5口连接起来,此时这两个接口要选举指定端口时,就需要比较第三步;
          • 对于SW3的G0/0/4和G0/0/5口而言,前两步比较的根端口RPC和BID都一致,因此比较第三步。
          • 两个接口经过比较,G0/0/4的PID小于G0/0/5,因此G0/0/4将会成为指定端口。
    • 4、阻塞非根非指定端口。
      • 将所有链路中既不是根端口也不是指定端口的接口进行阻塞,打破二层环路。
  • 端口状态变化
    • STP的端口状态共有5种,依次是:
    • 状态 是否接收BPDU 是否转发BPDU 是否学习MAC地址 是否转发数据
      Disabled
      Blocking
      Listerning
      Learning
      Forwarding
    • 端口状态转换过程是表格中由上至下的过程:
      • 端口初始状态为Disabled,当端口开启之后,状态就会从Disabled变为Blocking;
      • 当根桥、根端口、指定端口选举完成之后,没有被阻塞的端口将会进入Listerning状态,被阻塞的端口依然保持Blocking状态;
      • Listerning状态转变为Learning状态,需要等待一个Forward Delay时间,默认情况下,一个Forward Dely时间为15秒;
      • Learning状态转变为Forwarding状态,需要再等待一个Forward Delay时间。
      • 当端口状态转变为Forwarding之后,才可以转发数据。
  • BPDU报文内容
PID PVI BPDU Type Flags Root ID RPC Bridge ID Port ID Message Age Max Age Hello Time Forward Delay

协议ID

0x0000

协议版本

STP时为0

RSTP时为2

MSTP时为3

BPDU类型
配置BPDU:负责建立,维护STP拓扑
 TCN BPDU:传达拓扑变更

标记字段 

TC BPDU

TCA BPDU

 根桥的BID 根路径开销   交换机自己的桥ID 端口ID 配置BPDU在网络中传播的生存期  配置BPDU在设备中能够保存的最大生存期

发送BPDU的时间间隔

默认2秒 

端口状态迁移的延时

    •  Message Age:Message Age是从根桥发送到当前交换机接收到BPDU的总时间,包括传输延时等。如果配置BPDU是根桥发出的,则Message Age为0。实际实现中,配置BPDU报文每经过一个交换机,Message Age增加1。
    • Max Age是指BPDU报文的老化时间,可在根桥上通过命令人为改动这个值。Max Age通过配置BPDU报文的传递,可以保证Max Age在整网中一致。非根桥设备收到配置BPDU报文后,会将报文中的Message Age和Max Age进行比较:如果Message Age小于等于Max Age,则该非根桥设备会继续转发配置BPDU报文。如果Message Age大于Max Age,则该配置BPDU报文将被老化掉。该非根桥设备将直接丢弃该配置BPDU,并认为是网络直径过大,导致了根桥连接失败。
posted @ 2021-05-26 14:58  丨Kang  阅读(928)  评论(0)    收藏  举报