企业网中基于树形拓扑防环-STP生成树协议

STP

1.协议简述

STP(Spanning Tree Protoco),可应用于计算机网络中树形拓扑结构建立,主要作用是防止根网桥网络中的冗余链路形成环路工作。但某些特定因素会导致STP失败,要排除故障可能非常困难,这取决于网络设计。生成树协议适合所有厂商的网络设备,在配置上和体现功能强度上有所差别,但是在原理和应用效果是一致的。 ---------From.百度百科

要了解STP生成树协议,首先要知道生成树网络中的信息沟通问题-BPDU

2.BPDU

交换机之间沟通是使用数据帧,网桥之间沟通是通过BPDU(Bridge Protocol Data Unit)桥协议数据单元,跨层封装到二层,
BPDU的数据帧默认不属于任何一个VLAN,故在存在VLAN的设备上,该数据帧基于Native VLAN发送。

  • 配置BPDU:
    拓扑收敛完成之后,仅根网桥周期(2S)发送;在没有根网桥时,所有设备仅发送BPDU;—用于选举根网桥、发布拓扑信息、周期保活链路

  • TCN BPDU(拓扑变更信息):
    TCN包中不包含任何具体信息,不会导致网络重新收敛

    当一台交换机的阻塞端口链路被断开,那么将标记为中7位 置为1,标识拓扑已经改变,该BPDU将发送到根网桥处,根网桥使用标记位 第0位,来确认;

    若没有收到ACK,那么2S周期发送TCN;根网桥确认之后,将使用BPDU告诉所有的非根网桥,刷新CAM表,默认CAM的保存周期为300s

  • 次优BPDU
    当非根网桥上的根端口断开,此时接收不到根网桥的BPDU了,同时本地断开的不为阻塞端口,那么本地会将自己定义为根网桥,发出BPDU,由于该BPDU次于根网桥,所以称为次优BPDU

    次优BPDU,包含本地拓扑信息,同时也为配置BPDU,但不为根网桥发出的BPDU

3.STP生成树协议发展

所有的生成树协议都基于IEEE 802.1D,所以我们详细的介绍802.1D,之后的生成树PVST、PVST+、RSTP/802.1W、802.1S/MSTP都是对之前的优化

(1).IEEE 802.1D

802.1D在计算过程中,选出4中角色

  • 根网桥(树根、核心)
    在一颗生成树实例中有且仅有1台,没有根网桥之前,所有的交换机默认本地为根网桥,发出BPDU进行根网桥的选举

    根网桥的选举:
    比较BPDU中的BID(桥ID) = 网桥优先级 + MAC地址 越小越优

    先比较所有设备的优先级,0-65535 默认为32768越小越优
    优先级相同的情况下比较MAC地址数值小优
    企业网中基于树形拓扑防环-STP生成树协议_第1张图片
    CISCO用Extend System ID来标识VLAN信息

  • 根端口
    在每台非根网桥上有且仅有一个,本地离根网桥最近的接口,该接口用于接收来自根的BPDU,同时该接口也用于收发用户的数据;

    根端口的选举:
    PID = 端口ID = 接口优先级 0-255 默认为 128 +接口编号
    1.入方向最小COST值
    2.比较该接口对端(上级)的设备的BID,小优
    3.比较该接口对端(上级)设备的PID,小优
    4.比较本地PID

  • 指定端口
    在每根网线上有且仅有一个,用于转发来自根的BPDU,同时转发用户流量,根端口的对端肯定是指定端口,根网桥上所有接口均为指定端口
    1.比较从该接口发出BPDU的COST值
    2.比较本地BID,小优
    3.比较本地PID,小优
    4.直接阻塞端口

  • 非指定端口(阻塞端口)
    当以上端口角色全部完成,剩余的所有的存在的端口为非指定端口,逻辑阻塞,可以接收,不能转发

    COST值:
    10M = 100
    100M = 19
    1000M = 4
    10000M = 2
    > 10000M = 1

实例分析

企业网中基于树形拓扑防环-STP生成树协议_第2张图片

接口状态
  • Down:接口指示灯未亮起,网线刚刚连接,不能收发BPDU

  • Listening(侦听):接口指示灯为橙色,进行BPDU收发,选举各种角色,时长为15S

    当指定端口和根端口进入到下一个状态,非指定端口进入阻塞状态,指示灯一致保持为橙色

  • Learning(学习):接口指示灯为橙色,根端口和指定端口学习各个接口下放连接PC的MAC地址;生成MAC表;15S时长结束后进入下一个状态

  • Forwarding(转发):接口指示灯为绿色,收敛完成,可以正常转发用户的数据,在30S内接口是转发用户数据;

  • Blocking(阻塞状态):非指定端口在侦听完成之后,进入的状态,指示灯一直保持为橙色

收敛时间
  1. 初次收敛为30S = listening + learning
  2. 结构突变时
  • 存在直连检测时:当本地根端口断开,且本地只剩下阻塞端口能接受到BPDU,该接口直接进入侦听和学习状态,30S转换为根端口
  • 当不存在直连检测时:阻塞端口需要50S转换为根端口 = 20S hold time + 30S 收敛
802.1D优缺点分析
  1. 收敛速度慢,所有的VLAN一颗树,当交换机发生拓扑变更时接口跳转50S,所有的接口都要参与生成树的建立
  2. 链路利用率低 备份路劲在最佳路径存在时一直闲置;

(2).PVST

CISCO私有,基于vlan的生成树

原理:
  • 在每个vlan中存在一颗树,通常将不同生成树的根放置于不同汇聚层位置,来实现链路利用率的提高.

  • 每个vlan发出一个BPDU;各个vlan进行各自的802.1D计算

  • 为了区分不同的vlan发出的BPDU,网桥优先级(4096的倍数)+vlanid

优缺点分析
  1. 收敛慢
  2. cisco私有
  3. 树多,带宽和设备硬件资源均占用(cisco设备存在一个专用的芯片来进行生成树的运行)
  4. 仅支持接口封装为ISL的Trunk干道

(3).PVST+

在PVST的基础上进行升级,目前大多数cisco设备默认使用的STP协议
1.支持802.1q,trunk干道封装模式
2.可以做部分加速

  • 修改优先级

      Switch(config)#spanning-tree vlan 2 priority ?
      <0-61440>  bridge priority in increments of 4096
    
  • 可直接设备备份(secondary)和主根(primary)

      Switch(config)#spanning-tree vlan 2 root ?
      primary    Configure this switch as primary root for this spanning tree
      secondary  Configure switch as secondary root
      该命令不一定完全生效
      主根命令是本地优先级下调2个4096
      备份根命令是本地优先级下调1个4096 		
    
  • 可修改接口优先级或者COST值

      修改接口优先级:
      Switch(config-if)#spanning-tree vlan 2 port-priority ?
      <0-240>  port priority in increments of 16
      修改COST值:
      CORE(config-if)#spanning-tree vlan 2 cost ?  
       <1-200000000>  Change an interface's per VLAN spanning tree path cost
    
  • 端口加速

      连接PC的接口,开启端口加速后;一旦连线,直接为转发状态;
      Switch(config)#interface f0/1
      Switch(config-if)#spanning-tree portfast
    
  • 全局开启端口加速

      全局下开启端口加速,对Trunk干道不生效
      Switch(config)#spanning-tree portfast default
    
  • 上行链路加速
    只能在接入层设备配置
    配置之后,该交换机的网桥优先级和接口COST值会加大,意义在于存在阻塞端口的设备才会存在直连检测,而阻塞端口最好在接入层设备上;故加大优先级和COST值,在于放弃成为根网桥,尽量成为阻塞端口

      Switch(config)#spanning-tree uplinkfast
    
  • 骨干加速
    当阻塞端口接收到次优BPDU,那么该接口取消20s hold time,直接进入30s收敛,所有设备均可配置

      Switch(config)#spanning-tree backbonefast
    
优缺点分析
  1. 树多
  2. cisco私有
  3. 加速不够彻底

(4).快速生成树(RSTP/802.1W)

不再依赖计时器 而是一个状态的工作完成之后,直接进入下一个状态

RSTP:为cisco私有的快速生成树协议;RSTP可以兼容802.1W
802.1W:为非CISCO产品大多数默认的协议

  • 802.1W是对802.1D的提速,依然整个交换网络一棵树
  • RSTP为CISCO的快速生成树,是对PVST+的提速,每个VLAN一棵树

这两种协议均为快速收敛,1-2s完成收敛,提速的原理一致,区别在于CISCO有基于VLAN的运算芯片

RSTP的状态规范把原来的5种状态缩减为3种,根据端口是否转发用户流量和学习MAC地址来划分:

  • 如果不转发用户流量,也不学习MAC地址,那么端口的状态就是Discarding状态。
  • 如果不转发用户流量但是学习MAC地址,那么端口的状态就是Learning状态
  • 如果既转发用户流量又学习MAC地址,那么端口就为Forwarding状态

PacketTracer7.0中,存在两种生成树PVST/PVST+,和RSTP

干涉选举同PVST+一致

Switch(config)#spanning-tree mode ?
pvst        Per-Vlan spanning tree mode
rapid-pvst  Per-Vlan rapid spanning tree mode

注:默认接口为半双工(10M)时,接口类型为共享,全双工接口为点到点类型;
在共享接口下依然运行慢速生成,只有点到点接口可以快速收敛

Switch(config-if)#spanning-tree link-type ?
point-to-point  Consider the interface as point-to-point
shared          Consider the interface as shared
优缺点分析
  1. RSTP-树太多
  2. 802.1W-一个数->链路利用率低

(5).分组式生成树(MSTP/802.1S)

快速生成树协议,将多个VLAN放置于同一个组内,一个组一颗树
使用该协议时,整个网络所有设备必须均运行MSTP,同时所有设备的分组设置必须完全一致;

MSTP/802.1S

原理

将多个VLAN放置在一个组里,为每个组生成一棵树,树型算法为802.1W;将不同组的根网桥放置于不同的汇聚层设备处,可以实现流量的分载,提高链路利用率;

不同组发出的BPDU,使用BPDU,使用网桥优先级区分,优先级+组ID

vlan分组:
Switch(config)#spanning-tree mst configuration 
Switch(config-mst)#instance 1 vlan 1-50   将vlan1-50划	分到组1
Switch(config-mst)#instance 2 vlan 51-100 将vlan51-100划分到组2

定义根网桥,备份根网桥的位置:
Switch(config)#spanning-tree mst 1 root primary    降2个4096
Switch(config)#spanning-tree mst 2 root secondary  降1个4096

修改参选接口的参数:
Switch(config)#interface e0/0  
Switch(config-if)#spanning-tree mst 1 ?
 cost           Change the interface spanning tree path cost for an instance
 port-priority  Change the spanning tree port priority for an instance

你可能感兴趣的:(Switch)