STP ---- 生成树协议
冗余 --- 线路冗余
设备冗余
网关冗余
UPS冗余
交换机组建环路产生的问题
1,广播风暴:广播帧在二层环路中形成顺时针转动和逆时针转动的两层
环路,无限循环,最终导致设备宕机,网络瘫痪。
2,MAC地址表的翻摆(MAC地址表的漂移)
3,多帧复制
生成树协议:在二层交换网络中,逻辑的阻塞部分接口,实现从根交换机到所有节点唯一的路径且为最佳路经。生成一个没有环路的拓扑。当最佳路径故障时,个别阻塞接口打开,形成备份链路。
STP ---- 标准的生成树协议 --- IEEE组织颁布的802.1D标准中 --- 最早的生成树 --- 公有协议
PVST,PVST+ --- 思科研发的生成树私有协议
RSTP --- 快速生成树协议 --- 802.1W
MSTP --- 多生成树协议 --- 802.1S
802.1D生成树 ---- 一个交换网络一棵树
BPDU --- STP的数据包 --- B --- 这里指网桥;PDU --- 数据协议单元 ---- 是一种跨层封装的数据帧,直接封装到二层。
STP中一共存在两种BPDU:配置BPDU,TCN BPDU
配置BPDU
协议版本ID --- 802.1D --- 0
802.1W --- 2
802.S --- 3
标志 --- 1个字节 -- 8位 ---- 在802.1D中仅使用最低位和最高位,中间六位没用。
根网桥ID --- 8个字节 --- 为根的交换机的BID即根网桥ID
网桥ID(BID)---- 8个字节 --- 为了区分交换网络中的交换机,每
个交换机需要设计一个ID进行标识
BID由两部分组成 --- 前两个字节:优先级
后六个字节:交换机的MAC地址
支持STP的交换机,必须拥有MAC地址,一般的二层交换机,只有一个SVI接口,则可以使用接口对应的MAC地址最为BID中的MAC地址;但是三层交换机,可能存在多个MAC地址,则将在所有MAC地址中选择数值最小的MAC地址作为BID中的MAC地址。
根路径开销 --- RPC --- 发送该BPDU的网桥设备到达根网桥的开销值。
接口ID --- PID --- 2字节 --- 由两部分组成:前4位:优先级。
后12位:接口的编号
以上四个参数是参与STP生成树角色选举的四个参数。
Max - hop --- 消息寿命的最大值 --- 20 ---- 当一个BPDU的消息寿命大于最大值时,我们将直接忽略这个BPDU,相当于给STP规定了一个工作半径。
转发延时 --- 在接口状态中切换停留时间,默认时间为15S。
TCN BPDU
仅包含三个参数 ---- 协议ID,协议版本ID,BPDU的类型
0
0 OX80
配置BPDU --- 只有根网桥可以发送,在交换网络初始状态,所有交换机
均定义本地为根网桥,进行BPDU的发送;之后,整个网络中所有设备均收
到其他设备的BPDU,之后,基于数据包中的参数进行对比,选举根网桥;
之后所有非根网桥不再发送配置BPDU,而是仅接受和转发根网桥发送的 BPDU;周期2S,max age 20s;
TCN BPDU
TCN BPDU --- 本地链路故障后,STP重新收敛,为了加快刷新全网所有交换机MAC地址表的记录,将向本地所有STP接口发送TCN BPDU。邻居交换机收到后,先回复TCA标记位置1的配置BPDU,用于可靠传输;之后,再逐级转发TCN BPDU到根网桥处,由根网桥回复TC标记位置1的配置BPDU来逐级回复到所有交换机;是所有交换机临时将MAC地址表的老化时间从300S修改为15秒(该值等同于转发延时时间)。用于加快失效MAC地址表的刷新
根网桥(RB)
根端口(RP)
指定端口(DP)
非指定端口(NDP)
1,根网桥的选择 --- 802.1D一个交换网络生成一棵树,一棵树有且仅有一个根
选举方法:比较配置BPDU中的BID = 优先级 + MAC地址
优先级:2个字节,理论取值范围为0 - 65535,但是真实取值范围为 0 - 61440,BID的初始默认值为32768,越小越优
优先级一共16位,但是只使用的前4位,所以,每一位代表 4096。在优先级进行修改的时候,只能按照4096的倍数来进行修改。
后面12位:扩展系统ID ---- 在802.1D和802.1W中均保留,只有在802.1S中启用(MSTP --- 多生成树)
先比较优先级,优先越小越好;如果优先级相同,则比较MAC地址,取MAC地址最小的为根网桥。
2,选举根端口 --- 在每台非根网桥上,有且仅有一个离根网桥最近的接口,用于接受根网桥发送的BPDU。
RPC
以上三种标准时华为设备支持的三种STP 开销值标准,华为设备默认使用的是802.1t标准。
[Huawei]stp pathcost-standard ?
dot1d-1998 IEEE 802.1D-1998
dot1t IEEE 802.1T
legacy Legacy
1,先比较接口收到的根网桥发送的BPDU时的RPC值
2,当接口的RPC值相同时,则会比较对端(上级)设备的BID,小的对应的接口为根端口。
3,若对端的BID也相同时,则比较对端的PID,选择PID较小的对应的端口作为根端口
PID ---- 接口ID ---- 2个字节 ---- 前4位:优先级
后12位:接口的编号
优先级:取值范围为0 - 240,默认值为128。每一位代表16。在优先级进行修改的时候,只能按照16的倍数来进行修改。
先比较优先级,优先级越小越优;如果优先级相同,则比较接口编号,接口编号也是越小越优
4,如果对端的PID也相同,则比较本地的PID,小的为根端口。
3,选举指定端口 --- 在每一条存在协议的链路上,有且仅有一个;用于
转发来自根网桥的BPDU
存在根端口的链路,根端口对端的端口一定是指定端口;
根网桥所有的接口一定是指定端口;
1,先比较接口出方向的开销值,开销值小的为指定端口。
2,如果开销值相同,则将比较本地的BID,小的交换机所对应的接口为指定端口;
3,如果本地的BID相同时,则比较PID,PID小的为指定端口;
4,如果本地的PID也相同,则直接将该接口堵塞。
剩下所有没有角色的端口为非指定端口,需要被阻塞。