STP 生成树协议

STP —- 生成树协议

冗余

  1. 线路备份
  2. 设备备份
  3. 网关备份
  4. UPS备份

交换机出现二层环路带来的问题:

  1. 广播风暴,广播帧在二层环路中将形成顺时针和逆时针转动的两层环路,无限循环,最终导致设备宕机,网络瘫痪。
  2. MAC地址表翻摆
  3. 多帧复制

STP —- 主要目的 —- 破除二层环路

在二层交换网络中,逻辑的阻塞部分接口,实现从根交换机到所有节点唯一的路径,且为最佳路径。生成了一个没有环路的拓扑。当最佳路径故障时,个别阻塞接口打开,形成备份路径。

STP —- 标准的STP —- 802.1D标准。IEEE组织颁布的标准,共有协议
PVST,PVST+ —- 思科私有STP生成树协议
RSTP —- 快速生成树 —- 802.1W标准
MSTP —- 多生成树协议 —- 802.1S标准

802.1D生成树协议
STP的数据包叫做BPDU。B —- 桥,指网桥;PUD —- 协议数据单元
BPDU —- 分为两种:一种叫配置BPDU,另一种叫做TCN BPDU。

配置BPDU
在这里插入图片描述
协议版本 —- 802.1D —- 0
—- 802.1W —- RSTP —- 2
—- 802.1S —- MSTP —- 3

标志 —- 在802.1D中8位标志只使用了最高位(TCA)和最低位(TC)。中间6位,在802.1D中保留,在802.1W和802.1S中使用。

根网桥ID:为根的交换机所具有的网桥ID。(802.1D协议在整个交换网络中将生成一颗生成树,即只有一个根网桥。)
网桥ID(BID):所有的交换都具有网桥ID来进行区分标识
BID —- 由两部分组成 —- 前2个字节:优先级
—- 后6个字节:为交换机的MAC地址

根网桥开销 —- RPC —- 表示转发BPDU的网桥距离根网桥的开销大小

接口ID —- 用来表示和区分发送该BPDU接口。
2字节 —- 两部分组成 —- 前4位:优先级
—- 后12位:接口编号

MAX—HOP —- 默认20
转发延迟 —- 指的是接口在状态切换时间。默认时间为15s。

TCN BPDU

仅具有配置BPDU中的前三个三参数
协议ID、协议版本、BPDU类型

配置BPDU
只有根网桥可以发送,在交换网络的初始状态,所有交换机认为被本地为根网桥,进行BPDU的发送,使得网络中所有交换机均接受到其他交换机的BPDU,之后将基于其中的数据参数进行对比,选举根网桥。之后,所有非根网桥不再发送配置BPDU,而不是仅接收和转发根网桥的BPDU;配置BPDU的发送周期为2S,MAX AGE 20S。

TCN BPDU
本地链路故障后,STP重新收敛为了快速收敛全网所有交换机的MAC地址表。将向所STP接口发送TCN BPDU。邻居交换机收到TCN后,先回复一个TCA标记位置1的配置BPDU,用于可靠传输消息;之后,将TCN BPDU逐级上报到根网桥处,由根网桥回复一个配置BPDU(将TC标记位置1),该BPDU将逐级转发至整个网络的所有交换机上,所以交换机收到TC标记位置1的PBDU后,将会把自己MAC地址表300S的老化时间临时修改为15S(和转发延时时间一样),用于加快失效MAC地址信息记录的刷新。
在这里插入图片描述

STP生成树选举

  1. 根网桥(RB)
  2. 根端口(RP)
  3. 指定端口(DP)
  4. 非指定端口(NDP)

选根网桥 —- 一颗树且只有一个根(802.1D整个交换网络只有一颗树)

选举方法:
比较BPDU中的BID=优先级 +MAC地址

优先级
(0-6553,默认值32768,优先级数值越低越优(实际取值范围:0-61440)(修改优先级必须按照4096的倍数来修改)

优先级 —- 2个字节 —- 实际优先级仅使用前4位,剩下12位为扩展系统ID(在802.1S中使用,用来代表VID)

先比较优先级,优先级越小越优,若优先级相同,则比较MAC地址,MAC地址越小越优。

根端口 —- 在每台非根交换机上,有且只有一个:离根最近的接口,用来接收来自根网桥的BPDU。

RPC
在这里插入图片描述

华为设备默认支持以上三种开销值计算标准,默认使用的是IEEE 802.1t标准。

  1. 先比较接口收到根网桥发出的BPDU的开销值。
  2. 比较该接口对端设备(上级设备)BID,BID小的设备所对应的端口为根端口
  3. 若对端BDI相同,则比较对端的PID
    PID:优先级+接口编号
    优先级占前4位,取值范围0-240,默认是128。(修改优先级必须按照16的倍数来修改)
    先比较优先级,优先级越小越优;如果优先级相同,则比较接口编号,接口编号越小越优。
  4. 若对端的PID也相同,则比较本地的PID,小的位根端口。

指定端口 —- 在每一条存在协议的链路上,有且仅有一个,用来转发来自根网桥的BPDU,不能阻塞。

(根据网桥所有接口一定是指定端口)

  1. 先比较接口发出BPDU时的COST值,小的为指定端口
  2. 若开销值相同,则比较本地BID,BID小的交换机上的接口为指定端口
  3. 若本地的BID相同,则比较接口PID,PID小的接口为指定端口
  4. 如果PID相同,则直接将该接口堵塞。

剩下没有分配角色的接口均为非指定端口,非指定端口需要进行阻塞。

STP接口的状态

在这里插入图片描述

  1. 禁用 —- 1. 接口物理关闭;2. 接口禁用生成树
  2. 阻塞 —- 接口激活之后进入该状态。20S时间内没有收到BPDU则进入下一个状态
  3. 侦听 —- 接口可以正常收发BPDU, 但是不能接收和转发业务数据 —- 15S
    (不允许转发业务数据是为了避免选举未完成时产生临时的环路)
    如果选举出的角色为非指定端口,则将直接退回到阻塞状态。只有根端口和指定端口在侦听状态结束后进入下一个状态。
  4. 学习 —- 可以侦听业务数据,但不会进行转发。
    学习阶段是为了尽可能的减少未知单播帧的泛洪,导致资源浪费。
  5. 转发 —- 可以正常接收和转发数据帧和BPDU。
    所以,802.1D生成树的收敛时间为:30S和50S
    首次收敛:50S

结构变化:

  1. 根网桥故障:50S
  2. 直连链路故障:30S
  3. 非直连发生故障:50S

802.1D生成树的配置

在这里插入图片描述

在这里插入图片描述
display stp —- 查看STP信息

display stp brief —- 查看stp接口角色和状态信息

stp priority 28672 —- 修改BID中优先级

在这里插入图片描述

stp root primary —- 将该网桥设置为根网桥,其实实质是将该网桥的优先级修改为0

stp root secondary —- 将该网桥设置为备份根网桥,其实实质是将该网桥的优先级改为4096.

802.1D的缺点:

  1. 收敛慢
  2. 链路利用率低

PVST —- 基于VLAN的生成树
PVST只是提供了链路利用率低的一个解决思路,但他本身也并不彻底,因为一个VLAN一棵树,如果整个网路中VLAN数量过大时,将导致BPDU泛洪的流量过大。

RSTP —- 快速生成树
主要解决的是802.1D生成树收敛速度慢的问题,但是依然是一个网络一颗树,并且可以向下兼容802.1D协议

改进点1:变更了端口角色
802.1D:根端口,指定端口,非指定端口
802.1W:根端口,指定端口,替代(Alternate)端口,备份(backup)端口

替代端口:用来替代根端口,相当于是根端口的备份
由于学到其他网桥发送的BPDU报文而阻塞的端口,他提供了从指定网桥到根的另一条路径。当根端口失效时,则最优的替代端口将立即成为根端口,并进入转发状态。

备份端口:相当于指定端口的备份。
由于学到自己发送的配置BPDU而阻塞的端口,他作为指定端口的备份,当指定端口失效时,将直接成为指定端口,并直接进入转发状态。

改进点2:修改了接口状态类型
802.1D:5种 —- 禁用,阻塞,侦听,学习,转发
802.1W:3种 —- DISCARDING(丢弃),学习,转发
丢弃 —- 不转发用户流量也不学习MAC地址
学习 —- 不转发用户流量,但是可以学习MAC地址
转发 —- 既可以转发用户流量,也可以学习MAC地址

改进点3:对配置BPDU里面的报文进行了修改
在这里插入图片描述
RST BPDU —- 就是RSTP协议使用的配置BPDU

P/A机制
RSTP的P/A机制主要来保证一个指定接口得以从丢弃状态快速进入转发状态,从而加速了生成树的收敛。

在P/A机制中,存在一个“同步状态”,实际上就是将其他接口全部进行堵塞,防止环路的产生。

改进点4: 对配置BPDU的处理

  1. 在拓扑收敛完成后:
    802.1D:只有根网桥每隔2s发送一个配置BPDU,其他非根网桥只有收敛到根网桥的BPDU后才会进行转发
    802.1W:拓扑稳定后,非根网桥将资助的每隔2s发送根的BPDU。
  2. 更短的BPDU超时时间
    802.1D:需要等待20S(MAX AGE)
    802.1W:仅需要等待三个周期 —- 6s —- 超时时间

改进点5: 快速收敛机制
3. 根端口和指定端口的快速切换 —- 利用了替代端口和备份端口这两个角色
4. 可以设置边缘接口 —- 指的是交换机设备连接终端的接口,因为连接终端设备不会出现环路,所以,我们可以手工将这些端口设置为边缘接口,边缘接口将直接进入转发状态。

在这里插入图片描述

注意:边缘接口可能会因为人为失误,接入到交换设备上,就有可能出现环路,所以,边缘接口存在保护机制,即当一个边缘接口收到了交换设备发送的BPDU时,该接口会立即将自己切换为一个普通接口。
3. P/A机制

改进点6: 拓扑变更机制优化

在这里插入图片描述
802.1S —- MSTP —- 多生成树协议

instance —- 实例 —- 就是一个或多个VLAN的集合
我们可以使用instance ID来区分不同的实例,一个实例创建一棵树。
instance ID —- 由12位2进制构成,0-4094
instance0默认存在,且所有LAN都默认属于instance0

MSTP中存在一个域(region)的概念 ,相当于OSPF中区域(area)的概念,我们可以将一个较大的交换网络划分为多个MST域,当然,如果网络规模较小,也可以划分到一个MST域当中

交换机处于同一个域的匹配条件

  1. 相同的域名(region)
  2. 相同的修订级别(revision)
  3. 相同的VLAN和instance的映射关系

在这里插入图片描述
需求:交换网络存在VLAN1 – VLAN10,要求,VLAN1 – VLAN5使用SW1为根创建生成树,VLAN6 – VLAN10以SW2为根创建生成树。

  1. 配置VLAN

  2. 启动MSTP
    在这里插入图片描述

  3. 配置MST
    在这里插入图片描述

  4. 修改优先级
    在这里插入图片描述

链路聚合 —- 应用在以太网中的技术
将N条物理链路聚合为一条逻辑链路。我们把逻辑链路称为聚合链路(erh-truck)将其中每一条物理链路称为成员链路。我们将聚合后得到的逻辑端口称为聚合端口(eth-trunk端口),聚合端口中的物理接口称为成员端口。

要求:

  1. 通道的对端必须是同一台设备
  2. 成员端口应该具有相同的速率,双工模式,相同的类型,相同的VLAN允许列表
  • 创建聚合接口
    在这里插入图片描述

  • 将物理接口划入聚合接口
    在这里插入图片描述
    配置聚合链路的双方设备必须配置相同的Eth-Trunk在进行端口聚合之前,所有接口配置只能在聚合接口中配,不能在物理接口上配
    在这里插入图片描述

VRRP —- 虚拟路由冗余

目前主要使用两个版本,一个VRRP V2 —- 主要应用在IPV4邻域
VRRP V3 —- 主要应用在IPV6邻域

VRRP存在一个组的概念,可以将需要协同的路由器放入同一个组,配置相同的VRID(8位二进制构成)(区分不同的组)。一个组中存在一个虚拟的网关路由器,这个网关需要配置一个虚拟IP地址(这个地址是需要指定的,而且必须和真实网关IP在同一个广播域),并且会产生一个虚拟的MAC地址 —- 0000 – 5e00 – 01XX(XX就是VRID)

一旦接口配置激活了VRRP,开始时,所有网关接口都将发送VRRP协议报文,进行主从选举。(先比较优先级(默认优先级为100,取值范围0-255)优先级大的为主,优先级相同则比较IP地址,IP地址大的为主)。选举结束,之后仅master周期性的发送vrrp协议报文(周期为1s)backup网关仅侦听,如果master3.6s未发协议报文,则重新选举。

VRRP默认开启抢占模式,抢占模式只看优先级
在这里插入图片描述

Published by

风君子

独自遨游何稽首 揭天掀地慰生平