第十九章节-STP生成树协议

STP的概述

  • STP的基本原理是,通过在交换机之间传递一种特殊的协议报文,网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),来确定网络的拓扑结构。
  • BPDU有两种,配置BPDU和TCN BPDU。前者是用于计算无环的生成树的,后者则是用于在二层网络拓扑发生变化时产生用来缩短MAC表项的刷新时间的(由默认的300s缩短为15s)。
  • Spanning Tree Protocol(STP)是在IEEE 802.1D 文档中定义,该协议的原理是按照树的结构来构造网络拓扑,消除网络中的环路,避免由于环路的存在而造成广播风暴问题。
  • 交换机环路带来的问题:
  • ①广播风暴
  • ②MAC地址表不稳定
  • ③网络卡顿
  • ④网络不稳定
  • ⑤过多占用交换机的cpu和内存等等

实现方式

  • 生成树协议运行生成树算法(STA)。生成树算法很复杂,但是其过程可以归纳为以下三个部分。
    (1)选择根网桥
    (2)选择根端口
    (3)选择指定端口(也有书籍称为转发端口)

相关介绍

  • 生成树协议是IEEE 802.1D中定议的数据链路层协议,用于解决在网络的核心层构建冗余链路里产生的网络环路问题,通过在交换机之间传递网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),通过采用STA生成树算法选举根桥、根端口和指定端口的方式,最终将网络形成一个树形结构的网络,其中,根端口、指定端口都处于转发状态,其他端口处于禁用状态。如果网络拓扑发生改变,将重新计算生成树拓扑。生成树协议的存在,既解决了核心层网络需要冗余链路的网络健壮性要求,又解决了因为冗余链路形成的物理环路导致“广播风暴”问题。
  • 但是,由于协议机制本身的局限,STP收敛速度慢(即使是1s的收敛速度也无法满足电信级的要求),如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的震荡。
  • 根端口依据
    (1)到根网桥路径开销最低。
    根路径开销是两个网桥间的路径上所有链路的开销之和,也就是某个桥网到达根网桥的中间所有链路的路径开销之和。
    (2)最低的发送方网桥ID。
    (3)最低的端口ID。
    由于端口的ID是由优先级和端口号组成,保证了根端口的唯一性。
  • 指定端口依据
    (1)根路径开销较低
    (2)所在的交换机网桥ID值最小
    (3)端口号最小
    注:根桥上的所有端口都是指定端口
  • 选举根端口:①RPC–>②对端BID->③对端PID>④本端PID
  • 选举指定端口:①站在交换机角度看RPC(不要站在接口角度)–②本端BID–>③本端PID
  • 注意:最终如果收到的BPDU报文所有参数都一样,此时交换机会比较本端PID
  • 桥ID(BID)=桥优先级+桥MAC,优先级默认32768,桥mac是主板MAC
  • 端口ID(PID)=端口优先级+端口ID,端口优先级默认128,端口ID就是端口编号 例如:e0/0/5 ID就是5
  • 简化步骤
    A、整个交换网络选举根桥(根交换机),桥ID较小的交换机当选为根桥。桥ID=桥优先级+桥MAC。根桥上的接口都是指定端口(DP:Designated Ports).注意:桥优先级默认都是32768 。
    B、非根桥上选择根端口,到达根桥“最近”(RPC)的端口当选为根端口(RP:root port)。对端桥ID。
    C、每条链路有且仅有一个指定端口。桥ID较小的交换机的端口当选为指定端口。
    D、剩下的接口将全部被阻塞,阻塞端口简称:block port(AP:alternate port 或者 NDP)。
  • 端口类型
    指定端口:DP(Designated Ports)
    根端口:RP:root port
    block port(阻塞端口):AP:alternate port或者NDP
  • 端口类型 发送数据 接收数据 发送配置BPDU 接收配置BPDU
    RP
    DP
    NDP

端口状态

  • Blocking(阻塞状态):此时,二层端口为非指定端口,也不会参与数据帧的转发。
  • Listening(侦听状态):生成树此时已经根据交换机所接收到的BPDU而判断出了这个端口应该参与数据帧的转发。
  • Learning(学习状态):这个二层端口准备参与数据帧的转发,并开始填写MAC表。在默认情况下,端口会在这种状态下停留15秒钟时间。
  • Forwarding(转发状态):这个二层端口已经成为了活动拓扑的一个组成部分,它会转发数据帧,并同时收发BPDU。
  • Disabled(禁用状态):这个二层端口不会参与生成树,也不会转发数据帧。

协议不足

  • 1、拓扑收敛慢,当网络拓扑发生改变的时候,生成树协议需要50-52秒的时间才能完成拓扑收敛。
  • 2、不能提供负载均衡的功能。当网络中出现环路的时候,生成树协议简单的将环路进行Block,这样该链路就不能进行数据包的转发,浪费网络资源。

链路开销值

带宽 STP开销
100 Kbit/s 200000000
1 Mbit/s 20000000
10 Mbit/s 2000000
100 Mbit/s 200000
1 Gbit/s 20000
10 Gbit/s 2000
100 Gbit/s 200
1 Tbit/s 20
10 Tbit/s 2