STP
背景
传统拓扑环境,设备与设备之间只存在单条链路进行连接,就会产生单点故障的问题,为了解决单点故障问题,进行冗余环境的部署,但是冗余环境又会产生很多问题,造成环路,环路中又存在其他的问题:广播风暴、帧的多个副本、MAC地址表不稳定等
STP作用
STP:生成树协议,解决环路存在问题
在网络中部署生成树后,交换机之间会进行生成树协议报文的交互并进行无环拓扑计算,最终将网络中某些接口进行阻塞,从而打破环路
STP工作于二层交换机
BPDU
STP交换机之间会交互BPDU报文用于STP计算
BPDU分为:配置BPDU、TCN BPDU
配置BPDU:STP进行拓扑计算的关键,环境刚开始/稳定后触发
环境刚开始:所有设备都会发送配置BPDU
环境稳定后:只有根桥设备会发送配置的BPDU
TCN BPDU:只在网络拓扑发生变更时才触发
桥ID:优先级+MAC地址,优先级越小越优 (默认为32768)
根桥:唯一、选举
选举条件:桥ID小的成为根桥,比优先级->比MAC地址
在STP中以根桥为中心进行STP拓扑计算,最终计算出无环的拓扑(阻塞哪个)
根端口(RP):在每台非根桥交换机上进行选举的,只有一个(与根桥直接相连的接口)
选举条件:到达根桥的开销最小->比较设备的桥ID->比较端口ID(端口优先级(默认为128)+端口号,越小越优)
指定端口(DP):在每条链路上进行选举的(根桥上所有 都是指定端口)
选举条件:到达根桥的开销最小->比较设备的桥ID->比较端口ID(端口优先级(默认为128)+端口号,越小越优)
*阻塞端口:
cost(开销):
大小 | 开销 |
---|---|
100M | 19 |
1000M | 4 |
10G | 2 |
40G | 1 |
STP接口状态
状态名称 | 状态描述 | 常见状态 |
---|---|---|
禁用(Disable) | 该接口不能收发BPDU,也不能收发业务数据帧,例如接口为down | 接口关闭或未启用STP |
阻塞(Blocking) | 该接口被STP阻塞。处于阻塞状态的接口不能发送BPDU,但是会持续侦听BPDU,而且不能收发业务数据帧,也不会进行MAC地址学习 | 阻塞接口所处状态 |
侦听(Listening) | 当接口处于该状态时,标明STP初步认定该接口为根接口或指定接口,但接口依然处于STP计算的过程中,此时接口可以收发BPDU,但是不能收发业务数据帧,也不会进行MAC地址学习 | 阻塞下一个状态 |
学习(Learning) | 当接口处于该状态时,会侦听业务数据帧(但是不能转发),并且在收到业务数据帧后进行MAC地址学习 | 侦听下一个状态 |
转发(Forwarding) | 处于该状态的接口可以正常地收发业务数据帧,也会进行BPDU处理。接口的 | 根端口、指定端口的状态 |
接口选举
- 根桥:优先级>MAC
- 根端口:开销>桥ID(优先级+MAC)>最小端口号
- 指定端口:开销>桥ID
- 阻塞端口:剩下的端口
快速端口(portfast)/边缘端口
1s进入转发状态,一般用于连接终端设备的接口
全局下启用portfast默认会把access接口都置为portfast
思科配置
接口下启用portfast |
---|
int e0/1 |
spanning-tree port |
全局启用portfast |
---|
spanning-tree portfast edge default |
华为配置
接口下启用/关闭边缘端口 |
---|
int g0/0/1 |
stp edged-port enable/disable |
全局启用边缘端口 |
---|
stp edged-port default |
PVST/VBST
生成树拓展协议,实现一个vlan一颗生成树
思科配置 | |
---|---|
spanning-tree mode pvst | 开启PVST(默认开启) |
spanning-tree vlan 10 root primary/secondary | 修改vlan10的主/次根桥为本台设备 |
spanning-tree vlan 10 priority 4096 | 修改优先级(必须是4096的倍数) |
show spanning-tree (vlan 10) | 查看所有生成树(vlan10)命令 |
华为配置 | |
---|---|
stp mode stp | 设置stp模式 |
stp enable | 开启stp |
stp priority 0 | 设置优先级 |
display stp brief | 查看stp |