STP
原理概述
STP是用来避免数据链路层出现逻辑环路的协议,运行STP协议的设备通过交互信息发现环路,并通过阻塞特定端口,最终将网络结构修剪成无环路的树形结构。在网络出现故障的时候,STP能快速发现链路故障,并尽快找出另外一条路径进行数据传输。
交换机上运行的STP通过BPDU信息的交互,选举根交换机,然后每台非根交换机选择用来与根交换机通信的根端口,之后每个网段选择用来转发数据至根交换机的指定端口,最后剩余端口则被阻塞。
拓扑:
基本配置
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
示例:
配置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
再次查看计时器信息
<s1>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的比较
RSTP的快速收敛机制
• Proposal/Agreement机制
• 根端口快速切换机制
• 边缘端口的引入
示例:
在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。
示例:
基础配置
以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域配置
<s1>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网络技术实验指南