STP(生成树协议)
STP(生成树协议)
STP出现的背景:
如果同学们仔细观察一棵树,会发现一颗树有 ,树根、树干、树杈、树枝、树叶,水分通过根,源源不断的送到主干,树杈然后到达叶子,这是因为树的物理结构是发散的,没有树干、树杈、树枝的物理交织,如果咋们的网络结构像一颗树一样自然不会发生环路,所有我们的STP就像树一样在二层网络,用一种逻辑的方法将物理的环路斩断。
为什么二层交换会产生物理环路:
交换机之间为了冗余,带宽提升,或者错误的连接难免的产生一个封闭的物理环路,而以太网的转发机制又决定了不能有物理环路,一有环路,那些发给所有主机的Broadcast就会肆无忌惮的在环路上永不停的绕圈,山无棱,天地合,乃敢与环路绝!这些Frame永远无法到达目的地。
version 0 为STP 2为RSTP
STP的基本概念:
-
BPDU(桥协议数据单元)
包含了自己桥ID,路径开销,和端口ID等。
01:80:C2:00:00:00 bpdu发送的组播MAC地址
-
一个根桥
树形的网络结构必须有树根,于是STP引入了根桥(Root Bridge)概念。
对于一个STP的网络,根桥在全网中只有一个,它是整个网络的逻辑中心,但不一定是物理中心
-
两种度量
(1)ID 又分为:BID(Bridge ID),和PID(Port ID)
- BID:桥ID
IEEE 802.1D标准中规定 BID由16位的桥优先级(32768)+桥MAC地址构成。BID桥优先级占据高16位,其余48位是MAC地址。
-
PID:端口ID
PID由两部分构成,高4位的优先级(128),低12位的端口号。
????:高位是从左右往右,低位相反
(2)路径开销
在一个STP网络中,某端口到根桥累计的路径开销
-
三要素选举
总体来说有三个要素:根桥、根端口(RP)、指定端口(DP)。
-
根桥RB(Root Bridge)
根桥就是网桥ID最小的桥,通过交互配置BPDU协议报文选举出最小的BID
-
根端口 RP(Root port)
去往根桥路径开销最小的端口,负责向根桥方向转发数据,根桥上没有根端口。
-
指定端口 DP(Designated Port)
根桥上所有的端口都是指定端口。
- 比较到根桥的COST值,小的成为DP
- 比较桥ID,小的成为DP
- 比较端口ID,小的成为DP
- 剩下的端口为AP为阻塞端口
-
四个比较原则
配置BPDU中携带的主要信息:
字段内容: 简要说明: 根桥ID 每个STP网络有且仅有一个根 累计根路径开销 转发配置BPDU 端口到根桥的距离 BID BPDU发送桥的ID PID 网桥发送BPDU的端口 ????说明:在STP计算过程中,都遵循数值越小越好 1.最小BID:用来选举根桥
2.最小路径开销:用来在非根桥上选举根端口
3.最小发送这BID:如果开销一样,桥ID小的获胜32768+MAC
4.最小PID:比较128+端口号,值小的成为DP,值大的成为AP
-
五种端口状态
端口状态 目的 说明 Disabled 端口不处理BPDU,不转发数据流量 端口状态为DOWN Listening 确定端口角色,选举出根桥,RP,DP 过度状态 Learning 接收流量,学习MAC地址表,但不转发 增加Learning状态防止临时环路 Fowarding 即转发用户流量也处理BPDU 只有RP和DP才能进入Forwarding Biocking 端口接收BPDU,不转发用户流量 阻塞端口最终状态
影响端口状态和端口收敛参数
-
Hello Time (2秒)
运行STP协议设备发送配置BPDU的时间间隔,用于检测链路是否故障。
-
Forward Delay(15秒)
设备状态迁移时间。当拓扑发生变化后,重新生成树计算,重新计算得到的时间无法立刻传遍整个网络,如果立即转发数据会造成临时环路,为此STP采用了状态迁移机制,新选出来的RP和DP要经过2倍Forward Delay 延时后才能进入转发状态。
????说明:
Listening进入到Learning需要15秒时间,Learning进入Fowarding时间需要15秒
-
Max Age(20秒)
端口BPDU报文老化时间,可在根桥上修改。
STP报文格式
前面介绍了 桥ID,路径开销,和端口ID等信息,这些都是通过BPDU协议报文传输
-
配置BPDU是一种心跳报文,只要端口能使能STP,则配置BPDU就会按照Hello Time定时器发送
配置BPDU在以下三种情况产生:
- 端口使能STP。
- 当RP接收到配置BPDU,跟端口会在设备向每个DP复制一份BPDU发出
- 当DP收到比自己差的BPDU时,会立刻向下游设备发送自己的BPDU
-
TCN BPDU是在设备检测网络拓扑发生变化时发出
拓扑变更:
当链路拓扑发生变化时,会从自己设备RP向上游发送TCN BPDU,上游非根桥交换回复 TCA置为确认BPDU ,同时向上继续传递TCN BPDU,根桥收到TCN BPDU后,向下游发送TC置为的配置BPDU,所有得到TC置为的BPDU后,会将自己MAC地址表300秒老化成15秒,重新学习MAC地址表
阻塞端口的开启,如果本地交换直连链路DOWN掉,交换机立刻开启阻塞端口将状态变为15s的listening,15s的learning,最后forwarding,如果是非直连链路down掉,阻塞接口需要等待20s的BPDI超时时间,所以阻塞端口再开启需要30-50s。
STP的不足之处
STP虽然能够解决环路,但是由于网络拓扑收敛慢,影响了客户质量,如果有新接入的主机会发送TCN BPDU导致所有的设备重新进行生成树计算