华为路由交换STP/RSTP/MSTP

华为路由交换STP/RSTP/MSTP

  • STP生成树
    • 原理
    • BPDU (网桥协议数据单元)
    • 根桥
    • 端口角色(指定、根、阻塞)
    • 端口状态
    • STP拓扑发生变化
    • stp如何维持的
  • RSTP快速生成树
    • 端口角色
      • 边缘端口
    • 端口状态
    • RSTP维持
    • 故障处理
    • 保护机制
  • MSTP多生成树

STP生成树

原理

通过发送BPDU来确拓扑结构,根据互相交互的BPDU来选举出根桥和端口角色从而防止环路、防止广播风暴

如图:任意一台交换机发出一个广播就会促发其他交换机也发出广播 就会陷入无限循环 而且交换机的mac地址表会不断的变化 影响网络的稳定和畅通
华为路由交换STP/RSTP/MSTP_第1张图片

BPDU (网桥协议数据单元)

设备之间传输BPDU来建立生成树结构,根据BPDU里的信息,设备之间就可以选举出根桥和对应的端口角色 BPDU分了两种 分别是 配置BPDU 和 TCN BPDU

配置BPDU:采用组播地址0180-c200-0000发送 用于建立stp网络结构,还用于维持stp的结构 两秒发一次
TCN BPDU:下游设备检测到网路结构发生变化后 发出的通知

根桥

根桥有且只有一个 通过比较 桥ID选举出 桥ID=优先级+mac-小的优选 优先级默认为32768
优先级的值只能设置为4096的倍数,也就是步长为4096

端口角色(指定、根、阻塞)

指定端口
设备发送配置BPDU的端口

  • 根桥上的所有端口都是指定端口
  • 指定端口可以存在多个
  • 端口状态为转发状态

选举:先比较对端桥di 再比较对端端口ID 小的选为根端口

根端口
设备接收BPDU的端口,和去往根桥的最优端口

  • 跟桥上没有根端口
  • 根端口有且只有一个
  • 根端口有且只有一个
  • 根端口是设备去往根桥的最优路径
  • 根桥所连接的是指定端口
  • 端口状态为转发状态

选举:线比较去往根桥的开销 小的优先—>比较上连设备桥ID小的优先—>比较对端 端口优先级小的优先—>比较对端端口号小的优先
华为路由交换STP/RSTP/MSTP_第2张图片

阻塞端口

  • 不是根端口也不是指定端口 那剩下的就是阻塞端口
  • 阻塞端口20秒没收到BPDU 就会发送自己的BPDU参与stp运算
  • 端口状态为阻塞状态(Bloking)

端口状态

  • 禁用(Disable)
    DOWN状态
  • 阻塞(Bloking)
    接收BPDU 不发送BPDU 不转发用户数据
  • 侦听(Lestening)
    接收BPDU 发送BPDU 不转发用户数据
  • 学习(Learning)
    接收BPDU 发送BPDU 不转发用户数据
  • 转发(forwarding)
    接收BPDU 发送BPDU 转发用户数据

当网络结构发生变化后 一个阻塞端口转变为转发状态需要经历50秒的时间 具体转变过程如下

  • 阻塞状态----20秒没收到 BPDU则认为网络发生变化,端口进入侦听状态参与STP运算
  • 侦听状态—发送自己的BPDU 侦听网络中的BPDU 15秒后进入学习状态
  • 学习状态—发送自己的BPDU 学习mac地址 15秒后进入转发状态
    //15秒是为了有充足的时间让stp进行收敛,stp没收敛完就发送用户数据会有环路
  • 转发状态—进行用户数据的转发

STP拓扑发生变化

根桥发生变化:非根桥交换机20秒后收不到来自根桥的BPDU就会进行重新计算stp 阻塞端口 进入 侦听状态 在进入学习状态 在进入转发状态需要50秒
直连端口发生变化:阻塞端口变为根端口计算生成树需要两个转发时延15+15=30秒的时间

stp如何维持的

由根桥从指定端口发送BPDU 非根桥从根端口收到BPDU后 从指定端口向下游转发这个BPDU
若设备20秒没收到BPDU就会认为网络结构发生变化 引起stp从新计算 根桥发送BPDU的频率是2秒一次
华为路由交换STP/RSTP/MSTP_第3张图片

RSTP快速生成树

在stp中存在一个问题 就是收敛时间长 大概需要50秒的时间 所以需要RSTP的P/A机制(proppasl/agreement)来实现端口的快速转变
相对于stp rstp新增了端口角色分别是BackupAlternate

端口角色

  • Backup端口:此端口作为指定端口的备用端口,当指定端口发生故障时,此端口变为指定端口(18秒后) 正常情况下是阻塞状态
  • Alternate端口:此端口作为根端口的备用端口,当根端口发生故障时,此端口变为根端口(立刻)进入转发状态 正常情况下是阻塞状态

边缘端口

不接收BPDU 不参与stp运算 可从禁用状态直接变为转发状态 但是一旦接收到BPDU就会立刻变为普通接口 参与stp运算
// 边缘端口通常设置在交换机和pc相连接的端口,因为pc一旦接入交换机 交换机就会认为网络发生变化就会产生TCN BPDU 由于pc是经常开关的 所以会频繁影响stp生成树 设置为边缘端口就会解决这类问题
// 但是一旦边缘端口连接到了其他交换机 那么交换机就会向这个端口发送BPDU 一旦边缘端口收到BPDU就会立刻变回普通的端口

端口状态

RSTP将STP的五种端口状态简化为三种,将 禁用 阻塞 侦听合并为禁用

禁用Discarding 发送BPDU 接收BPDU 不转发用户数据
学习Learning 接收但不转发用户数据 构建MAC地址表
转发Forwarding 发送BPDU 接收BPDU 转发用户数据

RSTP维持

每台设备都自主发送BPDU 不需要收到根桥的BPDU才触发发送 频率为2秒一次
华为路由交换STP/RSTP/MSTP_第4张图片

在stp中 20秒没收到来自根桥的BPDU就会认为链路出现故障 所以设备发现故障存在的时间需要20秒
而在RSTP中若三个hello time(6秒)没收到上游邻居发送的BPDU就会认为邻居出现故障 加快了设备发现故障的时间

故障处理

设备检测网络结构发生变化后会触发TCN BPDU 释放故障端口的MAC表项
设备收到TCN BPDU 后 释放除了收到TCN的其他接口的MAC表项
华为路由交换STP/RSTP/MSTP_第5张图片

保护机制

  • 根保护
    保护根桥的指定端口不会因为网络问题而改变端口角色
    开启根保护后 根桥的指定端口收到更优的BPDU就会进入侦听状态 若一段时间没收到这个BPDU了就会变回转发状态
    //根保护有利于保护根桥保持不变 不会变成非根交换机
    //根保护只能配置在指定端口上

  • BPDU保护
    开启BPDU保护后 边缘端口收到BPDU后会立刻关闭 需手动开启或自动开启
    //边缘端口是链接pc机的 正常情况下PC是不会发送BPDU的 若有人故意攻击BPDU保护就起到了防止有人攻击从而引起的网络震荡

  • 环路保护
    端口如果长时间没收到来自上游的BPDU 就会进入丢弃状态 避免网络中出现环路情况(光纤)

MSTP多生成树

无论是stp还是RSTP所有网络设备都是公用同一颗生成树 这样就会造成某些链路没有数据在走,某些链路的传输压力过大的问题

当lsw1 0/0/3接口被选为阻塞端口后 所有数据都通过左边链路 而右边链路却没有任何用户数据流通
造成左边转发压力过大 右边浪费带宽的情况
华为路由交换STP/RSTP/MSTP_第6张图片
MSTP多生成树可以根据vlan来划分 在一个网络结构里可以存在多个生成树
如图:
vlan3 的数据走左边 vlan2的数据走右边 这样就可以实现负载均衡
华为路由交换STP/RSTP/MSTP_第7张图片

小白菜 发现错误的请多多指导

你可能感兴趣的:(路由交换)