802.1D生成树STP协议
STP用来解决什么问题
STP协议主要作用就是用来解决由于交换机间应为冗余链路而导致的环路,实现二层架构下线路的冗余。
STP如何解决环路问题
假设两台交换机间连接两根链路,STP则是通过阻塞其中一条非最优路径,从而让交换机正常工作
为什么会产生环路
假设两台交换机连接两根链路,而此时假设其中一台交换机向另外一个交换机发送了一条报文,另一台交换机收到报文后则会泛洪扩散该数据包,从自身除了接收接口以外的其他接口发送这时,这时由于接了多跟级联链路,交换机A从链路A发出的数据又从链路B给发了回来,这时发回来的数据包又会被交换机A从链路A发回给交换机B,此时的数据包就会来来回回永无止境的发送下去。这就是环路。环路严重的情况下还会造成广播风暴的风险。
什么是广播风暴
当环路产生后,由于永无止境的转发数据包,最终导致接口带宽被消耗殆尽
STP在交换环境下的作用
1.阻塞交换机间的非最优冗余链路,保证两个节点之间的端到端通信有且只有一条路径可走
2.实时监控交换机的状态以及交换机间链路状态
华为思科的STP标准
华为
通用生成树协议:CST
------一台交换机创建VLAN后,不管有多少个VLAN,生成树进程有且只有一个。这一个进程确定了交换机间唯一的一组转发路径。思科
基于VLAN的生成树协议:PvST
-----可以针对每一个VLAN创建一个生成树进程。不同VLAN间的通信链路是可以不一样的。相互没有任何关联。可以通过这种方式线路数据层面的负载均衡
STP的三步选举
1.根桥选举 | 根桥有且只有一台,是整个STP域的中心,以中心出发去计算域内其他交换机的最优路劲 |
---|---|
2.根端口选举 | 一台非根桥去往根桥的最优路径的接口,用于接收DP接口发送的BPDU |
3.指定端口选举 | 一台交换机的链路两端有且只有一个DP,用于始发BPDU或转发BPDU |
根桥选举
比较BID(bridge ID)
1.每台运行生成树的交换机都有一个BID(网桥标识符),并且在整个生成树域内BID必须是唯一的。
2.BID一共8个字段,前2byte是优先级,后6byte是MAC地址。前2byte的前4bit可以手动修改,默认值为32768,必须以4096的倍数修改,该数值越小越优,如果两台交换机的优先级一样,则比较MAC地址
根端口选举
每台非根桥的根端口有且只有一个
1.先比较非根桥收到根桥发送过来的BPDU中的RID(根桥标识符,小的为根桥),由于每台交换机收到的BPDU中的RID都是一样的,所以这一步无法比较出好坏。
2.比较去往根桥的直线距离,使用开销来描述直线距离:Cop(根路径代价),根桥始发的BPDU中的Cop的值默认为0,非根桥交换机收到BPDU后,会根据接收BPDU的接收接口的带宽去计算Cop值,然后累加到BPDU中,再由其他非根非边缘端口发走。
3.比较BID(转发者BID),每台交换机在转发BPDU之前都会吧自身BID写到转发者BID中去,通过转发者BID可以得知该BPDU是由谁转发的。通过RID可以得知BPDU的始发者是谁。
4.比较对端PID(port ID 端口ID)一台交换机运行生成树后自己产生的标识符,每个接口都有一个用来表示自身接口的标识符,就是port ID,一共两个字段,前1byte为优先级,后1byte为接口编号,小的为优
5.比较自身接收BPDU的接收接口的PID。
指定端口选举
一条链路根端口选举出来后,另一个接口一定是指定端口或者被阻塞端口
BPDU的发送规则
1.只能由根桥始发BPDU
2.非根桥设备只能接收BPDU与转发BPDU,不能始发BPDU
3.BPDU只能通过指定接口发走,再由下游交换机的根端口接收,再由下游交换机的指定端口发送给下游邻居的下游交换机
802.1D的三种接口角色
1.RP (根端口)
2.DP (指定接口)
3.NDP(阻塞接口)
BPDU发送周期
BPDU由根桥始发,并且每2秒向域内其他成员发送BPDU报文。可以通过修改Hello Time参数手动修改BPDU报文的发送时间。
BPDU报文内容
1 | protocol Identifier | 协议标识符 | 固定值:0x0000 |
---|---|---|---|
2 | Protocol Version Identifier | 协议版本 | 固定值:0x00 |
3 | BPDU Type | BPDU类型 | 802.1D的类型有两种,1.配置BPDU,2.TCN-BPDU |
4 | Flags | FA位 | 802.1D中Flags位只有两个,1.拓扑变更位,2.拓扑变更确认位 |
5 | Root Identifier | router ID | 如果是根桥,Route ID就是Briage ID,该值在交换过程中不会发生改变 |
6 | route path cost | 根路径代价 | 根桥始发该字段为0,每经过一台交换机的根端口后,根端口累加自身Cop |
7 | Bridge Identifier | 转发者ID | 始发BPDU的该字段与Route ID一致,每到一台交换机后,修改为交换机自身bridge ID。用于告诉下游设备该BPDU是有本设备转发的。 |
8 | port Identifier | 接口ID | 发送BPDU的接口的接口ID,一共两个字节,一个字节为优先级,一个字节为接口编号 |
9 | Message Age | 转发计数器 | 每转发一次BPDU,该值+1 |
10 | Max Age | 判断拓扑变更 | 如果20秒内没有收到根桥发送的BPDU,则认为拓扑发生了改变。则会丢弃该根桥信息,从而认为从来没有从该接口收到过BPDU,会认为该接口是一个DP,相当于重新收敛 |
11 | Hello Time | 描述根桥发送BPDU的时间 | 默认两秒一次 |
12 | Forward delay | 接口状态时间计时器 | 接口在listening,learning状态下所能停留的时间 |
STP的默认启用法则
1.每台交换机刚启用STP后,都认为自己就是根桥
2.运行STP的接口在还没有收到其他设备发送过来的BPDU时,接口角色默认是DP
802.1D STP的5种接口状态
1.Disabled | 接口还未启用SIP时的状态 |
---|---|
2.Blocking | NDP接口角色的工作状态,数据层面上无法让流量通过改接口发出与接收,只能从控制层面单方向的由DP到NDP发送BPDU报文,并且NDP接口收到BPDU后也不会向其他接口发送 |
3.listening | 默认情况下的接口状态,过度状态,不能收发任何数据,但能收发BPDU,该接口状态下无法学习COM表项,过程持续15S,如果15S后还认为自己是DP或者是RP,则进入到下一个状态。 |
4.learning | 该状态下与listening状态最大的区别则是可以学习COM表项。15S后进入下一个状态 |
5.forwarding | DP与RP的最终状态,该状态下可以收发数据,也可以学习COM表项 |
STP在交换机的全局参数:
参数 | 描述 |
---|---|
Designated root | 当前交换机所认可的根桥的Bridge ID |
Root Path Cost | 当认为其他交换机为根桥时,该字段描述自身去往根桥的端到端路径的开销 |
Root Port | 用于描述跟端口,谁是根端口 |
Bridge Identifier | 描述自身Bridge ID |
STP在接口下的参数:
参数 | 描述 |
---|---|
Path Cost | 接口本身度量值 ,只对根端口有效 |
Designated Root | 接口记录根桥的Bridge ID |
Designated Cost | 指定端口到根桥的端到端路劲开销 |
Designated Bridge | 指定交换机所属接口的Bridge ID |
Designated Port | 指定端口的Port ID |
STP拓扑变更的两个方式
1.直接变更
交换机间链路Down后,交换机通过其他链路还是能收到根桥发送的BPDU
2.间接变更
交换机间链路Down后,虽然还有别的链路能到达根桥,但是无法通过其他链路收到根桥发送的BPDU
802.1D拓扑发生改变后如何进行重收敛
当一个生成树域内的某台交换机发现拓扑发生改变后,会立即生成一条TCN-BPDU
TCN-BPDU发送的方向与正常BPDU的发送方向正好相反,有根端口发送,指定端口接收。直到发送给根桥
当上游设备收到自己发送的TCN-BPDU后,会回一条TCA置位的BPDU(拓扑改变确认),告诉下游设备自己已经成功收到了TCN-BPDU了。
当根桥收到了该TCN-BPDU后,会给下游邻居发送一条FA字段内TC置位的BPDU。告诉STP域内的成员拓扑发生改变了。需要在15秒内更新动态学习到COM表项。STP域内的其他成员收到这条BPDU后,会把原本300S更新COM表变成15S更新。
章节提问
802.1D生成树STP协议相关推荐
- 华为eNSP配置生成树STP协议
华为eNSP配置生成树STP协议 一.STP协议 二.STP算法的大原则是先选出不被阻塞的接口,剩下的接口都会被阻塞. (一)先选举一个根桥(根交换机) (二)每个非根交换机选举一个根端口 (三)每个 ...
- STP生成树协议:802.1D、PVST、PVST+、RSTP、MSTP;
索引 STP802.1D 端口角色: 端口状态: 802.1D收敛时间: STP生成树选举: 生成树配置: 802.1D生成树的缺点 PVST -- Cisco私有生成树协议 PVST+ :在PVST ...
- CCNP2交换:生成树:STP(802.1D)、PVST、PVST+、RSTP/RPVST、802.1W、MSTP
文章目录 CCNP2交换:生成树:STP(802.1D).PVST.PVST+.RSTP/RPVST.802.1W.MSTP 一.线路冗余导致的问题: 1.广播风暴 2.MAC地址表翻滚: 3.同一数 ...
- STP(生成树)协议概念
STP(生成树)协议 1. 冗余备份的组网 1.1 冗余备份的思想 2. 二层环路和三层环路概述 2.1 二层环路 2.2 三层环路 3. 二层环路引发的问题 4. STP技术的诞生和作用 5. ST ...
- STP协议(生成树协议)
1.STP协议概述 生成树协议(spanning tree protocol),是一种工作在OSI网络模型中第二层(数据链路层)的通信协议,是一种由交换机运行的,基本应用是防止交换机冗余链路产生的环路 ...
- Cisco思科交换机配置STP(生成树)协议
首先说说为什么需要STP协议.一个大型的网络中势必会用到许许多多的交换机,交换机与交换机之间连接起来构成一个复杂的网络,这样就形成了一个物理环路. 如图中的三台交换机: 那为什么形成了物理环路就会产生 ...
- 理解透彻--802.1d,802.1w,802.1s与802.1q
原文链接:http://blog.sina.com.cn/s/blog_9950926401018bj6.html 照片之类的就在原文链接里面看吧.这里就不复制啦. 算啦,我先简要总结一下: STP( ...
- LLDP协议、STP协议 笔记
参考: 数据链路层学习之LLDP 生成树协议 LLDP协议.STP协议 笔记 LLDP 提出背景: 随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加 ...
- 华为交换机 STP 协议
一.STP简介 以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路.但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚 ...
- rstp协议和stp协议对比_Stp/Rstp协议详解
STP协议 STP(IEEE 802.1D标准定义的)的主要任务是阻止在第2层网络(网桥或交换机)产生网络环路,它警惕的监视着网络中所有的链路,通过关闭任何冗余的接口来确保在网络中不会产生环路.STP ...
最新文章
- 安装 Docker 一
- 简单几何(线段相交+最短路) POJ 1556 The Doors
- PHP深复制与浅复制
- HDU - 3605 Escape(二分图多重匹配-网络流最大流+思维建边+状态压缩)
- 深度 | 数据湖分析算力隔离技术剖析
- python调用腾讯自然语言处理api
- UI设计素材模板|设计良好的教育网站:3个快捷技巧
- 企业传播的云计算时代还有多远?―21世纪广告―文章摘要―龙源期刊网
- appium+python 多设备并行执行脚本【转】
- 分表用到的一些函数/php mysql 前面补0
- 系统辨识matlab程序,系统辨识部分算法matlab程序
- 暗影精灵3 PLUS 安装黑苹果
- 赤裸裸的逆袭:小学生都用大数据分析苏轼了!
- 市场营销方式详尽客户调查报告:Inbound vs. Outbound
- 发布npm包 登录报错 E409 Conflict
- 与电影同行的日子(同步更新)
- A*搜索 --算法竞赛专题解析(9)
- python中matplotlib调整图例位置
- 如何监测微信群关键词并收集转发到指定的群
- OpenFoam-6 导入并编译一个新湍流模型
热门文章
- 不要再闲玩啦!博主手把手带你两个月入门自然语言处理,还不赶紧碗里来!...
- 惊叹 | 膜拜一下清华大学特等奖学金的学霸大佬们的简历! -- 我们没有理由不努力!...
- 【“达观杯”冠军分享】预训练模型彻底改变了NLP,但也不能忽略传统方法带来的提升...
- 阿里内部平台VS火山引擎后端开发,拿头比?
- 每日算法系列【LeetCode 1053】交换一次的先前排列
- Netty in action—Netty简介
- 白板推导系列Pytorch-线性判别分析(LDA)
- 智能运维(AIOps)时代开启,一文帮你快速了解其定义与发展现状
- 节后荐书:Python、PyQt5、Kotlin(评论送书)
- 5.7 tensorflow2实现主成分分析(PCA) ——python实战(上篇)