生成树协议

二层环路带来的问题广播风暴、MAC地址表震荡

生成树定义

  • STP(Spanning Tree Protocol),用来解决二层环路问题

STP

STP相关概念

BPDU

定义桥协议 数据单元,用于传递STP协议相关报文

STP二层组播:01-80-C2

分类

  • 配置 BPDU 用于传递STP的配置信息
  • TCN BPDU 用于通告拓扑变更信息

STP的选举机制

1.在所有交换机中选举出一台作为根网桥(Root bridge)

  • 选举规则 Bridge-id小的优先

  • Bridge-id

  • 定义 Bridge-id,用来标识交换机身份

  • 格式 优先级+Mac地址,优先级默认为32768,必须是4096的倍数

2.每台非根网桥(交换机)选举出一个根端口(Root Port)

选举规则

  • 到达根网桥开销小的优先
  • 对端交换机Bridge-ID小的优先
  • 端口ID小的优先

开销 Cost,代表路径耗费的代价和成本,带宽越大,开销越小

3.每个物理段上选举出一个指定端口(Designated port)

选举规则

  • 到达根网桥开销小的优先
  • 本机Bridge-ID小的优先
  • 端口ID小的优先

4.剩下没有角色的端口就是阻塞端口(Blocked Port)

STP初始化流程

交换机端口状态
  • disable:禁用状态,被关闭的端口
  • blocking:阻塞状态 接收BPDU(学习数据报文),但不发送BPDU,不学习Mac地址,不转发数据
  • listening:监听状态 接收并发送BPDU,不学习Mac地址,不转发数据,持续15秒。此状态下进行选举
  • learning:学习状态 接收并发送BPDU,学习Mac地址,不转发数据,持续15秒
  • forwarding:转发状态 接收并发送BPDU,学习Mac地址,转发数据

STP计时器

  • Hello Time 2秒,配置BPDU的发送周期
  • Max age 20秒,判断链路故障的时间,10个Hello time周期
  • Forwarding delay 15,状态切换延迟

STP拓扑变更机制

  • 1.Max age超时(接口挂了)/有接口变更为转发状态,判断为拓扑发生变更,向根网桥发起TCN BPDU
  • 2.收到TCN BPDU的交换机继续向根网桥转发TCN BPDU,到达根网桥为止
  • 3.根网桥收到TCN BPDU后,向所有端口发起TC置位的配置BPDU
  • 4.交换机收到TC置位的配置BPDU后,Mac地址表的老化时间缩短到15秒

STP的问题

  • 收敛速度慢,故障切换时间长
  • 网络中大量主机频繁上下线,会导致TCN BPDU以及TC置为BPDU大量发送

STP常用命令

  • [h3c]display stp 查看STP相关信息
  • [h3c]display stp brief 查看STP端口状态
  • [h3c]stp global enable 全局启用STP
  • [h3c-GigabitEthernet 1/0/1]undo stp enable 关闭端口上STP
  • [h3c]stp mode ‘stp/rstp/mstp’ 更改STP模式,默认模式是mstp
  • [h3c]stp priority ‘priority’ 更改交换机优先级
  • [h3c-GigabitEthernet 1/0/1]stp cost ‘cost’ 更改接口生成树的cost
  • [h3c-GigabitEthernet 1/0/1]stp edged-port 配置端口为边缘端口

RSTP

定义快速生成树协议,与STP基本思想一致,可兼容STP运行

与STP的区别

  • 端口状态减少到三种

    • Discarding 不发送BPDU,不学习MAC地址,不转发数据

    • Learning 发送BPDU,学习MAC地址,不转发数据

    • Forwarding 发送BPDU,学习MAC地址,转发数据

  • 端口角色添加到四种

    • 根端口和指定端口不变

    • 阻塞端口细分为2种

      • 替代端口(Alternata port)根端口的备份
      • 备份端口(Backup Port)指定端口的备份

RSTP的快速收敛机制

  • 边缘端口机制
    • 当链路激活,边缘端口立即进入转发状态,不参与STP计算

    • 边缘端口UP/DOWN不会触发拓扑变更

    • 边缘端口收到BPDU,会转变为非边缘端口

  • 根端口的快速切换
    • 根端口故障后,如果新的根端口对端的指定端口处于转发转发状态,则新的根端口立即进入转发状态
  • 指定端口的快速切换 P/A机制
    • i. SW1新增链路或故障链路恢复,指定端口要进入转发状态之前,向对端SW2发送Proposal报文
    • ii. SW2收到Proposal报文后,立即进行同步操作
      • 同步是指阻塞除边缘端口以外的所有端口,为了防止环路
    • iii. 同步完成后,向对端SW1发送Agreement报文
    • iv. 收到Agreement报文后,SW1的指定端口进入转发状态

RSTP的拓扑改变处理机制

处理机制

  • 只有非边缘端口转变为Forwarding,才产生拓扑改变
  • 拓扑变更后,向所有其他指定端口和根端口发送TC置位BPDU
  • 收到TC置位BPDU,清楚其他所有端口学习的MAC地址

注意

  • 由于每台交换机都可以主动发起RST BPDU,所以取消了TCN机制


MSTP

STP/RSTP的缺陷所有VLAN共享一颗生成树

阻塞链路被完全浪费,无法实现不同VLAN在多链路上负载分担

定义

  • 多生成树协议
  • 基于实例计算出多颗生成树,实例间实现负载分担

基本概念

MSTP配置要点

  • MST配置完成或修改MST配置后,一定要激活配置才能生效

MSTP兼容性

STP保护机制

相关命令

[h3c]stp-region-configuration #进入MST域配置模式

[h3c-mst-region]region-name 'name' #配置MST域名

[h3c-mst-region]revision-level 'level' #配置修订级别

[h3c-mst-region]instance 'instance-id' vlan 'vlan-list' #配置实例和VLAN映射关系

[h3c-mst-region]active region-configuration #激活MST配置

[h3c]stp instance 'instance-id' root 'primary/secondary' #配置交换机为实例的主备根

[h3c]display region-configuration #查看MST域配置