生成树协议 STP(Spanning Tree Protocol)

提高网络可靠性,在网络中使用冗余链路。冗余链路会给交换网络带来环路风险,导致广播风暴。生成树协议STP(Spanning Tree Protocol)可以再提高可靠性的同时又能避免环路带来的影响

环路引起的问题

  • 环路会引起广播风暴,网络中的主机会收到重复的数据帧

  • 环路会引起MAC地址表震荡

交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的。
为什么会出现震荡,比如第一次由G0/1接收到的数据包,但是第二次是由G0/2接口接收到源MAC地址不变就会产生震荡,互相替换。

衍生出泛洪攻击

STP工作原理

STP通过阻塞端口来消除环路,并且能够实现链路备份的目的。

如果通过阻塞端口解决了环路,那备份就冗余链路就不起作用了,所以STP不仅可以解决环路,也可以使用冗余链路。

需要寻找阻塞端口,来实现既可以解决环路,也可以使用冗余链路

BPDU报文(bridge protocol data unit)

  • BPDU报文分为两种
  • 配置BPDU:平常使用
  • TCNBPDU:当拓扑发生变化时,发送的拓扑变化通知
  • TCNBPDU:topology change notification
6B 6B 4 8 2B 2B 2B 2B 2B 2B
PID PVI BPDU Type Flags Root ID Port ID Message Age Max Age Hello Time Fwd Delay
桥ID STP版本 BPDU类型 标记域 指定桥ID 指定端口ID BPDU消息年龄 BPDU最大生存周期 BPDU老化时间 发送BPDU的周期

STP操作过程

  1. 每个广播域选择一个根桥
  2. 每个非根桥选择一个根端口和根桥相连
  3. 每个段选择一个指定端口
  4. 阻塞非指定端口

选举STP根桥

  1. 每一台交换机启动STP后,都认为自己是根桥。只有根桥才能发送BPDU报文,为选举出根桥以前的root ID都是自己的桥ID
  2. 交换机对比BPDU报文的的root ID,也相当于对比bridge ID
  3. 选举出根桥以后,根桥每两秒发送一次BPDU
  4. 每进过一个设备都会将BPDU中的桥ID替换成自己的桥ID,root ID不变,继续转发。用于cost选择不出根端口时,作为对比值,选举根端口
  5. 如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID字段,宣告新的根桥。不会像OSPF一样选取出来就不会改变了。
  • 每个交换机都有个桥ID,桥ID是优先级加上四十八位的MAC组成的,优先级可以配置,取值范围1-65535,默认值32768。
  • 优先级相同,比对MAC地址,都是越小越优先
  • 生存时间默认30秒
  • 发送BPDU的时间默认10秒
  • 每个BPDU报文每经过一个交换机,Message Age都加1
  • 如果Message Age大于Max Age,非根桥会丢弃改配置BPDU

选举根端口

STA算法

链路速度 开销
10Gbit/s 2
1Gbit/s 4
100Mbit/s 19
10Mbit/s 100

根端口选举(按照顺序)

  1. 到根桥的最低路径成本
  2. 最低的发送者网桥ID(BID Bridge ID)
  3. 最低的发送者端口ID(PID Port ID)
  • 根路径开销就是该端口到根所有路径的总和开销
ID 说明 默认值 取值范围
BID 优先级+48位MAC地址 32768(4096的倍数) 1-65535
PID 端口优先级+端口号 128(必须为16的倍数) 0-248

根选举开销选举不出来,四方形的拓扑图就容易出现这种情况,转发BPDU时替换的桥ID的作用就体现出来了。

根选举开销和桥ID都选举不出来的时候,就考虑其中的PID,比如交换机两根线相连,f0/1端口=128.1 fa0/2端口=128.2,端口优先级默认128.

选举指定端口

  • 两个端口对比bridge id,就可以了

  • 根桥所有端口都是指定端口

  • 根端口的对端都是指定端口

  • 指定端口是发送BPDU报文,根端口是接受BPDU报文

  • 什么都没选上的接口就是阻塞端口

端口角色

  • 根桥(RP)
  • 指定根接口(DP)
  • 指定端口(AP)

端口状态转换

端口状态 说明
Forwarding 转发状态:既能转发流量也可以转发BPDU报文
Learning 学习状态:可以学习mac地址,不能转发数据,等待15s
Listening 侦听状态:可以接受和转发BPDU报文,不能转发用户流量,维持15s,确认端口角色
Blocking 阻塞状态:只能接受BPDU报文,不能转发BPDU报文,也不能转发流量
Disbled 禁用状态:什么都不干

STP拓扑变化 故障

直连链路故障

故障交换机会立刻检测到自身的故障切换到阻塞端口

  • 因为要进过listening和learning状态每个状态都有15秒定时器
  • 所以会在30秒后恢复到转发状态

非直连链路故障

  • 非直连链路故障后,预备接口转发状态大约需要50秒
  1. 一个BPDU超时20秒,相当于发送10个BPDU报文时间
  2. 没有回应,就改变阻塞端口状态,经过listening和learning状态30s,直到forwarding状态
  3. 故障交换机根端口如果还健在就向上发送TCNBPDU
  4. 上级交换机回复一个普通BPDU确认收到,继续在向上,直到根桥,在超时时立即发送报文和MAC老化时间同时进行
  5. 根收到以后发送只一个配置BPDU,在这个BPDU中会有一个TC位,TC拓扑变更
  6. 收到这个BPDU报文的交换机立刻将MAC地址老化时间从300s缩短到15s(华为设置直接0秒,反正都有30s的状态转换)
  7. 泛洪学习MAC地址

根桥故障

非根桥会稳定的收到来自根桥的BPDU报文,如果根桥故障不发,下游收不到,等到定时器,BPDU失效,非根交换机又会选举根桥,导致50秒的恢复时间,等待时间等于message+两倍的fwdDelay的收敛时间

STP的基本配置

默认开启的STP,但是只是MSTP,需要将模式改为stp

stp mode stp

配置交换机优先级

stp priority 4096

配置路径开销
有三种路径开销模式

  • IEEE 802.1D-1998
  • IEEE 802.1T (缺省值)
  • Legacy
//进入端口
int 端口
//改变开销
stp cost 2000

验证stp

display stp

本章总结

  • 根桥产生故障后,其他交换机被选举为根桥。那么原来的交换机根桥恢复正常以后,网络又会发生什么变化

会重新选举

  • 端口开销和根根路径开销的区别是什么?

端口开销:交换机端口开销

根路径开销:到根交换机的总开销

生成树协议 STP(Spanning Tree Protocol)相关推荐

  1. stp:spanning tree protocol 生成树基本原理

    作用:通过阻塞特定的接口实现冗余无环的网络. 注意:华为交换机默认开机就执行stp 协议. [ ]undo stp enable 关闭stp TTL:生存周期 三层防环 每过一个三层设备该数值会减1 ...

  2. 3.10、以太网交换机的生成树协议 STP

    1.如何提高以太网的可靠性? 若交换机 A 与交换机 B 之间的链路故障 若交换机 A 与交换机 B 和 交换机 C 之间的链路都出现故障 则原来的以太网,变成了三个独立的较小的以太网,它们之间无法通 ...

  3. 计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置

    目录 1.STP概念 1.1  STP选举过程 1.1.1 根桥和根端口的选举 1.1.2 端口角色的选举 2.STP端口状态解释及转换 2.1 STP的五种端口状态 2.2 STP过程中的两种常见问 ...

  4. 1.2生成树协议STP

    在一个网络项目中,不同的场景客户对网络有不同的要求.当我们需要一个网络变得可靠,减少故障影响的一个重要的方法就是"冗余".当网络出现单点故障时,冗余设备可以替代主设备的数据传输工作 ...

  5. 计算机网络实验生成树协议,实验4—生成树协议STP

    计算机网络实验4 工具版本:Cisco Packet Tracer 7 实验环境:Windows10 STP:Spanning Tree Protocol 为什么要有生成树协议(spanning-tr ...

  6. 生成树协议STP、RSTP和MSTP原理的理解

    在组网中,很可能会出现环路或者称冗余链路,为避免形成广播风暴,需要一种方法来避免形成环路,并且在主链路故障中断时候,可以将冗余链路自动切换为转发状态,以恢复网络的连通性.生成树协议(STP.RSTP. ...

  7. 生成树协议 — STP

    4.1.1 实验目的 (1)理解生成树协议STP的用途 (2)理解生成树协议STP的工作过程 (3)掌握根桥.根端口.指定端口的选举规则 (4)掌握生成树协议STP中端口角色的变化 (5)掌握基本生成 ...

  8. 生成树协议 STP RSTP PVST PVST+ 学习记录

    生成树协议 STP& RSTP& PVST& PVST+ 学习记录 记录大学时的生成树协议学习经过,当时参考了一些网络资料,出处已难寻,如有误,请不吝赐教 背景 STP的工作过 ...

  9. Spanning Tree Protocol介绍

    Spanning Tree Protocol(STP)主要是用在网桥上,用来避免网络回路,并制造冗余连接(也就是保证网络的可靠性). 这里只是一个大概的介绍,具体的还是要去看IEEE 的 802.1D ...

  10. 学习总结 --- 生成树协议STP

    VTP---第二层冗余功能 保证网络的可靠性 通过添加设备和电缆来实现备用网络路径,从而提升网络可用性.当有多条网络路径可用于数据传输时,即使一条路径失效,也不会影响网络上设备的连通性.        ...

最新文章

  1. Python最大堆排序实现方法
  2. @Bean 与@Component的区别
  3. macOS配置Apache服务器
  4. 5G 信令流程 — 5GC 的业务请求(Service Request)
  5. 一部分 数据 迁移_软件测试员12小时惊魂记:数据库迁移出大事故,如何测试?...
  6. SQLite 数据库注入总结
  7. Linux CentOS下配置SVN+SVN勾子
  8. 90%的程序员都写错的算法-二分查找万能模版
  9. 集成极光推送遇到的问题
  10. vs code gitee使用_实用为王!来看看Gitee上五款新鲜出炉的WebUI组件
  11. java 置顶_[置顶]java开发之基础篇2
  12. 酷酷实训计划及测试计划
  13. 银行产生的烂账是如何处理的?
  14. 编写一个求方程ax2 + bx + c = 0的根 的程序,用3个函数分别求当b2-4ac大于零、等于零、和小于零时的方程的根。要求从主函数输入a,b,c的值并输出结果。
  15. Stringbuffer的线程安全是怎么实现的
  16. Spring-Lifecycle接口
  17. Modbus调试软件使用教程
  18. SVO2系列之深度滤波DepthFilter
  19. MT6573添加新硬件模块驱动方法
  20. Linux FTP服务器虚拟用户登录

热门文章

  1. MQTT系列 | Retained消息和LWT和Keep Alive
  2. pyqt获得鼠标_PyQt5编程:鼠标事件
  3. 微信小程序发布版本之后自动更新功能
  4. 2015校园O2O商业模式解析——从物流切入
  5. 网页打开QQ链接,进行临时会话
  6. 2019小程序创业如何把握正确方向
  7. 计算机word文本段落位置互换,word中调换位置 用word怎么使两个段落互换位置
  8. td-agent windows 安装步骤
  9. 道场与世间修行的区别
  10. 2-1个人小程序注册