交换原理多种STP协议详解(内含MSTP相关配置命令)

文章目录

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

STP生成树

原理

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

如图:任意一台交换机发出一个广播就会促发其他交换机也发出广播 就会陷入无限循环 而且交换机的mac地址表会不断的变化 影响网络的稳定和畅通
交换原理多种STP协议详解(内含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协议详解(内含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协议详解(内含MSTP相关配置命令)_第3张图片

RSTP快速生成树

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

端口角色

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协议详解(内含MSTP相关配置命令)_第4张图片
在stp中 20秒没收到来自根桥的BPDU就会认为链路出现故障 所以设备发现故障存在的时间需要20秒
而在RSTP中若三个hello time(6秒)没收到上游邻居发送的BPDU就会认为邻居出现故障 加快了设备发现故障的时间

故障处理

设备检测网络结构发生变化后会触发TCN BPDU 释放故障端口的MAC表项
设备收到TCN BPDU 后 释放除了收到TCN的其他接口的MAC表项
交换原理多种STP协议详解(内含MSTP相关配置命令)_第5张图片

保护机制

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

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

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

MSTP多生成树

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

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

华为设备MSTP基础配置命令

stp mode mstp                                    ###将交换机配置成mstpmoshi
stp region-configuration                       ###进入mstp配置模式
region-name HUAWEI                      ###配置域名为HUAWEI
instance 1 vlan 10                            ### 将vlan10  加入实例1 中
instance 2 vlan 20                            ### 将vlan 20 加入实例 2 中
active region-configuration              ### 激活配置
quit
stp instance 1 root primary              ###配置此交换机为实例1 的主根
stp instance 2 root secondary         ###配置此交互就为实例2 的备根

你可能感兴趣的:(网络通信)