STP生成树协议详细学习笔记
一、什么是STP协议?
为什么要使用STP协议?
(这里用华为ensp来模拟网络架构)

我们知道园区网主要就是由交换机构成的,在图1-1中,PC1跟PC2通过三台二层交换机可以互相
通信,但一旦链路出现故障即两台PC就不能互相通信了,所以为了提高网络可靠性,我们要使用
冗余链路如图二所示,但冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不
稳定等问题,进而会影响到用户的通信质量。

箭头表示ARP报文路径,形成了一个环,这里我只发了五个包,但在SWB的Ethernet0/0/3端口上抓包产生了大量的ARP报文。
1.网络会产生广播风暴
2.网络中的主机会重复收到数据帧
3.还会引起MAC地址表震荡

所以STP可以直接理解为 通过阻塞端口来消除环路的一种防环机制。
二、.STP的操作
1.选举一个根桥(Bridge ID)
每一台交换机启动STP后,都认为自己是根桥。那么会发一个BPDU(桥协议数据单元)告诉大家我是根桥。根桥是根据自己的桥ID(BID)
BID = Priority(优先级)+Mac地址 来决定,这里Priority是两个字节,默认是32768,Mac地址是6个字节,那优先级相同的话这里比Mac地址,
比大还是比小呢?这里是比小。谁的Mac地址小,谁就为根桥。
(这里我们做一下实验,我们要设置SWA为根桥。)
一、将三台交换机的stp打开选择模式为stp模式,默认为mstp模式,我们这里先学习stp模式

二、设置优先级为4096(可以设置成0,为什么不可以设置为2?)
因为他要是4096的倍数,这个跟刚才说的priority是2个字节有关
优先级这里分为两个部分(4+12 =16位=2个字节)优先级能调制的只有前4个位(0000),而后12位全为0,那我们能调的次小也就是
说除了0最小的二进制数也就是0001+后面12个0(0001000000000000)转换为10进制刚好等于4096,所以这里优先级要设置为4096
的倍数。(in steps of 4096)那这里可以设置最大为61440也就是说是这样得来的 前4个1加后12个0(11111000000000000).
根桥是根据发送的BPDU来选的,BPDU包含桥ID、路径开销、端口ID、计时器等参数。

 ![]()
 
2.每个非根交换机选举一个根端口
我们选取好了SWA为根桥的话,现在在SWB和SWC上选举一个根端口(怎么选举)
非根交换机在选举根端口时分别依据该端口的根路径开销、对端BID、对端PID和本端PID,假设我们从SWB的E0/0/3端口到
根桥的话,也就是要开销40000,而SWB的E0/0/1端口到根桥只需要20000,所以毫无疑问我们选举SWB的E0/0/1和SWC的E0/0/1端口为根端口
(这里我顺便先把所有端口选出来)

3.每个网段(链路)选举一个指定端口
这里怎么去比呢,就是SWB发出来的根桥的ID、开销值、BID与SWC比,那么这里发出来的根桥ID、开销值、优先级双方
都相同,那比什么呢?我们知道BIP=Privority+MAC就比MAC值,SWB的MAC值比SWC小,那么SWB的E0/0/3口就为指定端口。
即SWC的E0/0/3口为AP(预备端口)
注意:DP的对端必定是RP或AP 、RP和AP的对端必定是DP 、每个交换机只有一个RP 、根桥的所有端口都是指定端口。
4.阻塞非根、非指定端口(AP DISCARDING)
交换机所有的剩余的非根端口和非指定端口统称为备用端口。STP会对这些备用端口进行逻辑阻塞。

三、STP端口状态&拓扑改变
1、STP端口有以下5种状态
1.Disabled 2.Blocking(收BPDU,不发BPDU,不收发数据) 3.Listening(收发BPDU,不学习MAC地址,不收发数据)
4.Learning(不收发数据,收发BPDU,学习MAC地址) 5.Forwarding(收发数据,收发BPDU,学习MAC地址)
注意:Listening状态 ——>Learnning状态——>Forwarding状态不可逆 Blocking状态到Forwarding状态需要30秒,处于Listening状态和Learning状态各15秒
企业把Disabled +Blocking +Listening状态合称为Discarding状态
 
2、STP拓扑改变(交换机故障或链路故障)
根桥的交换机故障:非根桥在BPDU老化之后开始根桥的重新选举

链路故障(直连链路故障和非直连链路故障)
直连链路故障:
1.SWB 检测到直连链路物理故障后,会将预备端口转化为根端口
2.SWB 新的根端口会在30秒后恢复到转发状态

非直连链路故障:
1.非直连链路故障后,SWC的预备端口恢复到转发状态大约需要50秒(等老化时间Message20秒加Blocking到Forwarding30秒)
 
拓扑改变导致MAC地址表错误
MAC地址表项的默认老化时间是300秒,在这段时间内,SWB无法将数据从G0/0/2端口转发给主机B

四、STP的配置
1、STP模式

2、配置交换机优先级

3、配置路径开销

4、配置验证

总结:要理智0.0
                    
                
                
            
        
浙公网安备 33010602011771号