生成树协议(Spanning Tree Protocol),简称STP。

为什么要用生成树协议?

  在下图的交换网络中,若交换机间的链路发生故障,会导致主机间无法进行通信,我们称之为“单点故障”。

wKiom1nklLGBkCfQAAAz5MVyegs087.png

如何解决“单点故障”?

    增加冗余链路和冗余设备来解决。

    我们再增加一条链路解决了“单点故障”的问题,但是我们发现会产生数据转发环路。如下图所示:

wKioL1nkmt2Ac6mqAAB0PYbED_s758.png



数据转发环路带来的问题?

    产生环路的数据,会不断的在我们的网络中进行传输,从而消耗网络中的链路资源和设备资源。

如何解决数据环路问题?

    我们在交换机上运行STP。

STP的作用?

   在存在冗余链路的情况下,实现环路的防护。

如何实现?

   BPDU——桥接协议数据单元

STP分类?

  PVST(每个VLAN生成树协议)/RSTP(快速生成树协议)/MSTP(多生成树协议)

STP工作过程?

  1.确定交换机角色

        根交换机

        非根交换机

   如何确定交换机角色?

       原则:比较每个交换机的BID(桥ID),越小越好;

       桥ID组成:优先级+MAC。交换机的优先级默认是32768;MAC指的是交换机的主板MAC(基MAC)。

       查看命令:SW1#show version

  2.确定端口角色

        根端口-每个非交换机只有一个距离根交换机最近的端口,称之为根端口

        指定端口-每一个“冲突域”中都存在一个距离根交换机最近的口,称之为指定端口

        非指定端口-其他所有端口,都称为非指定端口

     如何表示“距离”?

         在STP中,通过cost表示一个路径的距离;对于某些链路,都有默认的cost值:

         10M—cost 100

         100M—cost 19

         1000M—cost 4

         10G—cost 2

    BPDU包含的关键字段?

        报文类型—标识是配置BPDU还是TCN BPDU

        根网桥ID(ROOT-ID)—表示根交换机是谁

        根路径成本(COST)—表示发送该BPDU的交换机到达根交换机的距离

        发送网桥ID(BID)—表示发送该BPDU的交换机的名字

        端口ID(PORT-ID)—表示发送方交换机是在哪个端口发送出来的;

                        组成:端口优先级+端口号

                              端口优先级默认值为128;

  3.确定端口状态

        disable—相当于shutdown,此时端口不能使用;

        listenin—侦听,该端口侦听的是BPDU,用来确定端口角色;

        learning—学习,该状态学习的是MAC,形成MAC地址表;

        forwarding—转发,即端口的最终转发状态;(根端口,指定端口)

        block—阻塞,此时的端口是不可以发送数据的;(非指定端口)