STP

原理概述

STP是用来避免数据链路层出现逻辑环路的协议,运行STP协议的设备通过交互信息发现环路,并通过阻塞特定端口,最终将网络结构修剪成无环路的树形结构。在网络出现故障的时候,STP能快速发现链路故障,并尽快找出另外一条路径进行数据传输。
交换机上运行的STP通过BPDU信息的交互,选举根交换机,然后每台非根交换机选择用来与根交换机通信的根端口,之后每个网段选择用来转发数据至根交换机的指定端口,最后剩余端口则被阻塞。

拓扑:

NA西游第二难:STP学习_第1张图片

基本配置

S1到S4都将默认的MSTP更改为STP

stp enable
stp mode stp

30秒后查看s1的生成树状态
查看详细状态

display stp

查看摘要信息

[s1]display stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               ROOT  FORWARDING      NONE
   0    Ethernet0/0/2               ALTE  DISCARDING      NONE
[s2]display stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               DESI  FORWARDING      NONE
   0    Ethernet0/0/2               DESI  FORWARDING      NONE
   0    Ethernet0/0/3               DESI  FORWARDING      NONE
[s3]display stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               DESI  FORWARDING      NONE
   0    Ethernet0/0/2               DESI  FORWARDING      NONE
   0    Ethernet0/0/3               ROOT  FORWARDING      NONE
   0    Ethernet0/0/10              DESI  FORWARDING      NONE
   0    Ethernet0/0/11              DESI  FORWARDING      NONE
[s4]display stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               ALTE  DISCARDING      NONE
   0    Ethernet0/0/2               ROOT  FORWARDING      NONE

由以上可知
S1的Ethernet0/0/1为根端口,转发状态;Ethernet0/0/2为替代端口,丢弃状态
S2的所有端口都是指定端口,转发状态;可以判断S2为根交换机
S3的Ethernet0/0/3为根端口,其余端口为指定端口;都是转发状态
S4的Ethernet0/0/2为根端口,转发状态;Ethernet0/0/1为替代端口,丢弃状态

查看s2根交换机的stp详细信息

[s2]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :32768.4c1f-cc29-7f53
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-cc29-7f53 / 0
CIST RegRoot/IRPC   :32768.4c1f-cc29-7f53 / 0
CIST RootPortId     :0.0
BPDU-Protection     :Disabled
TC or TCN received  :18
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 0h:4m:29s
Number of TC        :19
Last TC occurred    :Ethernet0/0/3

Ps:CIST Root/ERPC 与 CIST Bridge相同,说明s2为根交换机;32768.4c1f-cc29-7f53中32768为交换机默认的优先级,后面的为交换机MAC地址

STP运算过程

比较每台交换机的ID选举根交换机,交换机ID由交换机优先级和MAC地址组成
1、比较交换机优先级,数值最低的为根交换机
2、优先级一致,则比较MAC地址,数值最低的为根交换机。

手动配置根交换机

修改交换机优先级
设置根交换机优先级为0,备份根交换机优先级为4096

[s1]stp priority 0
[s2]stp priority 4096

或者

[s1]undo stp priority
[s1]stp root primary 
[s2]undo stp priority
[s2]stp root secondary 

查看s1s2的状态信息

[s1]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :0    .4c1f-cce4-0451
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cce4-0451 / 0
CIST RegRoot/IRPC   :0    .4c1f-cce4-0451 / 0
[s2]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :4096 .4c1f-cc29-7f53
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cce4-0451 / 200000
CIST RegRoot/IRPC   :4096 .4c1f-cc29-7f53 / 0

由以上可知
CIST Root/ERPC:根交换机s1优先级为0,mac为4c1f-cce4-0451
CIST RegRoot/IRPC:备份根交换机s2优先级为4096,mac为4c1f-cc29-7f53

非根交换机上选举根端口

1、每个端口到达根交换机的根路径开销,路径开销最小的端口为根端口
2、如果根路径开销值相同,则比较每个端口所在链路上行交换机ID值
3、如果上行交换机ID相同,则比较每个端口所在链路上行端口ID值

手动配置端口开销值
查看s4交换机根端口以及开销值

[s4]dis stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               ALTE  DISCARDING      NONE
   0    Ethernet0/0/2               ROOT  FORWARDING      NONE
[s4]dis stp
----[Port1(Ethernet0/0/1)][DISCARDING]----
 Port Protocol       :Enabled
 Port Role           :Alternate Port
 Port Priority       :128
 Port Cost(Dot1T )   :Config=auto / Active=200000
----[Port2(Ethernet0/0/2)][FORWARDING]----
 Port Protocol       :Enabled
 Port Role           :Root Port
 Port Priority       :128
 Port Cost(Dot1T )   :Config=auto / Active=200000

两个端口的active(实际使用的开销值)都为200000,设置根端口的开销值小于200000,即可

配置s4上根端口开销值

[s4]interface Eth0/0/1
[s4-Ethernet0/0/1]stp cost 2000

再次查看s4交换机根端口

[s4]dis stp
----[Port1(Ethernet0/0/1)][FORWARDING]----
 Port Protocol       :Enabled
 Port Role           :Root Port
 Port Priority       :128
 Port Cost(Dot1T )   :Config=2000 / Active=2000
----[Port2(Ethernet0/0/2)][DISCARDING]----
 Port Protocol       :Enabled
 Port Role           :Alternate Port
 Port Priority       :128
 Port Cost(Dot1T )   :Config=auto / Active=200000

目前根端口为Ethernet0/0/1口,开销值为2000

每个网段选举指定端口
1、比较两个端口发送与接收BPDU中的根路径开销,小的成为指定端口
2、如果相同,比较端口发送与接收BPDU中的网桥ID,小的成为指定端口
3、如果相同,比较网桥MAC地址,小的成为指定端口

Ps:修改端口开销值来选举指定端口,修改方法同选举根端口

配置STP定时器

普通的stp不能实现快速的拓扑收敛,但定时器通过配置合适的系统参数,可以使stp实现最快的拓扑收敛。
定时器有三种:
hello time定时器,BPDU多久发送一次hello,默认2秒
max age定时器,BPDU的最大老化时间,默认20秒
forword delay定时器,转发延迟时间;接口从Discarding状态,经过 过渡状态,最终到Forwording状态所用时间,默认15秒
交换机自动根据网络直径计算出hello time,max age和forword delay三个时间参数的最优值,默认网络直径为7

示例:
NA西游第二难:STP学习_第2张图片

配置STP定时器,并配置s1为根交换机,s2为备份根交换机

[s1]stp mode stp
[s1]stp root primary 
[s2]stp mode stp
[s2]stp root secondary 
[s3]stp mode stp
[s4]stp mode stp

查看各定时器默认值

[s1]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :0    .4c1f-cc9a-76a3
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20

Config Times:标识当前设备配置的计时器
Active Times:标识正在生效的计时器

在根交换机设置FwDly时间为2000cs,默认是1500cs,cs是百分之一秒

stp timerforward-delay 2000

一般不建议直接修改这三个计时器的数值,而是配置网络直径让交换机自行计算
在根交换机配置网络直径为3

stp bridge-diameter 3

再次查看计时器信息

display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :0    .4c1f-cc9a-76a3
Config Times        :Hello 2s MaxAge 12s FwDly 9s MaxHop 20
Active Times        :Hello 2s MaxAge 12s FwDly 9s MaxHop 20

RSTP

RSTP(快速生成树协议)基于STP协议,在STP协议的端口状态和端口角色进行了细致区分,使收敛速度有很大提升。

RSTP与STP的比较

NA西游第二难:STP学习_第3张图片

RSTP的快速收敛机制

• Proposal/Agreement机制
• 根端口快速切换机制
• 边缘端口的引入

示例:
NA西游第二难:STP学习_第4张图片

在s1到s4交换机配置RSTP

[s1]stp mode rstp

配置s1为根交换机,s2为备份根交换机

[s1]stp root primary
[s2]stp root secondary 

配置s3的Ethernet0/0/1,s4的Ethernet0/0/1为边缘端口

[s3-Ethernet0/0/1]stp edged-port enable 
[s4-Ethernet0/0/1]stp edged-port enable 

MSTP

RSTP实现了网络拓扑的快速收敛,但还是存在缺陷,即局域网内所有VLAN贡献一颗生成树,链路被阻塞后将不承载任何流量,造成带宽浪费,因此无法在VLAN间实现数据流量的负载均衡,还可能造成部分VLAN报文无法转发。
MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。每个域叫做一个MST域,每棵生成树叫做一个多生成树实例MSTI;实例内可以包含多个VLAN,通过VLAN映射表,把VLAN和MSTI联系起来;一个MSTI可以对应多个VLAN,一个VLAN只能对应一个MSTI。

示例:
NA西游第二难:STP学习_第5张图片

基础配置

以s1为例
配置vlan 10 20,配置连接pc的端口为access,配置连接交换机的端口为trunk

[s1]vlan batch 10 20
[s1-Ethernet0/0/1]port link-type trunk 
[s1-Ethernet0/0/1]port trunk allow-pass vlan 10 20
[s1-Ethernet0/0/2]port link-type trunk 
[s1-Ethernet0/0/2]port trunk allow-pass vlan 10 20
[s1-Ethernet0/0/3]port link-type access 
[s1-Ethernet0/0/3]port default vlan 10

在s1,s2,s3上配置MSTP多实例

进入MSTP域视图
[s1]stp region-configuration
配置MSTP域域名
[s1-mst-region]region-name huawei
配置MSTP的修订级别为1
[s1-mst-region]revision-level 1
指定vlan10映射到MSTI1,指定vlan20映射到MSTI2
[s1-mst-region]instance 1 vlan 10
[s1-mst-region]instance 2 vlan 20
激活MST域配置
[s1-mst-region]active region-configuration

Notes:在同一MST域中,必须具有相同域名,修订级别以及VLAN到MSTI的映射关系

查看当前生效的MST域配置

dis stp region-configuration 
 Oper configuration
   Format selector    :0             
   Region name        :huawei             
   Revision level     :1

   Instance   VLANs Mapped
      0       1 to 9, 11 to 19, 21 to 4094
      1       10
      2       20

在s1,s2,s3查看三个实例中的生成树状态和统计的摘要信息

[s1]dis stp instance 0 brief
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               ROOT  FORWARDING      NONE
   0    Ethernet0/0/2               ALTE  DISCARDING      NONE
   0    Ethernet0/0/3               DESI  FORWARDING      NONE
[s1]dis stp instance 1 brief
 MSTID  Port                        Role  STP State     Protection
   1    Ethernet0/0/1               ROOT  FORWARDING      NONE
   1    Ethernet0/0/2               ALTE  DISCARDING      NONE
   1    Ethernet0/0/3               DESI  FORWARDING      NONE
[s1]dis stp instance 2 brief
 MSTID  Port                        Role  STP State     Protection
   2    Ethernet0/0/1               ROOT  FORWARDING      NONE
   2    Ethernet0/0/2               ALTE  DISCARDING      NONE

可以看到s1交换机的Ethernet0/0/2端口在实例1和实例2中都是处于DISCARDING状态,要实现这条链路被利用,配置s1交换机在实例2中为根交换机

[s1]stp instance 2 priority 0

再次查看生成树状态和统计的摘要信息

[s1]dis stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               ROOT  FORWARDING      NONE
   0    Ethernet0/0/2               ALTE  DISCARDING      NONE
   0    Ethernet0/0/3               DESI  FORWARDING      NONE
   1    Ethernet0/0/1               ROOT  FORWARDING      NONE
   1    Ethernet0/0/2               ALTE  DISCARDING      NONE
   1    Ethernet0/0/3               DESI  FORWARDING      NONE
   2    Ethernet0/0/1               DESI  FORWARDING      NONE
   2    Ethernet0/0/2               DESI  FORWARDING      NONE

可以看到,Ethernet0/0/2在实例2中为指定端口,状态为FORWARDING了,达到了流量分担的目的,有效的利用了网络资源,使s1的两条上行链路可以互相备份

学习自华为技术认证 HCNA网络技术实验指南