生成树协议 STP(Spanning Tree Protocol)
生成树协议 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操作过程
- 每个广播域选择一个根桥
- 每个非根桥选择一个根端口和根桥相连
- 每个段选择一个指定端口
- 阻塞非指定端口
选举STP根桥
- 每一台交换机启动STP后,都认为自己是根桥。只有根桥才能发送BPDU报文,为选举出根桥以前的root ID都是自己的桥ID
- 交换机对比BPDU报文的的root ID,也相当于对比bridge ID
- 选举出根桥以后,根桥每两秒发送一次BPDU
- 每进过一个设备都会将BPDU中的桥ID替换成自己的桥ID,root ID不变,继续转发。用于cost选择不出根端口时,作为对比值,选举根端口
- 如果收到的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 |
根端口选举(按照顺序)
- 到根桥的最低路径成本
- 最低的发送者网桥ID(BID Bridge ID)
- 最低的发送者端口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秒
- 一个BPDU超时20秒,相当于发送10个BPDU报文时间
- 没有回应,就改变阻塞端口状态,经过listening和learning状态30s,直到forwarding状态
- 故障交换机根端口如果还健在就向上发送TCNBPDU
- 上级交换机回复一个普通BPDU确认收到,继续在向上,直到根桥,在超时时立即发送报文和MAC老化时间同时进行
- 根收到以后发送只一个配置BPDU,在这个BPDU中会有一个TC位,TC拓扑变更
- 收到这个BPDU报文的交换机立刻将MAC地址老化时间从300s缩短到15s(华为设置直接0秒,反正都有30s的状态转换)
- 泛洪学习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)相关推荐
- stp:spanning tree protocol 生成树基本原理
作用:通过阻塞特定的接口实现冗余无环的网络. 注意:华为交换机默认开机就执行stp 协议. [ ]undo stp enable 关闭stp TTL:生存周期 三层防环 每过一个三层设备该数值会减1 ...
- 3.10、以太网交换机的生成树协议 STP
1.如何提高以太网的可靠性? 若交换机 A 与交换机 B 之间的链路故障 若交换机 A 与交换机 B 和 交换机 C 之间的链路都出现故障 则原来的以太网,变成了三个独立的较小的以太网,它们之间无法通 ...
- 计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置
目录 1.STP概念 1.1 STP选举过程 1.1.1 根桥和根端口的选举 1.1.2 端口角色的选举 2.STP端口状态解释及转换 2.1 STP的五种端口状态 2.2 STP过程中的两种常见问 ...
- 1.2生成树协议STP
在一个网络项目中,不同的场景客户对网络有不同的要求.当我们需要一个网络变得可靠,减少故障影响的一个重要的方法就是"冗余".当网络出现单点故障时,冗余设备可以替代主设备的数据传输工作 ...
- 计算机网络实验生成树协议,实验4—生成树协议STP
计算机网络实验4 工具版本:Cisco Packet Tracer 7 实验环境:Windows10 STP:Spanning Tree Protocol 为什么要有生成树协议(spanning-tr ...
- 生成树协议STP、RSTP和MSTP原理的理解
在组网中,很可能会出现环路或者称冗余链路,为避免形成广播风暴,需要一种方法来避免形成环路,并且在主链路故障中断时候,可以将冗余链路自动切换为转发状态,以恢复网络的连通性.生成树协议(STP.RSTP. ...
- 生成树协议 — STP
4.1.1 实验目的 (1)理解生成树协议STP的用途 (2)理解生成树协议STP的工作过程 (3)掌握根桥.根端口.指定端口的选举规则 (4)掌握生成树协议STP中端口角色的变化 (5)掌握基本生成 ...
- 生成树协议 STP RSTP PVST PVST+ 学习记录
生成树协议 STP& RSTP& PVST& PVST+ 学习记录 记录大学时的生成树协议学习经过,当时参考了一些网络资料,出处已难寻,如有误,请不吝赐教 背景 STP的工作过 ...
- Spanning Tree Protocol介绍
Spanning Tree Protocol(STP)主要是用在网桥上,用来避免网络回路,并制造冗余连接(也就是保证网络的可靠性). 这里只是一个大概的介绍,具体的还是要去看IEEE 的 802.1D ...
- 学习总结 --- 生成树协议STP
VTP---第二层冗余功能 保证网络的可靠性 通过添加设备和电缆来实现备用网络路径,从而提升网络可用性.当有多条网络路径可用于数据传输时,即使一条路径失效,也不会影响网络上设备的连通性. ...
最新文章
- Python最大堆排序实现方法
- @Bean 与@Component的区别
- macOS配置Apache服务器
- 5G 信令流程 — 5GC 的业务请求(Service Request)
- 一部分 数据 迁移_软件测试员12小时惊魂记:数据库迁移出大事故,如何测试?...
- SQLite 数据库注入总结
- Linux CentOS下配置SVN+SVN勾子
- 90%的程序员都写错的算法-二分查找万能模版
- 集成极光推送遇到的问题
- vs code gitee使用_实用为王!来看看Gitee上五款新鲜出炉的WebUI组件
- java 置顶_[置顶]java开发之基础篇2
- 酷酷实训计划及测试计划
- 银行产生的烂账是如何处理的?
- 编写一个求方程ax2 + bx + c = 0的根 的程序,用3个函数分别求当b2-4ac大于零、等于零、和小于零时的方程的根。要求从主函数输入a,b,c的值并输出结果。
- Stringbuffer的线程安全是怎么实现的
- Spring-Lifecycle接口
- Modbus调试软件使用教程
- SVO2系列之深度滤波DepthFilter
- MT6573添加新硬件模块驱动方法
- Linux FTP服务器虚拟用户登录