STP (spanning  tree  protocol) IEEE802.1D生成树协议     默认开启
为了避免单点失效(两网段间只有一个物理设备,坏了就是单点失效)→冗余网络(问题多帧复制、MAC地址表翻动、广播风暴)
为了解决冗余网络中的桥接环路问题产生了STP(逻辑Block一条路,关接口)
 
STP采用STAspanning  tree arithmetic)算法
STA工作原理:会在冗余链路中选择一个参考点(生成树的根),将选择到达要的单条路径,同时阻断其他冗余路径。一旦已选路径失效,将启用其他路径
 
STP 里选举都是越小越优
STPBPDU报文来维持STP的工作,
 
BPDU 桥接数据单元  ,直接封装在以太网帧中。默认2秒发一次,发到组播地址0180c2000000
                                                                                                Max  Age 最大存活时间(20s
BPDU功能:
                    1、选根桥
                    2、确定冗余路径位置
                    3block特定端口
                    4、通告拓扑变更
                    5、监控生成树状态
 
网络最初,所有的sw都认为自己是根桥,都发BPDU,比最小BID,选出根桥,此时根桥发BPDU,非根桥转发。
BPDU 类型 Type        00configuration 正常发的
                                           80TCN  topology  change notification  拓扑改变时发的
                          Flags        8B
                          Root ID 根桥ID→优先级+MAC
                    Cost to path  到根桥的cost
                 Forward delay  转发延迟计时器(默认15)监听和学习状态停留时间
                
根桥的选举:最小BID      (先比优先,再比MA,比小)     每个网络中只有一个根桥
 
BIDbridge ID)桥ID每台SW的唯一标识符。
            2bridge priority+6(mac)=8  bytes
          默认Priority327680x80000---65535. 2950以上的交换机会在这个值上再加上VLAN
         
查看STP信息--
Sw2#show spanning-tree
Sw3# show spanning-tree brief(低版本用)2900以下的交换机用这一命令
 
根端口root  port---------非根桥到根桥开销最小的端口(状态为forward
指定端口designate port-----根桥所有接口都为指定接口,(状态为forward
Nondesignate  port(阻塞端口)----不转发流量端口,(状态为blocking
 
非根桥上DP/NP选举办法
   比小胜出为指定,失败的为非指定  1path  cost   2、发送方BID    3、发送方 port ID
 
cost
10GBps    2
1GBps     4
100MBps       19
10MBps       100
端口IDPID
                 1priority+1(port  number)=2  Bytes        默认priority=128
       修改端口优先级      接口下 spanning-tree     (vlan  1) port-priority  16  (必须为16的倍数)
 
BPDUtimer
 
修改
spanning-tree vlan 1-10 hello-time 3   改发送BPDU的时间间隔(默认2s
spanning-tree vlan 1-10 forward-time 13   修改forward时间        (默认15s
spanning-tree vlan 1-10 max-age 33    修改最大存活时间               (默认20s)
 
接口状态
                  disable       手动shutdown
                  blocking      监听BPDU,不学mac,不转发帧                                        MAX  age  20秒,20秒没收到BPDU,切换状态
                  listening      监听BPDU,不学mac,不转发帧(选举Root/RP/DPDelay     15
                  learning       监听BPDU,学mac,不转发帧                                             Delay          15
                  forwarding   监听BPDU,学mac,转发帧                                                                (从blockforward30秒)          
 
STP增强特性
802.1D最初,网络中断,要MAX50秒才能恢复
 
CISCO加快收敛推出的私有特性:portfast/uplink fast/backbone fast
 
Port fast:
              block直接跳到forwarding
              1、接单独主机接口才能用(access
 命令   接口下spanning-tree  portfast 
                     禁用 spanning-tree  disable
           全局下spanning-tree portfast   default  所有接口都启用,一般在接入层交换机上启用,然后把连另交换机的口禁用
 
Uplink  fast
                   接入层sw上配置,检测汇聚层sw的链路故障加快STP收敛速度(接入层连两个汇聚层SW,连汇聚层的路就是UPlink
        全局命令,将影响sw上所有vlan
                          spanning-tree  uplink fast
     看那些接口成为备份   
                              show   spanning-tree  uplinkfast
Sw2(config)#spanning-tree uplinkfast max-update-rate 200
(每秒所发包的数目,默认值150
BackboneFast:(用于检测主干SW间的链路故障)节省20
                       ROOt丢失后,以自己发出次BPDU,收到这个BPDU后,会向使用代理路径发送RLQ BPDU,向ROOT进行查询
     
      建议Backbonefast用在所有SW
      命令:spanning-tree  backbonefast
                查看RLQ消息和次级BPDU
                       show  spanning-tree backbonefast
 
 
 
<优化STP
 
·BPDU防护
 对于设置了PortFast接口,却收到了BPDU,如果设置了BPDU防护,就能将此接口关闭,而不会进入生成树状态。且默认情况下是要手动才能恢复
Sw1(config)#spanning-tree portfast bpduguard (全局开启)
Sw1(config-if)#spanning-tree bpduguard enable (接口开启)
Sw1#show spanning-tree summary [totals]
 
Show errdisable recovery   显示可导致接口errdisable的选项
Sw1(config)#errdisable recovery cause bpduguard  设置300S(默认)后自动修复bpduguard所导致的errdisable
Sw1(config)#errdisable recovery interval 30   修改默认的修复时间