什么是STP

    STP(Spanning Tree Protocol,生成树协议)就是把一个环形的结构改变成一个树形的结构,STP协议在逻辑上断开网络的环路,防止广播风暴的产生,而一旦正在用的线路出现故障,逻辑上被断开的线路又被连通,继续传输数据。

STP的作用

    1.保证网络的可靠性

    2.防止广播风暴的产生

STP工作原理(生成树算法及STP选举过程)

    生成树算法分为三个步骤:

    1.选择根网桥

    选择根网桥的依据是网桥ID,网桥ID是一个八字节的字段,前两个字节的十进制数称为网桥优先级,后两个字节是网桥的MAC地址。网桥优先级是用于衡量网桥在生成树算法中优先级的十进制,取值范围为0-65535,默认值是32768。网桥ID中的MAC地址是交换机的自身MAC地址。当比较某个STP参数的两个取值时,值小的优先级高。在选择根网桥的时候,比较的方法是看那台交换机的网桥ID的值最小,优先级小的被选为根网桥,在优先级相同的情况下,MAC地址小的为根网桥。

    2.选择根端口

    根端口存在于非根网桥上,需要在每个非根网桥上选择一个根端口。

    选择根端口的依据按照顺序依次如下:

    (1)到根网桥最低的根路径成本

    (2)直连的网桥ID最小

    (3)对端的端口ID最小

    根路径成本是两个网桥间的路径上所有链路的成本之和,也就是某个网桥到达根网桥的中间所有链路的路径成本之和,路径成本用来代表一条链路带宽的大小,一条链路的带宽越大,它传输的数据的成本就越低。

    4.选择指定端口

    选择指定端口的依据与根端口相同,按顺序有三个:

    (1)根路径成本较低

    (2)所在的交换机的网桥ID的值最小

    (3)自身的端口ID最小

    根网桥上的接口都是指定端口,因为根网桥上端口的根路径成本为0。

BPDU(Bridge Protocol Data UNit,桥协议数据单元)

    交换机之间通过BPDU来交换网桥ID、根路径成本等信息。交换机从端口发送一个BPDU帧,使用该端口本身的MAC地址作为源地址。BPDU帧利用了一个STP组播地址(01-80-c2-00-00-00)作为它的一个目的地址,使之能到达相邻的、并处于STP侦听状态的交换机。每隔两秒,便向所有的交换机端口发送一次BPDU报文,以便交换机或网桥能交换当前最新的拓扑信息,并迅速识别和检测其中的环路。

    1. BPDU的两种类型

    一种是配置BPDU,用于生成树计算。

    一种是拓扑变更通告BPDU,用于通告网络拓扑的变化。

    2.BPDU报文字段

    (1)根网桥ID:由一个二字节优先级和一个六字节网桥MAC地址组成。这个信息组合标明已经被选定为根网桥的设备的标识。

    (2)根路径成本:说明了这个BPDU从根网桥传输了多远,成本是多少。这个字段的值用来决定哪些端口将进行转发,哪些端口将被阻断。

    (3)发送网桥ID:这是发送该BPDU的网桥信息。由网桥的优先级和网桥MAC地址组成。

    (4)端口ID:端口ID是由一个字节的端口优先级和一个字节的端口编号组成。

    (5)计时器:计时器用于说明生成树用多长时间能完成它的每项功能。

    STP端口状态详细描述如下:

    (1)Disabled(禁用):由管理员设定或因网络故障使系统的端口处于Disabled状态。

    (2)Blocking(阻塞):阻塞状态的端口既不能接收或发送数据,也不能向它的地址表添加MAC地址。仅允许接收BPDU报文,以便能侦听到其他的邻接交换机的信息。选出指定端口后非指定端口也处于阻塞状态。

    (3)Listening(侦听):在Listening状态下,端口仍不能接收或发送数据帧,允许它接收或发送BPDU报文。

    (4)Learning(学习):该状态下端口可以发送和接收BPDU报文,可以学习新的MAC地址,并将该地址添加到交换机的地址表中。

    (5)Forwarding(转发):在Forwarding状态下,该端口既可以发送和接收数据帧,也可以收集MAC地址加入到它的地址表,还可以发送和接收BPDU报文。

3.生成树利用三种计时方法来确保一个网络正确地收敛。现将STP计时器及它们的默认值描述如下:

    (1)Hello时间:网桥发送配置BPDU报文之间的时间间隔,IEEE802.1d标准规定的默认访问时间为2s。

    (2)转发延迟:一个交换机端口在Listening和Learning状态所花费的时间间隔,默认值各为15s。

    (3)最大老化时间:交换机丢弃BPDU报文之前存储它的最大时间,最大老化时间的默认值为20s。

    典型的端口过渡如下:

    (1)从阻塞到侦听(20s)

    (2)从侦听到学习(15s)

    (3)从学习到转发(15s)

STP与VLAN的关系

   VLAN与生成树之间的关系主要有以下几种:

    (1)IEEE的通用生成树(CST)

    (2)Cisco的每VLAN生成树(PVST)

    (3)Cisco的能够兼容CST的PVST(PVST+)

    (4)IEEE的MST(Multiple Spanning Tree,多生成树)

PVST+的配置

    除了配置网络中比较稳定的交换机为根网桥外,PVST+的配置主要还有以下方面:

    (1)利用PVST+实现网络负载分担

    (2)配置速端口(PostFast),使连接终端的短裤快速进入转发状态

    PVST+的配置命令

    (1)启用生成树命令如下:

    Switch(config)#spanning-tree vlan vlan-list

    (2)指定根网桥

    由于MAC地址不可更改,所以要指定VLAN的优先级,可以使用下面命令更改优先级:

    Switch(config)#spanning-tree vlan vlan-list priority Bridge-priority

    还可以使用命令指定交换机为根网桥,如配置为primary,则交换机的优先级变成24576,配置为secondary,优先级变成为28672。配置命令如下:

    Switch(config)#spanning-tree vlan vlan-list root {primary | secondary}

    (3)修改端口成本命令如下:

    Switch(config-if)#spanning-tree vlan vlan-list cost cost

    (4)修改端口优先级命令如下:

    Switch(config-if)#spanning-tree vlan vlan-list port-priority priority

    (5)配置速端口命令如下:

    Switch(config-if)#spanning-tree portfast

    (6)查看生成树的配置命令如下:

    Switch#show spanning-tree

    (7)查看某个VLAN的生成树详细信息命令如下:

    Switch#show spanning-tree vlan vlan-id detail