文章目录
生成树协议STP
前言
交换机转发流程回顾
- 基于源MAC地址学习
- 基于已知目标MAC地址转发
- 当目标MAC地址未知时,泛红处理
- 交换机收到广播/组播帧时,无条件泛红处理
- 交换机一个借口可以学习多个MAC地址
- 交换机学习到同一个MAC地址,但是是从不同的端口学习到的,此时,将此MAC地址与后学习到的端口绑定起来
数据帧转发:源MAC,目标MAC,源IP,目标IP至少要知道三个 环路引起的问题
- 广播风暴
- MAC地址不稳定
STP生成树协议解决环路问题
- 消除环路
- 链路备份
网桥ID(Bridge ID)简称 BID
交换机比较各自的优先级值来选举确定STP中的根桥,若优先级值相同,则取十六进制MAC地址值较小的。优先级值可以手动指定,用以人为控制STP中的根桥的选举。所有同类型交换机默认配置相同的优先级值,MAC地址成为决定根桥的关键,导致选举无法预测。建议为合适的交换机配置较低的优先级值,以确保他被选举为根桥。这样也可以确保向网络添加新交换机时,不会发生新的生成树选举。
早期的STP没有为VLAN设计,所有交换机只有一颗共同的生成的树,BID中前两个字节全部用来标识优先级值。2字节=16位=2^16,所以优先级值范围为0~65535。
随着PVST+(每VLAN生成树协议+)的实施,单个生成树实例属于各个VLAN,为支持VLAN,BID中前两个字节拆分为4位的优先级值和12位的标识VLAN的扩展ID,有多少VLAN,交换机就应具有多少个BID。
由于用于标识优先级值的可用位数变少,2^4=16个,因此只有16个可能值可以应用于优先级值和对应VLAN,为保持和其他不支持扩展ID的BID一致,BID优先级值增量由1变为4096,优先级值只能是4096的倍数,一共16个优先级值,最小40961=4096,最大409616=65536。
一:STP生成树协议概念
1.1生成树协议存在意义
当有环路存在时,广播的发送会引起全网的广播风暴,因此需要打破路生成的条件,而生成树协议就是解决二层广播风暴的重要手段,另外我们会阻塞一些端口,打破环路生成条件,当链路出现问题时,这些被阻塞的端口可以过渡到转发状态,实现链路的备份的作用
1.2网桥协议数据单元
1.2.1BPDU ( Bridge Protocol Data Unit)网桥协议数据单元
- STP的各种选举是通过交换BPDU报文来实现的,BPDU是直接封装在以太网帧中的。(802.3+802.2)
- 对于参与STP的所有SW,它们都通过数据消息的交换来获取网络中其他SW的信息,这种消息就被称为BPDU。
- BPDU是直接封装在二层的协议
1.2.2BPDU功能
1、选举根桥
2、确定冗余路径的位置
3、通过阻塞特定端口来避免环路
4、通告网络的拓扑变更
5、监控生成树的状态
BPDU每2S由根桥发送一次。(拥有最小bridge-id的交换机成为根桥)
最初的网络,每个SW都认为自己是根桥,都会发送BPDU,比较Lowest BID,选举出一个根桥,此时就只有根桥发送BPDU。非根桥只进行转发,转发时只修改bridge-id和cost字段。
1.3 BPDU分裂
BPDU分两种类型
- 配置BPDU–通常由根网桥以周期性间隔发出,包括了STP参数,用于进行各种选举。
- TCN(拓扑变更通告)BPDU–这种BPDU是当交换机检测到拓扑发生变更时所产生的。
TCNBPDU–这种BPDU是SW检测到拓扑变更时产生时。可由非根网桥发出。
1.4 选举根交换机规则
lowest BID=网桥优先级+ MAC地址 (越小越优)
交换机默认网桥优先级是32768
设置成根网桥两种方法
1.修改网桥优先级命令
[SW1]stp priority 0 ( 数值需要设定为4096的倍数)
2.设置此网桥为根网桥
[SW1]stp. root primary (优先级将变为0)
查看谁是根网桥的命令:
display stp
1.5端口角色
- RP:根端口。每个非根网桥上有且只有一个,选举到达根网桥E路径开销值最小的成为根端口。
- DP:指定端口。根网桥上每个端口都是指定端口,非根网桥上需要转发数据的端口也是指定端口。I
- AP:预备端口。该接口状态为blocking状态, 只收BPDU.不发BPDU。
1.6端口状态描述
Di sabled(禁用状态):不转发数据帧,不学习MAC地址表,不参与生成树计算
Blocking (阻塞状态) :不转发数据帧,不学习MAC地址表,接收并处理BPDU,不发送BPDU.
Listening (侦听状态) :不转发数据帧,不学习MAC地址表,参与生成树计算,接收并发送BPDU
Learning (学习状态) :不转发数据帧,学习MAC地址表,参与生成树计算,接收并发送BPDU
Forwarding (转发状态) :转发数据帧,学习MAC地址表,参与生成树计算,接收并发送BPDU
端口由Block ing过渡到Forwarding有50S延时, Block ing到Listen ing 有20S老化时间,Listening到Learning
有15S过渡时间,Learn ing到Forwarding有1 5S过渡时间
1.7.选举根端口、制定端口的规则
- Lowest path cost to root bridge (到达根的最小路径开销)
- lowest sender BID (最小的发送方BID)lowest BID=网桥优先级+ MAC地址 (越小越优)
- Lowest sender port ID ( 最小的发送方PID)优先级(默认128) +端口号
| BW | COST |
|---|---|
| 10M | 100 |
| 100M | 19 |
| 1G | 4 |
| 10G | 2 |
选取分析如下图,SWA是根网桥,MAC地址大小关系 SWA< SWB<SWC 其他端口角色分析

SWA是根网桥
依据“根网桥上都是DP,非根网桥上转发数据的是DP"原则 SWA上的端口都是DP
选举RP,根据Cost最小原则SWB和SWC离根网桥cost最小,选为RP,且每个交换机只有一个
SWB与SWC端口分析
首先依据到根网桥最小cost值,越小越优先,选举DP。相同时,比较BID(BID由网桥优先级和MAC地址构成),所以先比较网桥优先级,优先级越小越优先;网桥优先级相同时,比较十六位置的MAC地址,MAC地址越小越优先,优先的选为DP. MAC地址 SWB<SWC ,所以SWB右边的端口为DP
AP选举,为了防止环路,SWC的左端口选为AP
二、快速生成树协议
- RSTP:快速生成树协议缩短生成树端口由阻塞到转发状态的过渡时间
开启快速生成树方法.
[]全局模式stp enable
[]stp mode rstp
MSTP:一一个VLAN或者是多个VLAN一棵生成树,实现链路的负载均衡 - 就时间是上有优势其他没有链路优势
三、多实例生成树协议
MSTP:多实例生成树让指定 的一一个VLAN或者是多个VLAN生成一棵树, 实现链路的负载均衡MSTP:多实
命令整理如下:
[ ]stp mode mstp
stp模式设置为mstp
stp region-configuration '进 入mstp设置模式'
region-name huawei '区域名称为huawe i'
revision-level 1 '版本级 别为1'
instance 1 vlan 10 '定义实例1为vlan10'
instance 2 vlan 20 '定义实例2为vlan20'
active region-configuration '对mstp配置保存'
[]切换到全局模式
stp instance 1 root primary '定义本交换机为实例1的根'
stp instance 2 root secondary ‘定义本交换机为实例2的备选根'
四 :实验案例

4.1 SW3配置
4.1.1接口配置
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname SW3
[SW3]user-in
[SW3]user-interface 0
[SW3-ui0]idle-t
[SW3-ui0]idle-timeout 0 0
[SW3-ui0]q
[SW3]int e0/0/2
[SW3-Ethernet0/0/2]q
[SW3]v b 10 20
[SW3]int e0/0/2
[SW3-Ethernet0/0/2]port hybrid pvid vlan 20
[SW3-Ethernet0/0/2]port hybrid untagged vlan 10 20
[SW3-Ethernet0/0/2]int e0/0/4
[SW3-Ethernet0/0/4]port hybrid pvid vlan 20
[SW3-Ethernet0/0/4]port hybrid untagged vlan 10 20
[SW3-Ethernet0/0/4]int e0/0/1
[SW3-Ethernet0/0/1]port hybrid pvid vlan 10
[SW3-Ethernet0/0/1]port hybrid untagged vlan 10 20
[SW3-Ethernet0/0/1]int e0/0/3
[SW3-Ethernet0/0/3]port hybrid pvid vlan 10
[SW3-Ethernet0/0/3]port hybrid untagged vlan 10 20
4.1.2mstp配置
[SW3]stp mode mstp
[SW3]stp region-
[SW3]stp region-configuration
[SW3-mst-region]region-n
[SW3-mst-region]region-name huawei
[SW3-mst-region]revision-l
[SW3-mst-region]revision-level 1
[SW3-mst-region]instance 1 vlan 10
[SW3-mst-region]instance 2 vlan 20
[SW3-mst-region]active region-
[SW3-mst-region]active region-configuration
4.2 SW1配置
4.2.1接口配置
[SW1]v b 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW1]int g0/0/2
[SW1-GigabitEthernet0/0/2]port hybrid pvid vlan 10
[SW1-GigabitEthernet0/0/2]port hybrid untagged vlan 10 20
[SW1-GigabitEthernet0/0/2]int e0/0/1
[SW1-Ethernet0/0/1]port hybrid pvid vlan 10
[SW1-Ethernet0/0/1]port hybrid untagged vlan 10 20
[SW1-Ethernet0/0/1]int g0/0/1
[SW1-GigabitEthernet0/0/1]p l t
[SW1-GigabitEthernet0/0/1]p t a v a
[SW1-GigabitEthernet0/0/1]un sh
4.2.2mstp配置
[SW1]stp mode mstp
[SW1]stp region-
[SW1]stp region-configuration
[SW1-mst-region]region-n
[SW1-mst-region]region-name huawei
[SW1-mst-region]revision-l
[SW1-mst-region]revision-level 1
[SW1-mst-region]instance 1 vlan 10
[SW1-mst-region]instance 2 vlan 20
[SW1-mst-region]active region-
[SW1-mst-region]active region-configuration
[SW1]stp instance 1 root primary
[SW1]stp instance 2 root secondary
4.3 SW2配置
4.3.1接口配置
[Huawei]sysname SW1
[SW1]sysname SW2
[SW2]user-in
[SW2]user-interface 0
[SW2-ui0]idle-t
[SW2-ui0]idle-timeout 0 0
[SW2-ui0]q
[SW2]v b 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW2]int g0/0/2
[SW2-GigabitEthernet0/0/2]port hy
[SW2-GigabitEthernet0/0/2]port hybrid pvid vlan 20
[SW2-GigabitEthernet0/0/2]port hy
[SW2-GigabitEthernet0/0/2]port hybrid unt
[SW2-GigabitEthernet0/0/2]port hybrid untagged vlan 10 20
[SW2-GigabitEthernet0/0/2]int e0/0/1
[SW2-Ethernet0/0/1]port hybrid pvid vlan 20
[SW2-Ethernet0/0/1]port hybrid untagged vlan 10 20
[SW2-Ethernet0/0/1]int g0/0/1
[SW2-GigabitEthernet0/0/1]p l t
[SW2-GigabitEthernet0/0/1]p t a v a
[SW2-GigabitEthernet0/0/1]un sh
4.3.2mstp配置
[SW2] stp mode mstp
[SW2]stp region-
[SW2]stp region-configuration
[SW2-mst-region]region-n
[SW2-mst-region]region-name huawei
[SW2-mst-region]revision-l
[SW2-mst-region]revision-level 1
[SW2-mst-region]instance 1 vlan 10
[SW2-mst-region]instance 2 vlan 20
[SW2-mst-region]active region-c
[SW2-mst-region]active region-configuration
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW2-mst-region]q
[SW2]stp instance 1 root secondary
[SW2]stp instance 2 root primary
4.4 配置R1
[Huawei]sysname R1
[R1]user-in
[R1]user-interface 0
[R1-ui0]idle-t
[R1-ui0]idle-timeout 0 0
[R1-ui0]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.20.1 24
[R1-GigabitEthernet0/0/1]int loo0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q
4.5测试
PC1

PC2
[R1-ui0]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.20.1 24
[R1-GigabitEthernet0/0/1]int loo0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q
### 4.5测试
PC1
[外链图片转存中...(img-RQvJ9dHJ-1595816638172)]
PC2
