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

STP生成树

原理

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

如图:任意一台交换机发出一个广播就会促发其他交换机也发出广播 就会陷入无限循环 而且交换机的mac地址表会不断的变化 影响网络的稳定和畅通
在这里插入图片描述

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小的优先—>比较对端 端口优先级小的优先—>比较对端端口号小的优先
在这里插入图片描述
阻塞端口

● 不是根端口也不是指定端口 那剩下的就是阻塞端口
● 阻塞端口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秒一次
在这里插入图片描述

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

故障处理

设备检测网络结构发生变化后会触发TCN BPDU 释放故障端口的MAC表项
设备收到TCN BPDU 后 释放除了收到TCN的其他接口的MAC表项
在这里插入图片描述

保护机制

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

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

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

MSTP多生成树

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

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

华为设备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 的备根
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值