用于在以太网中进行防环

以太网环路得影响:
1.可能会出现广播风暴
2.可能会出现MAC地址表震荡
3.主机可能收到重复的数据帧

STP消除环路的思路:通过阻塞网络中的部分链路,让交换机之间形成树状拓扑结构,从而消除网络中的环
路, 阻塞的链路会通过报文来检测网络的状态,如果检测到主链路失效,则被阻塞的
链路会重新变为转发状态

STP选举:(所有STP的选举,均是数值越小越优先)
1.在所有交换机中选举最优设备作为根桥。
根桥:是STP拓扑的根桥
优先BID最小的设备作为根桥。
BID:包含以下两个参数,桥ID,用于STP选举中判定交换机优劣的参数
1.桥优先级(默认值为32768,必须是4096的倍数,取值范围0-61440)
2.MAC

2.所有非根桥交换机选举根端口
根端口(RP):是非根桥交换机到达根桥的最优路径
根桥交换机没有根端口
1.优选到达根桥开销总和最小的路径
2.如果路径开销值相同,则优选上游设备BID较小的路径
3.优先上游设备PID较小的路径
PID:端口ID,端口优先级(0-240 默认值为128配置时必须时16的倍数)+端口编号
4.比较自身PID,PID较小的端口成为根端口

3.在每个网段内选举指定桥,指定桥在该网段内最优的端口称为指定端口

1.优先到达根桥路径开销最小的设备。
2.如果开销相同,则优选BID较小的设备为指定桥
3.如果指定桥在该网段内有多个端口,则PID较小的端口为指定端口

4.所有非根桥非指定端口被阻塞,阻塞的端口不会为用户转发数据使用。

BPDU:桥协议数据单元,STP用于选举的协议报文

配置BPDU:用于STP的计算,如果没有特殊说明,一般BPDU均指定配置BPDU

BPDU字段:
1.协议标识信息:在标准STP中置为0
2.协议版本标识信息:在标准STP中置为0
3.BPDU类型:配置BPDU置为0x00
TCN BPDU为0x80
4.FLAG:共8bit,但在标准STP中只用到其中2个bit
最高位TCA bit (用于拓扑改变确认)
最低位TC bit (用于拓扑改变)

5.RID:表示当前根桥设备的桥ID
6.RPC:根路径开销,表示该设备到达根桥的开销总和
7.BID:表示发出该BPDU设备的桥ID
8.PID:表示发除该BPDU的端口的信息
9.message age:用于BPDU的传递范围控制。当message=max age 时,BPDU不再向下传递
10.max age :可以用于限定BPDU的传递边界,并且Max表示BPDU存活的最大时间,默认为20秒
11.hello time : 表示BPDU发送间隔时间,默认值为2秒
12.forwarding delay:转发时间,默认值为15秒,用于STP的状态转变等待

STP中的开销计算:交换机从端口接收BPDU时,会将BPDU中的RPC和自身的端口开销进行累加,得到
自身到达根桥的开销值,RPC和发出BPDU接口的开销无关,RPC表示发出该BPDU
设备到达根桥的总开销

STP中的开销于链路带宽有关,带宽值越大开销值越小

show spanning-tree

spanning-tree cost 50 //调整接口开销值
spanning-tree mode rapid-pvst //修改STP模式 //显示RSTP
spanning-tree vlan 1-4094 priority 0 //设置vlan1到4094的桥优先级为0
桥优先级的值必须是4096的倍数

show spanning-tree root //查看根桥

TCN BPDU:拓扑改变通知 BPDU ,用于STP中拓扑改变通知

STP类型:

公有STP

CST:IEEE 802.1D(最早的生成树),时所有STP协议的计算标准,
RSTP:IEEE 802.1W ,在STP的基础上,增加快速收敛特性,可以实现更快的拓扑收敛
MSTP:IEEE 802.1S,可以在网络中实现多个实例的配置,将不同的VLAN划入相应的实例中,实现 基于实例计算生成树拓扑(不同的vlan,阻塞端口不一样)

思科私有STP
PVST+:每VLAN生成树,为每个VLAN单独计算STP拓扑,每份拓扑计算采用802.1d方式计算

RPVST+:快速每VLAN生成树,为每个VLAN单独计算STP拓扑,每份拓扑计算采用802.1W方式计算

思科交换机中只支持:MSTP、PVST+、RPVST+

—————————————————————————————————-
STP的状态:
disable:失效状态,表示该端口未开启,不能转发数据,不能收发BPDU,不会学习mac地址

blocking:阻塞状态,是阻塞端口的稳定状态,可以接收BPDU,但不会发送BPDU,不能学习MAC地址
不能为用户转发数据

listening:监听状态,是一个过渡状态,在该状态下用于确定端口的角色是DP还是RP,可以收发BPDU
不会学习MAC地址,不能为用户转发数据

learning:学习状态,是一个过渡状态,在该状态下提前构建MAC表项,防止接口出现大量未知单播泛
洪. 可以收发BPDU,可以学习MAC地址。不能为用户转发数据

forwarding :转发状态,是根端口和指定指定端口的最终状态,可以收发BPDU,可以学习MAC地址,
可以 为用户转发数据

image.png
1:端口初始化,并将计算STP
2:端口被禁用
3:端口角色被选为指定端口或根端口
4:端口角色被选为阻塞端口
5:forwarding delay计时器超时

STP:收敛时间30-50秒

RSTP:具有快速收敛特性,可以实现STP的快速收敛

RSTP的改进:

1.端口角色的改变:

AP(替代端口):是根端口的备份路径
AP端口是由于收到了其他交换机发来的更优的BPDU而阻塞的端口

BP(备份端口):是指定端口的备份路径
BP端口是由于收到了自身交换机发来的更优BPDU而阻塞的端口

根端口的快速切换机制:
如果一个AP端口转变RP时,再RSTP中可以立刻进入转发状态,无需等待两次转发延迟

2.PSTP精简了STP的状态,将5种状态变为3种

discarding < disable、blocking、listening
丢弃状态,交换机不为用户转发数据,同时不学习MAC地址表项

↓ 等待一下转发延迟:15s

learning
学习状态,交换机会学习MAC地址信息,但不为用户转发数据

↓ 等待一下转发延迟:15s

forwarding
转发状态,交换机会学习MAC地址信息,并可以为用户转发数据

3.RSTP中充分利用了BPDU中的FLAG 8个字段:

8:TCA:拓扑改变确认
7:Agreement:同意位,用于PSTP中的P/A机制
6:forwarding:转发位,如果转发位,置位表示该端口可以转发用户数据
5:learning:学习位,如果学习位,置位表示当前端口支持MAC地址的学习
43:端口角色位:
如果端口角色置位11:表示当前端口为指定端口
10:表示当前端口为根端口
01:表示当前端口为AP或BP端口
2:Proposal:提议为,用于RSP中的P/A机制
1:TC:拓扑改变

拓扑改变:当STP计算完毕后,交换机中的MAC地址信息可能存在错误的路径, 需要刷新MAC地址表
此时通过STP的BPDU中的TC bit来实现MAC地址的刷新

STP的拓扑改变的过程:
1.发生拓扑改变的交换机会向根端口方向发送TCN BPDI,用于通知拓扑改变
2.上游交换机收到TCN后,会将配置BPDU中的TCA bit置位,用于确认TCN,同时也会向根端口
方向转发TCN BPDU。
3.最终TCN会被转发到根桥交换机,根桥收到TCN后,也会发送TCA进行确认,同时根桥会在后续的
BPDU中将TC bit置位(共20+15s)
4.收到TC的交换机,会从指定端口转发该BPDU,从而将TC泛洪到全网,并且进行MAC地址表
的清空
原本MAC地址的老化时间如果大于15s,则直接转变为15s,如果小于15s,则时间不变

4.RSTP对BPDU的处理发生了改变:

1.邻居设备的故障检查在STP中是通过BPDU的老化被动检查,在RSTP中每台设备会主动发送BPDU(STP设备
只能转发根桥的BPDU)如果3次BPDU没有收到,则认为对端设备失效

2.在STP中阻塞端口不会发送BPDU,而RSTP中,阻塞端口也可能发送BPDU,通过恢复最优的BPDU,通知下
行设备网络现状,实现快速收敛

5.RSTP新增了边缘端口机制:

边缘端口:当接入终端设备时,可以立即进入转发状态,无需等待2此转发延迟,在思科设备中称为
portfast端口

portfast配置:
1.直接接口下配置
spanning-tree porfast edge
2.在全局模式下配置
spanning-tree portfast edge default //将所有access接口配置位portfast
如果收到BPDU后,会放弃portfast特性

RSTP快速收敛:
1.根端口快速切换机制
2.邻居失效的检测(STP依靠计时器超时来检测,而RSTP可以主动检测)
3.边缘端口机制
4.P/A机制

P/A机制的目的:让交换机之间的根端口喝指定端口的链路能顾快速进入转发状态

P/A机制得工作过程:(P:proposal A:Agreement)
1.非转发状态得指定端口在发送BPDU时会将P置位,表示提议进入快速转发状态
2.下行设备会进行同步(将所有得指定端口状态变为阻塞状态,阻塞端口和边缘端口状态不变)
同步后会在根端口方向发送BPDU,并且将A置位,表示同意进入快速转发状态
3.收到A得指定端口,会立刻进入转发状态,从而实现根端口和指定端口链路快速转发
4.被同步得指定端口,也会向下发送P,如果下行设备可以回复A,则也可以通过P/A机制实现快速转发

P/A机制得条件:P/A机制只发生于交换机P2P link ,shared link不会出现P/A的协商

PSTP的状态改变:
1.RSTP拓扑改变条件发生变化
一个非边缘端口状态迁移到Forwarding时,称为RSTP的拓扑改变

2.发生拓扑改变的交换机会以自身为中心向外之间扩散TC,TC扩散的时间为2次hello time 的时间

3.TC从除了边缘端口以外的所有指定端口和根端口发送

4.收到TC的交换机会清除MAC地址信息(边缘端口不清除,接收TC的端口不清除)

————————————————————
STP的快速收敛以及保护机制:
1.uplinkfast:在STP中可以让阻塞端口变为根端口时,快说进入转发状态,无需等待转发延迟,效果类似于RST中
的根端口切换机制,在RPVST+中无需配置
spanning-tree uplinkfast

2.backboenfast:配置了backbonefast的交换机如果在阻塞端口收到次优BPDU,则会再根端口方向发送RLQ(根链路查询)RLQ最终会发往根桥,如果配置,则需要在所有交换机中启动该功能

3.portfast:以上有

4.BPDU Guard : BPDU保护,用于在终端接口防止用户私自接入交换机
当用户在接口配置了BPDU Guard后,如果检测到了BPDU报文,交换机会将会接口置位err-disable状态,从
而拒绝设备接入
spanning-tree portfast edge bpduguard default //将已经配置为portfast的端口开启BPDU Guard功能
全局模式下配置

接口配置BPDU GUARD ,收到BPDU后会进入err-lisable,=down 需要手工将接口重启
spanning-tree bpduguard enable
errdisable recovery:可以实现让进入err disable的接口自动恢复 可以配合BPDU GUARD

errdisable recovery cause bpduguard //选择因bpduguard而导致的errdisable
errdisable recovery interval 30 //默认为300s

5.BPDU filter: BPDU过滤,用于在交换网络的边界,防止其他的STP网络对当前网络的影响
接口下:spanning-tree bpdufilter enable
如果BPDU FILTER和BPDU GUARD同时配置,则BPDU FILTER优先级更高,BPDU GUARD不生效
全局模式下:spanning-tree portfast edge bpdufilter default
让所有portfast接口开启BPDU filter功能

6.root guard:根防护,可以在根桥或其他交换机的指定端口进行配置,防范用户在网络中接入更优的交换机来
抢占根桥,配置了ROOT GUARD的端口一旦收到更优的BPDU,则会阻塞该端口。
接口下:spanning-tree guard root

7.loop guard:环路保护,配置环路保护可以防范网络中因为单向链路故障所导致的环路。
配置了loop guard的AP端口,如果长时间没有收到BPDU,则不会转变为指定端口,但如果收到
BPDU次于自身缓存的BPDU,则可以转变为指定端口

UDLD:是一种思科私有的二层协议,可以用于检测网络中的链路是否存在单向链路故障,如果检测到单向链路
故障,则将接口置于err-disable状态

FlexLinks配置
interface f0/1 \进入主接口
switchport backup int f0/2 \设置一个备用接口

MST:多实例生成树

stp rstp:所有vlan共享同一个STP拓扑实例(单实例)

单实例生成树的缺点:
1.可能会导致部分vlan无法通信
2.可能会导致网络中出现二层的次优路径
3.无法实现负载均衡,所以带宽资源的利用率较低

MST域:如果一些交换机具备相同的参数(域名,修订版本号,实例映射关系),则这些交换机再同一个MST域中。

实验需求配置:
1.交换机之间互联的链路配置为trunk
2.创建VLAN 10 - 20
3.创建的相关VLAN 让所有奇数vlan 以SW1为根。sw2为备份根
spanning-tree mst 1 pri 4096
spanning-tree mst 2 pri 0
4.创建的相关VLAN 让所有奇数vlan 以SW2为根。sw1为备份根

CST:公共生成树,所有交换机共同计算的STP拓扑
IST:内部生成树,在每个MST域中的STP拓扑
IST的域根:在IST中最优交换机,称为IST的根域,再CST计算时,一个MST域会被看成一台交换机计算,该
“交换机”的BID使用根BID信息
域边端口:MST域之间互联的端口称为域边缘端口