全称:Spanning Tree Protocol
直译:生成树协议
目录
[STP指令]
设置STP模式为802.1D:stp mode stp
查看交换机(端口\STP):display stp briefz\dis stp
查看端口STP设置:dis stp interface E\G X/X/X
修改交换机STP优先级Stp priority (int*4096)
设置路径代价模式:Stp pathcost-standard ?
设置链路开销值:stp cost (int)
[选举]
STP协议中最重要的部分,也是一切的开始
问:选举什么?
答:选举[根桥],[根端口],[指定端口],[阻塞端口]
问:怎么选举?
答:通过BID/PID/开销等
问:选举的意义?
答:消除换路,实现链路备份的目的
问:选举的范围?
答:看下文
[选举参数:开销RPC]
RPC:到根桥的开销
连接速率 | 新IEEE代价 | 旧IEEE代价 |
10 Gbps | 2 | 1 |
1 Gpds | 4 | 1 |
100 Mbps | 19 | 10 |
10 Mbps | 100 | 100 |
[选举参数:BID]
BID:STP优先级.自身交换机MAC地址
实例:32768.00-00-00-00-00-01
[选举参数:PID]
PID:端口优先级.自身端口号
实例:128.1
[选举:根桥]
选举范围:所有交换机
选举参数:交换机自身的BID
BID:STP优先级+自身MAC地址
[根桥选举顺序]
1:当交换机启动STP后,一开始都认为自己是根桥,随后互相发生BPDU
2:交换机互相发送BPDU,用于选举根桥
3:确定出优先级最小的交换机,则那个交换机选举为根桥
[选举:根端口]
全称:Root/Root Bridge
选举范围:所有非根交换机的端口
[选举顺序]
1:开销RPC
2:对端BID
3:对端PID
4:本端PID
[选举:指定端口]
全称:DP/Desitgnated Port
选举范围:每个网段
特殊选举:根桥的两个端口都是指定端口
[选举顺序]
1:开销RPC
2:自身BID
3:自身PID
[选举:阻塞端口]
全称:AP/Alternate Port|BP/Back Up Port
选举范围:所有非根/指定端口
[选举顺序]
1:所有符合标准的端口都是阻塞端口
[端口状态转换]
所有端口状态切换的过程
全称:Port Status conversion //来自有道
[状态]
Disabled | 禁用状态 | 无法接收和发出任何帧 |
Blocking | 阻塞状态 | 只能接收STP协议帧,不能发送STP协议帧,也不能转发用户数据帧 |
Listning | 侦听状态 | 可以接收并发送STP协议帧,但不能进行MAC地址学习,也不能转发用户数据帧 |
Learning | 学习状态 | 可以接收并发送STP协议帧,也可以进行MAC地址学习,但不能转发用户数据帧 |
Forwarding | 转发状态 | 可以接收并发送STP协议帧,也可以进行MAC学习,同时能够转发用户数据帧 |
Forward Delay | 转发时延计数器 | Listning,Learning状态,缺省为15秒超时 |
[BPDU报文]
BPDU分为两种:Config BPDU与TCN BPDU
[Config BPDU]
STP协议通过在交换机之间传递配置BPDU,选举根交换机
STP协议通过在交换机之间传递配置BPDU,选举(设置)交换机的端口的角色和状态
在初始化过程中,每个桥都主动发送配置BPDU
在网络拓扑稳定以后,只有桥主动发送配置BPDU,其他交换机在收到上游传来的BPDU后,才会发送自己的配置BPDU
PID | PVI | BPDU Type | BPDU Flags |
Root ID | RPC | Bridge | Port ID |
Message Age | Max Age | Hello Time | Fwd Delay |
PID:协议ID(默认全0)
PVI:协议版本ID(默认全0)
BPDU Type:BPDU类型(配置BPDU为全0)
BPDU Flags:TCA与TC
Root ID:根桥ID,由根桥的优先级和MAC地址组成,每个STP网络中有且仅有一个根
RPC:根路径开销,到根桥的最短路径开销
Bridge:指定桥ID,由指定桥的优先级和MAC地址组成
Port ID:指定端口ID,由指定端口的优先级和端口号组成
Message Age:BPDU存活次数,每经过一个交换机+1(默认最大为20s)
Max Age:通过接受BPDU来判断根桥有没有出问题,如果根桥出问题了,那就重新选举根桥(默认时限为20s),并且设定M essage Age上限
Hello Time:默认2s发一次BPDU,用于维护STP结构
Forwaed Delay:转换状态的延时(默认为15s)
[TCN BPDU]
注:TCA与TC是Config BPDU报文,放在TCN报文只是方便阅读
TCN BPDU:指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知
TCA BPDU:[Config BPDU]确认BPDU,用于上游交换机告诉下游交换机收到了TCN BPDU报文,并叫下游交换机别发BPDU了
TC BPDU:[Config BPDU]通知下游交换机老化MAC地址表的BPDU,用于防止MAC地址错误
拓扑变化:当一个端口从不转发变为转发就是拓扑变化
[故障解析]
[根桥故障]
出现情况:根桥出现故障,无法发送BPDU Hello
[解决过程]
1:SW B/C在20s内未接收到BPDU hello,触发BPDU Max Age老化,认为根桥出现故障
2:SW B与直连的SW C互相发送BPDU,并且重新选举根桥
3:选举完成,端口状态转换用了20(端口老化时间)+15(Listning记时)+15(Learning记时)=50s
[直连链路故障]
出现情况:直连的链路出现物理故障,但存在备用链路
[解决过程]
1:SW B的根端口出现问题
2:如果存在备用链路,则立刻将备用端口转换为根端口
3:15(Listning记时)+15(Learning记时)=30s
[非直连故障]
出现情况:无法接收到根桥的BPDU,但根桥依旧存在
[解决过程]
1:SW B在20s内未接收到BPDU hello,触发BPDU Max Age老化,认为根桥出现故障
2:SW B向SW C发生BPDU
3:SW C检查BPDU后发现SW A的BPDU比SW B的BPDU优先级高
4:SW C将SW B的BPDU置之不理,并将阻塞端口转换为指定端口
5:通过转换的指定端口将根桥的BPDU转发给SW B
6:SW B接受到了BPDU,检查后比自己优,停止发送BPDU,并且重新选举根端口
[拓扑改变导致MAC地址错误]
出现情况:当拓扑发送变化,但MAC地址表的默认老化时间是300s,出现MAC地址指向错误
[解决情况]
1:下游交换机SW C向上游交换机发送TCN BPDU报文
2:上游交换机收到TCN BPDU报文,随后根端口向上转发TCN BPDU,并向SW C发送TCA BPDU告诉它别发BPDU了
3:根桥收到了TCN BPDU,向下游发送TC BPDU
4:下游交换机收到了TC BPDU之后,会将MAC地址表老化时间从300s-->15s,加速老化