前言

为了提高网络可靠性,交换网络中通常会使用冗余链路,然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树STP(Spanning Tree Protocol ) 可以在提高可靠性的同时又能避免环路带来的各种问题。

二层网络设计需求和问题:

  • 为了提高可靠性,交换机之间会通过多条链路相连,从而避免单点故障

  • 但同时会带来一些灾难性的环路问题

环路问题:

广播风暴

MAC地址表产生震荡

在广播风暴的同时,MAC地址表也一直在变换,

如下图的信息提示,MAC地址对应的接口发生了震荡,从2口变到了1口。

STP

STP: Spanning Tree Protocol, 生成树协议,提供两大功能:

  • 消除环路:通过阻断冗余链路来消除网络中可能存在的环路,就可以消除刚刚上面碰到的问题
  • 链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。

STP 操作

:通过构造一棵树来消除网络中的环路。( STP发明于80年代,那时候的网桥就是现在的交换机)

STP选举

STP选举是以各自发送BPDU数据包中的字段来相互比较来决定谁是根桥

BPDU:Bridge Protocol Data Unit – 桥协议数据单元(STP工作协议)

  • 使用组播: 01-80-C2-00-00-00 ( 可以记忆一下,面试小细节)

  • BPDU包含桥ID,路径开销,端口ID,计时器等参数。

BPDU类型:

  • 配置BPDU:

    • 选举根交换机以及确定每个交换机端口的角色和状态
    • 在初始化过程中,每个桥都主动发送配置BPDU。
    • 在网络拓扑稳定以后,只有根桥主动发送BPDU,其它交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
    • 发送周期为Hello time
    • 老化时间为MAX-Age

    ensp 默认开启 MSTP

  • 拓扑变更通告BPDU-TCN BPDU

    • 下游交换机感知到拓扑发生变化时向上游发送的拓扑变换通知

Topology Change 拓扑变化

BPDU字段详解

字段中重要且用于根桥选举的4个字段:

  • 桥ID: BID - Bridge ID

    • 用于在STP中唯一标识一个交换机,由两部分组成:

      • 桥优先级:高16位
      • 桥MAC地址:低48位

  • 端口ID : PID - port ID

    • 用于在STP中唯一标识一个交换机上的端口,由两部分组成:

      • 端口优先级:高8位
      • 端口编号:低8位

  • 路径开销:Path Cost

    • 路径开销用于衡量桥与桥之间路径的优劣,越低越好
    • STP中每条链路都具有开销值

    两个标准下的开销值:(802.1D-1998 标准是 98年的标准,所以它的开销是较小的,随着技术的跟进,带宽逐渐增大,所以 标准 也会与时俱进的

    • 根路径开销:Root Path Cost

      • 确定到达根桥的最短路径,并生成无环树状网络
      • 到根桥的路径上所有的路径开销之和

STP中端口的角色

  • 根端口:去往根桥路径开销最小的端口,根端口负责向根桥方向转发数据。在一个运行STP协议的设备上根端口有且只有一个,根桥上没有根端口。

    根端口保证了交换机与根桥之间工作路径的唯一性和最优性。

  • 指定端口:

    向下行网桥转发BPDU的端口。

    根桥上的所有端口均为指定端口。

  • 阻塞端口:非根端口和非指定端口的其余端口被会进行逻辑上的阻塞,只能接受根桥发送来的STP协议数据帧。

STP选举过程

根桥选举

  • 每一台交换机启动STP后,都认为自己是根桥

  • BID 最小的成为根桥(先比较优先级,再比较MAC)

根端口选举

  • 是在一个非根交换机上选根端口 注意是 在一个(它自己)!!!!!

  • 非根交换机在选择根端口时分别根据该端口

    • 根路径开销 | 比
    • 对端BID | 较
    • 对端PID | 方
    • 本端PID V 向

以刚刚的拓扑为例:我们已经知道LSW3是根桥,先根据规则来判断选举出哪些口是根端口。

  1. 根桥上(LSW3) 上的端口都为指定端口

  2. 先看LSW1 , 交换机上有两个口,一个是G0/0/1,一个是G0/0/2,在它们之中选出根端口

  3. 首先比较它们端口的根路径:

  1. 同理算出LSW2的G0/0/3口 也为根端口,验证查看

指定端口选举

  • 非根交换机在选择指定端口时分别根据该端口的

    • 根路径开销 | 比较

    • 本端BID | 方

    • 本端PID V 向

  1. 指定端口的责任是向下行路由器发送BPDU
  2. 现在要从LSW2和LSW1中的G0/0/2 、G0/0/1 选出 指定端口
  3. 查看这两个口的根路径开销都为20000,

  1. 往下,比较 本端BID

  1. 验证

预备端口

未被选举为根端口或指定端口的端口为预备端口,将会被阻塞

所以根据规则,LSW1的G0/0/1就为预备端口并给予堵塞。

STP 端口状态 & 计时器

STP 端口状态

  • disabled port: 端口没有接线

  • blocking: 阻塞

  • Listening: 监听

STP的计时器

Max Age :

  • 最长未接受BPDU时间
  • 所连的交换机不能超过20台。

所以不建议在二层网络中连续的接多个交换机,一是不利于STP协议的计算降低效率,二是大于20台时,非根桥会丢弃BPDU

链路中根桥会一直发送BPDU,如果被阻塞端口的交换机超过 Max Age 时间没有收到,则会认为自己就是根桥,端口就不会被堵塞了,然后如下图改变状态。(这也是刚开始启动交换机时,各个端口的状态变化

15s 监听 – > 15s 学习 – > 转发

STP拓扑变化

根桥故障

交换机出现故障时,当前二层网络下的设备恢复网络一共需要50 S 。

直连链路故障

我们测试一下:

  1. 查看LSW3的端口

  1. 关闭 G0/0/1 口, 查看 状态变化。

​ 时间是 STP 的缺点之一

非直连链路故障

同样测试一下;

  1. 开始时

  1. 关闭LSW2的g0/0/1的端口后

  1. 根据Message的大小(经过一台交换机加1) 证明 BUPD是从LSW3那边发过来的

拓扑改变导致MAC地址表错误

拓扑如下:

STP正常运行,PC1 ping PC2 通过ARP询问MAC地址后正常通信,LSW1也记下了所对应的MAC地址。

–> 所以有了 TCN

  • 检测到拓扑改变的交换机通过根端口向根桥发送TCN,上游交换机收到TCN后回应TCA,让后下游交换机停止发送TCN,再通过根端口发送TCN直到根桥收到,根桥通过制定端口发送TC通知所有下游交换机把MAC地址表记录老化时间从300s变为15s

如:

关掉后:

超详细的--STP理论相关推荐

  1. 超详细讲解CTC理论和实战

    CTC理论和实战 CTC简介 CTC算法详解 对齐 损失函数 预测 CTC算法的特性 条件独立 对齐 使用CTC进行变长验证码识别 问题描述和解决方法 安装WarpCTC 得到tensorflow源代 ...

  2. ELK日志分析系统 超详细!!理论+实操讲解!!

    文章目录 一.ELK日志分析系统简介 1.1日志处理的步骤 1.2 ELK日志分析系统三部分 1.3日志服务器(一般) 二.Elasticsearch介绍 2.1 Elasticsearch概述 2. ...

  3. 陈宝林《最优化理论与算法》超详细学习笔记 (八)————最优性条件

    陈宝林<最优化理论与算法>超详细学习笔记 (八)----最优性条件 无约束问题的极值条件 必要条件 二阶充分条件 充要条件 约束极值问题的最优性条件 不等式约束的一阶最优性条件 无约束问题 ...

  4. 陈宝林《最优化理论与算法》超详细学习笔记 (七)————第五章 运输问题

    陈宝林<最优化理论与算法>超详细学习笔记 (七)----第五章 运输问题 第1节 运输问题的数学模型 第2节 表上作业法 2.1 确定初始基可行解 2.2 最优解的判别 2.3 改进的方法 ...

  5. 陈宝林《最优化理论与算法》超详细学习笔记 (四)————第四章 对偶理论

    陈宝林<最优化理论与算法>超详细学习笔记 (四)----第四章 对偶理论 1. 对偶问题的提出 2. 线性规划的对偶理论 2.1 原问题与对偶问题的关系 2.2 对偶问题的基本性质 3. ...

  6. 陈宝林《最优化理论与算法》超详细学习笔记 (一)————第十章 使用导数的最优化方法(最速下降法、牛顿法、阻尼牛顿法)

    陈宝林<最优化理论与算法>超详细学习笔记 (一)----第十章 使用导数的最优化方法(最速下降法.牛顿法.阻尼牛顿法) 写在前面 第十章 使用导数的最优化方法 最速下降法 牛顿法 阻尼牛顿 ...

  7. 陈宝林《最优化理论与算法》超详细学习笔记 (五)————最优性条件 之 KKT条件

    陈宝林<最优化理论与算法>超详细学习笔记 (五)----最优性条件 之 KKT条件 Lagrange对偶问题 原问题 Lagrange函数 Lagrange对偶函数 强/弱对偶性 弱对偶性 ...

  8. 陈宝林《最优化理论与算法》超详细学习笔记 (二)————补充知识(凸集) 第二章 线性规划的基本性质

    陈宝林<最优化理论与算法>超详细学习笔记 (二)----补充知识 凸集 & 第二章 线性规划的基本性质 补充知识 凸集 方向与极方向 表示定理 择一定理 第一章 线性规划的基本性质 ...

  9. 一份超详细的数据科学路线图!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:魔王.陈萍,来源:机器之心 从头开始学习数据科学的免费资源. 如何 ...

最新文章

  1. 不契合市场,Bitcoin SV愿景未必是给矿工的一个好选择
  2. 前端学习(2813):小程序开发前的环境搭建
  3. ZSH and oh-my-zsh 强强联合
  4. VC“cannot execute program”错误的解决方法
  5. 最强JAVA核心技术群
  6. EXTJS4自学手册——EXT基本方法、属性(mixins多继承、statics、require)
  7. CentOS 7 安装 jdk11
  8. jsp页面中插入jsp代码片段
  9. YOLO3实践应用之搭建开发环境(Python 3.6 、TensorFlow1.5版本)
  10. 华为Mate系列平板手机安装谷歌框架
  11. 社交网络时代下的网络营销
  12. 如何通过web of science查询一个学者每一年的h-index?(h指数)
  13. Python中最强大的错误重试库
  14. 关于科技趋势和未来机会,这8本书告诉你答案
  15. DELPHI常用函数集及简要范例 3
  16. 点击修改用户图像php类,php修改图像
  17. Oracle错误12154的解决方法
  18. 【Java程序设计】Java上机实验(二)
  19. java utf8 简繁转换 类库,java 中文繁简体转换工具 opencc4j
  20. 基恩士pda开发指南

热门文章

  1. Mysql 查询所有的上级,下级
  2. Typora 标题无法对齐
  3. Python爬虫实战之一:requests-爬取京东商品详情页面
  4. subl: gitgutter可以让你看到git 改动
  5. 世界各国及组织自动驾驶现行法规政策
  6. 【转】李想:关于工作和成长,这是我的100条具体建议 |【经纬低调分享】
  7. 既然有 HTTP 请求,为什么还要用 RPC 调用?
  8. Android-计步器的学习心得
  9. 安卓学习之路---计步器算法
  10. 不动点迭代求解方程数值解