1、生成树协议的作用、三个生成树协议以及IEEE标准号
>生成树通过阻断冗余链路将一个有环路的桥接网络修剪成一个无环路的树型拓扑结构,这样既解决了环路问题,又能在某条活动(active)的链路断开时, 通过激活被阻断的冗余链路重新修剪拓扑结构以恢复网络的连通。
>生成树协议的分类,按照产生的时间先后顺序为STP、RSTP、MSTP
>三种生成树所遵循的IEEE标准分别为STP-IEEE 802.3d,RSTP-IEEE 802.3W,MSTP-IEEE 802.3S

2、生成树协议算法:如何选根,如何确定端口角色并堵塞端口
>基本工作原理:在网桥之间传递配置消息(BPDU),网桥利用收到的配置消息做以下工作:
从网络中的所有网桥中,选出一个作为根网桥(root)
计算本网桥到根网桥的最短路径
网桥选择一个根端口,该端口给出的路径是此网桥到根桥的最短路径
选择除根端口之外的转发端口(指定端口)
>比较rootID,rootID小的设备为根设备。
>确定端口角色:
计算到根桥的最短路径开销RootPathCost:如果自己是根桥,则最短路径开销为0,否则为它所收到的最优配置消息的RootPathCost与收到该配置消息的端口开销之和。
更新配置消息:更新RootID、RootPathCost等参数,交换机继续广播发送新配置信息。
选择根端口RootPort:如果自己是根桥,则根端口为0,否则根端口为收到最优配置消息的那个端口
选择指定端口:包括在生成树上处于转发状态的其他端口
从指定端口发送更优的配置消息。
注:STP整个过程小结:
开始时,每个交换机都自以为自己是root,开始发送BPDU
在交换机都收到其他交换机的BPDU完整信息的时候开始比较rootID, rootID = 优先级(priority)+MAC,小的为根
在非根设备上选一个去往根交换机最佳的端口作为根端口。(先比较RooTPathCost,然后比较邻接的rootID,最后比较对端端口号)
选定指定端口(designated ports):物理线路中去往根交换机最佳的端口。
剩余的既不是根端口也不是指定端口的端口就被堵塞。

3、BPDU四个关键参数,两种BPDU的作用
>BPDU四个关键参数是:
根网桥的Identifier(RootID)
从本网桥到根网桥的最小路径开销(RootPathCost)
发送该配置消息的网桥的Identifier
发送该配置消息的网桥的指定端口的Identifier
即,RootID, RootPathCost, BridgeID, PortID
>作用:1、传递网桥配置信息
             2、根交换机在Hello time内发送BPDU,进行保活。

4、在给定拓扑中控制根网桥的选举,在给定拓扑中确定端口角色及是否堵塞
>控制交换机选根常用的方法是改变 vlan的priority
配置方法为: Switch(config)#spanning-tree priority priority                       #改变交换机的优先级

配置方法为:Switch(config)#spanning-tree hello-time interval                 #改变交换机的hello-time
较长的Hello Time可以降低生成树计算的消耗;较短的Hello Time可以在丢包率较高的时候,增强生成树的健壮性。
但是,过长的Hello Time会导致链路故障的错误判断;过短的Hello Time导致频繁发送配置消息,增大交换机CPU和网络负担。

配置方法为:Switch(config)#spanning-tree max-age interval                   #改变交换机的max-age
过长的Max Age会导致链路故障不能被及时发现;
过短的Max Age可能会在拥塞的时候使交换机错误认为链路故障,造成频繁生成树计算。

配置方法为:Switch(config)#spanning-tree forward-time interval             #改变交换机的forward-time
过长的Forward Delay会导致生成树的收敛太慢;
过短的Forward Delay可能会在拓扑发生改变的时候,引入暂时的环路。

注:生成树中几个常用时间的解释:
Hello Time:网桥从指定端口以Hello Time为周期定时发送配置消息。
Message Age和Max Age
端口保存的配置消息有一个生存期Message Age字段,并按时间递增。每当收到一个生存期更小的配置消息,则更新自己的配置消息。当一段时间未收到任何配置消息,生存期达到Max Age时,网桥则认为该端口连接的链路发生故障,进行故障处理。
Forward Delay:配置消息传播到整个网络的最大时延。

5、RSTP相对STP的改进、配置
>改进:
改进一、新的端口角色的引入
备份端口(BackupPort):DesignatePort的备份口,当一个网桥有两个端口都连在一个LAN上,那么高优先级的端口为DesignatedPort,低优先级的端口为BackupPort。
第一种改进的效果:发现拓扑改变到恢复连通性的时间可达数豪秒,并且无需传递配置消息。

改进二、指定端口可以通过与相连的网桥进行一次握手,快速进入转发状态。
第二种改进的效果:网络连通性可以在交换两个配置消息的时间内恢复,即握手的延时。

改进三、网络边缘的端口,即直接与终端相连,而不是和其他网桥相连的端口可以直接进入转发状态,不需要任何等待时延。
第三种改进的效果:边缘端口的状态变化不会影响网络连通性,也不会造成环路,因此进入转发状态无延时。
>RSTP的端口角色:

 
根端口:根STP的根端口一样
指定端口:根STP的指定端口是一样
替代端口:是堵塞从其他网桥接收BPDU的端口。  #其实就是备份根端口
备份端口:是堵塞从端口所在网桥的共享lan网段的指定端口接收BPDU的端口。如果现有的指定端口发生故障,那么备份端口将成为指定端口。    #其实就是备份同一个lan中的指定端口
禁用端口:在生成树工作的过程中,禁用端口不但当任何角色。

6、MSTP相对STP的改进、配置,实例、域的概念及如何保证所有设备在一个域中
>改进:
MSTP是在传统的STP、RSTP 的基础上发展而来的新的生成树协议,本身就包含了RSTP的快速Forwarding 机制。
MSTP是基于实例来进行无环拓扑计算,既避免了环路的产生,也能让相同vlan 间的通讯不受影响。

>基本概念:
instance:一台交换机的一个或多个vlan 的集合
MST Region:有着相同instance 配置的交换机组成的域,这些交换机运行独立的生成树(IST,internal spanning-tree)
CST(common spanning tree):不同MST region 之间运行的生成树。
MST instance—vlan 的对应表:每台交换机都最多可以新增64 个instance,instance 0 是强制存在的,用户还可以按需要分配1-4094 个vlan 属于不同的instance(0-64),未分配的vlan 缺省就属于instance 0。
注:instance 0 所对应的生成树称为CIST(Common Instance Spanning Tree)

>MSTP BPDU里面包含MST 配置名称、 MST revision number、 MST instance—vlan 的对应表,如果在一个端口上收到的BPDU里面MST配置信息与本地的一致,那么就可以认为该端口上所连接的交换机与本交换机处于同一个MST Region,运行相同的IST。

>配置:
首先划分MST region,三台交换机上分别创建了vlan 10,20,其中vlan10属于instance 1,vlan 20属于instance 2
配置如下:
SwitchA(config)#spanning-tree mst configuration
SwitchA(config-mst)#instance 1 vlan 10
SwitchA(config-mst)#instance 2 vlan 20

7、bpudguard、portfast、bpdufilter的作用及配置
>实际应用:
开启生成树协议,防止接入层交换机上发生环路。
上联口起用BPDUFilter,以防止BPDU被发送到其他交换机。
下联口开启BPDUGuard,防止下联普通交换机发生环路。
下联口开启Portfast,设置连接PC的边缘端口,让PC能够快速接入。
 


>配置:

Ruijie(config-if)#spanning-tree portfast
Ruijie(config-if)#spanning-tree bpdufilter enable
Ruijie(config-if)#spanning-tree guard root (cisco设备)