文章目录
 
 
思维导图
 

 
STP端口状态
 
| 状态名称 | 状态描述 | 状态转换 | 
|---|
| 禁用(Disablle) | 该接口不能收发BPDU,也不能收发业务数据帧 | 当接口物理开启且接口运行STP协议进入下一个状态 | 
| 阻塞(Blocking) | 该接口被STP阻塞,不能发送BPDU,但会持续监听BPDU ,而且不能收发业务数据帧,也不会进行MAC地址学习 | 交换网络初始处于该状态,等待20s(Max age)时间,如果没有收到BPDU则进入下一个状态 | 
| 侦听(Listening) | 当接口处于该状态,表明STP初步认为该接口为根接口或指定接口,但接口依然除以STP计算的过程中,此接口会发送BPDU,但不能收发业务数据帧,也不会进行MAC地址学习 | 侦听状态停留15s(转发延迟),该状态其实是角色选举的状态,15s后,只有根接口和指定接口可进入下一个状态,非指定接口退回到Blocking | 
| 学习(Learning) | 当接口处于该状态时,会侦听业务数据帧,但不能转发业务数据帧,并且在收到业务数据帧时会进行MAC地址学习 | 学习时间停留15s(转发延迟),15s后进入下一个状态 | 
| 转发(Forwarding) | 当接口处于该状态,可以正常地手打业务数据帧,也会进行BPDU的处理 | 收敛完成后,根端口和指定端口处于该状态 | 
 
STP收敛
 
- STP在收敛的过程中,接口会处于会经历多个状态,状态之间的转换多数是有计时器决定的,当跟接口个指定接口处于转发状态时才收敛完成
首次收敛
 
- 华为交换机默认开启STP,当启动接口后,处于阻塞状态,等待20s(Max age)进入下一个状态
- 所有交换机认为自己是根网桥,向所有接口发送BPDU,开始角色选举,选举时间为15s转发延迟)
- 角色选举完成后,非指定端口退回到阻塞状态,根端口和指定端口进入到学习状态15s(转发延迟)
- 当根端口和指定端口来到转发状态代表收敛完成,此时一共花费20+15+15=50s的时间
  
结构变化
 
根网桥故障
 
- 当根网桥发生故障后,其他交换机无法收到BPDU,由于BPDU存在最大寿命,20s(Max age)后,其他交换机缓存的BPDU失效,开始重新选举角色,重新收敛。共花费20+15+15=50s。
  
直连链路故障
 
- 当某个非根网桥的根端口故障或无法收到BPDU,但该交换机上存在非指定端口,依然可以收到BPDU,所以该交换机的所有接口会重新进入侦听状态、学习状态进行收敛,总共花费15+15=30s的时间
  
非直连链路故障
 
- 当某个非根网桥的根端口故障或无法收到BPUD,但该交换机上不存在非指定端口,无法从别处获得BPDU,此时该交换机首先会等待一个Max age时间后本地缓存的BPDU失效,然后认为自己是根网桥,向外发送BPDU,相邻交换机收到故障交换机的BPDU,由于该BPDU的的参数次于本地缓存的BPDU,所以故障交换机与相邻交换机相连的接口都会重新进入侦听、学习状态进行收敛,总共花费20+15+15=50s
  
ensp的STP配置
 
 
[sw1]stp mode ?  
  mstp  Multiple Spanning Tree Protocol (MSTP) mode
  rstp  Rapid Spanning Tree Protocol (RSTP) mode
  stp   Spanning Tree Protocol (STP) mode
[sw1]stp enable 
 
 
[sw1]display stp 
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :32768.4c1f-cc3d-7aea
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :32768.4c1f-cc03-4d21 / 40000
CIST RegRoot/IRPC   :32768.4c1f-cc3d-7aea / 0
CIST RootPortId     :128.1
BPDU-Protection     :Disabled
TC or TCN received  :495
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 0h:11m:11s
Number of TC        :49
Last TC occurred    :GigabitEthernet0/0/1
.....
 
[sw1]display stp brief  
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE
   0    GigabitEthernet0/0/24       DESI  FORWARDING      NONE
 
 
- 修改优先级,由于STP收敛完成后,树的两端都要经过根网桥,如果根网桥的位置不佳,会导致一些问题,如下图,图1的根网桥为sw3,交换机访问另一个交换机最多经过两条链路,而图2中的根网桥为sw2,sw1访问sw4需要经过3条链路,所以工程中我们需要干涉根网桥的位置。
  
[sw1]stp priority 28672 
 
[sw1]stp root primary 
 
[sw2]stp root secondary 
 
[sw1-GigabitEthernet0/0/1]stp port priority ? 
INTEGER<0-240> Port priority, in steps of 16
 
[sw1-GigabitEthernet0/0/1]stp cost ? 
INTEGER<1-200000000> Port path cost
 
- STP的缺点:收敛速度慢,STP收敛是靠计时器,最短的计时器都需要15s;链路利用率低,形成树状拓扑后,阻塞的端口只有出现故障后才会使用,正常情况得不到利用,浪费了链路资源。
PVST
 
- PVST是由Cisco提出的私有生成树协议,为了解决STP链路利用率低的问题。解决方法为:一个VLAN一棵树,在BPDU中加入区分VLAN的标识,每个VLAN的树形结构都独立计算,使用所有的链路进行数据传输。如下图中,该交换网络由两个VLAN,VLAN1的根网桥为sw3,VLAN2的根网桥为sw4,假设sw1和sw2各有一个属于VLAN1和VLAN2的接口,sw1的VLAN1向访问sw2下的VLAN1,该流量路线为sw1-sw3-sw2,而sw1上的VLAN2访问sw2上的VLAN2,流量路线为sw1-sw4-sw2,这样就充分利用了链路资源。
  
- PVST只是提供了链路利用率低的一个思路,但他本身问题解决的也并不彻底,因为一个VLAN一颗树,那如果整个交换网络VLAN数量过多,则将导致树的数量过多。每棵树都需要存在2S一次的配置BPDU的泛洪,则将导致流量过大。
RSTP
 
- 快速生成树,最早在IEEE 802.1W-2001中提出,主要要解决的是802.1D收敛速度慢的问题,并没有解决链路利用率低的问题,可以向下兼容802.1D:当两台交换机分别运行STP和RSTP,它们交互时,运行RSTP的交换机就会向下兼容,使用STP模式
改进点
 
 
| 版本 | 端口角色 | 
|---|
| STP | 根端口、指定端口、非指定端口 | 
| RSTP | 根端口、指定端口、替代(Alternate)端口、备份(Backup)端口 | 
 
| RSTP端口角色 | 描述 | 
|---|
| 替代(Alternate) | 由于在选举指定端口时,本地属性不如对端交换机而变成阻塞端口,他提供了从指定桥到根网桥的另一条路径,所以可以作为根端口的备份端口。当一个根端口失效,则将最优的替代端口将成为根端口,直接进入转发状态。 | 
| 备份(Backup) | 替代端口是收到对端交换机的配置BPDU报文而阻塞的,而备份端口是由于学习到自己的配置BPDU而阻塞的,它作为指定端口的备份,如果指定端口失效,则备份端口将直接替代指定端口,进入转发状态。 | 

 
 
| 版本 | 接口状态 | 
|---|
| STP(802.1D) | 禁用、阻塞、侦听、学习、转发 | 
| RSTP(802.1S) | 丢弃(Discarding)状态、学习(Learning)状态、转发(Forwarding)状态 | 
 
| 接口状态 | 描述 | 
|---|
| 丢弃(Discarding) | 不转发用户流量,且不学习MAC地址,该状态实际替代了STP中的禁用、阻塞、侦听,这是因为这三个状态都会丢弃用户流量故名为丢弃状态 | 
| 学习(Learning) | 依然是STP中的学习状态,不转发用户流量,但是学习MAC地址 | 
| 转发(Forwading) | 依然是STP中的转发状态,既可以转发用户流量,也可以学习MAC地址 | 
- 对配置BPDU的报文内容进行了修改
  
- P/A机制:快速收敛的重大举措,通过该机制摆脱了计时器,不需要像STP选举角色时有固定的时间,即使提前选举完成,也需要等待计时器,RSTP可以实现完成任务立刻转换状态,而不需等待。

 
 
 
 
 
 
 
[sw1]inteface gigabitEthernet 0/0/1 
[sw1-GigabitEthernet0/0/1]stp edged-port enable 
[sw1-GigabitEthernet0/0/1]stp bpdu-filter enable 
 
 
 
 
MSTP
 
- MSTP:多生成树协议,虽然RSTP解决了STP收敛速度慢的问题,但链路使用率低的问题没有得到解决,Cisco提出的PVST虽然解决了链路利用率低的问题,但过多的配置BPDU流量大量占用了链路资源,影响正常业务数据流量的转发,所以IEEE在RSTP的基础上又借鉴了PVST提出了MSTP。
- MSTP为了解决链路利用率低的问题,他引入了一个新的概念:instance(实例),所谓实例,可以理解为一个或多个VLAN的集合。每个实例可以定义多个VLAN,MSTP为一个实例生成一棵树。
- 为了区分不同的instance,我们引入instance ID ,由12位二进制构成,他的取值范围为 0 - 4094。华为设备默认存在instance 0 ,并且,默认所有VLAN都属于instance 0。
- MSTP还引入了一个域(region)的概念,类似于OSPF中区域的概念,当一个交换网络过大时,可以将其分为多个MST 域。当然,如果网络规模较小,也可以划分为一个MST 域。
ensp配置
 
- 首先配置VLAN部分:创建VLAN,配置Trunk干道
- 更改生成树的模式
[sw1]stp mode mstp 
[sw1]stp enable 
 
 
[sw1]display stp region-configuration 
 
[sw1]stp region-configuration 
[sw1-mst-region]
[sw2-mst-region]region-name ? 
  STRING<1-32>  A maximum of 32 characters can be entered
[sw2-mst-region]revision-level ? 
  INTEGER<0-65535>  Revision level
[sw1-mst-region]instance 1 vlan 1 to 5 
[sw1-mst-region]active region-configuration 
 
 
[sw1]stp instance 1 root primary ---- 将该设备定义为instance 1 中的根网桥
 
[sw1]stp instance 2 root secondary 
 
 
[sw1]display stp instance 1 brief 
 MSTID  Port                        Role  STP State     Protection
   1    GigabitEthernet0/0/1        DESI  FORWARDING      NONE
   1    GigabitEthernet0/0/2        DESI  FORWARDING      NONE
   1    GigabitEthernet0/0/3        DESI  FORWARDING      NONE
[sw1]display stp instance 2 brief
 MSTID  Port                        Role  STP State     Protection
   2    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE
   2    GigabitEthernet0/0/2        DESI  FORWARDING      NONE
   2    GigabitEthernet0/0/3        DESI  FORWARDING      NONE