生成树

前言
* 以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用几余链路。但是使用穴余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为解决交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)。
* 运行STP协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某个接口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降。
* RSTP(Rapid Spanning Tree Protocol)协议基于STP协议,对原有的STP协议进行了更加细致的修改和补充,实现了网络拓扑快速收敛。

为什么要有生成树?树是什么?

树就像是数据结构中的树一样。为了解决而成交换机网络的冗余性与环路。

技术背景

环路

局域网在规模逐渐扩大,引发的问题便是冗余性增加以及形成环路。

  • 冗余性增加就是如图,接入层交换机单链路上联,则存在单链路故障,也就是如果这根上联链路发生故障,交换机下联用户就断网了。另一个问题的单点故障,也就是交换机如果岩机,交换机下联用户也就
    断网了。

进而交换机互联过程中一般会使用冗余链路来实现备份但是会产生环路。

举个例子就是终端发送报文交给交换机,但是交换机负责转发,你给我我给他他再给你报文不停地传输,而终端设备还在产生新的报文,进而导致拥堵宕机等等。

人为环路

这一部分主要是人为原因,说的简单直白点就是我连我自己,就是最简单的环路。

二层环路问题

二层环路带来了两种问题:

  1. 广播风暴

    • 根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播顿,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个顿会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据顿。
    • 本例中,SW3收到了一个广播顿将其进行泛洪,SW1和SW2也会将此顿转发到除了接收此帧的其他所有端口,结果此帧又会被再次转发给SW3,这种循环会一直持续,于是便产生了广播风暴。交换机性能会因此急速下降,并会导致业务中断。
  2. MAC地址漂移

    • 交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的。
    • 本例中,SW3收到一个广播帧泛洪,SW1从GEO/0/1接口接收到广播帧后学习且泛洪,形成MAC地址5489-98EE-788A与GE0/0/1的映射;SW2收到广播顿后学习且泛洪,SW1再次从GE0/0/2收到源MAC地址为5489-98EE-788A的广播顿并进行学习,5489-98EE-788A会不断地在GE0/0/1与GE0/0/2接口之间来回切换,这被称为MAC地址漂移现象。

而生成树就是为了解决这两种问题

那么我们就要引入一个概念就是STP

  • 在以太网中,二层网络的环路会带来广播风暴,MAC地址表震荡,重复数据顿等问题,为解决交换网络中的环路问题,提出了STP。
  • STP通过构造一棵树来消除交换网络中的环路。
  • 运行STP算法,判断网络中存在环路的地方并阻断几余链路,将环路网络修剪成无环路的树型网络,从而避免了数据帧在环路网络中的增生和无穷循环。

初步认识生成树

生成树能够动态响应网络拓扑变化调整阻塞接口

如图,交换机上运行STP协议,会通过报文监控网络的拓扑结构,正常情况下是将SW3上的一个接口进行阻塞(Block),从而打破环路,当监控到SW1与SW3之间出现链路故障,则恢复阻塞端口进入转发状态。

二层及三层环路

  • 常见环路主要分为二层环路和三层环路。
    • 二层环路主要因为网络中部署了二层几余环境,或人为的误接线缆导致,可以通过借助特定的协议或机制实现二层防环;
    • 三层环路主要因为路由环路,可以通过动态路由协议防环和IP报文头部中的TTL字段用于防止报文被无止尽地转发。

生成树园区示意

生成树协议应用于园区网络的二层网络中,进行链路备份和消除环路。

STP

  • STP是一个用于局域网中消除环路的协议。
  • 运行该协议的设备通过彼此交互信息而发现网络中的环路,并对某些接口进行阻塞以消除环路。
  • STP在网络中运行后会持续监控网络的状态,当网络出现拓扑变更时,STP能够感知并且进行自动响应,从而使得网络状态适应新的拓扑结构,保证网络可靠性。
  • 由于局域网规模的不断增长,生成树协议已经成为了当前最重要的局域网协议之一。

STP

桥ID

桥ID

首先我们要说的就是桥ID(Bridge ID “BID”)桥ID就是桥优先级+MAC地址因为MAC地址唯一所以BID也是唯一的。桥ID优先级取值范围是0~65535,默认值为32768,可以修改但是修改值必须为4096的倍数。

选取标准:首先比较优先级大小,优先级小的首选其次比较MAC地址地址越小的首选

根桥

根桥

都知道树结构吧,学过数据结构的都会认知,树都有一个根,计算机网络拓扑中也存在根,当然不是根服务器,为了避免环路出现就必须阻塞部分接口,选取根桥,建立树状路径就是为了建立树结构。

  • 树形的网络结构必须有树根,于是STP引入了根桥(Root Bridge)概念。
  • 对于一个STP网络,根桥在全网中只有一个,它是整个网络的逻辑中心,但不一定是物理中心。根桥会根据网络拓扑的变化而动态变化。
  • 网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置BPDU,其他设备仅对该报文进行处理,传达拓扑变化记录,从而保证拓扑的稳定。丨

Cost(开销)

Cost

每一个STP接口都会存在一个对应的Cost,一般情况下Cost值是通过STP Cost计算得出,所以是默认就会存在的,当然也可以认为的去设置Cost。

Cost计算方法

RPC

RPC

RPC就是根路径开销,说白了就是当前交换机到某个根桥的“成本,路费”。

RPC使用的是累加,也就是该设备到根桥的路径的开销和

根桥到根桥的RPC为0.

PID

Port ID

PID就是端口ID,每一个端口都会对应一个编号就是PID

  • 运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍。缺省情况下,端口优先级是128。端口ID可以用来确定端口角色。

BPDU

BPDU

由于工作上的变故可能会断更一段时间。