一、原理概述
STP(Spanning Tree Protocol)是生成树协议的英文缩写,可应用于计算机网络中树形拓扑结构建立,主要作用是防止网桥网络中的冗余链路形成环路工作。
- 为什么要有生成树:因为当有环路存在时,广播的发送会引起全网的广播风暴,因此需要打破环路生成的条件,而生成树协议就是解决。二层广播风暴的重要手段,另外我们会阻塞-些端口,打破环路生成条件,当链路出现问题时,这些被阻塞的端口可以过渡到转发状态,实现链路的备份的作用。BPDU (Bridge Protocol Data Unit) 网桥协议数据单元,STP的各种选举是通过交换BPDU报文来实现的,BPDU是直接封装在以太网帧中的。(802. 3+802. 2),对于参与STP的所有SW,它们都通过数据消息的交换来获取网络中其他SW的信息,这种消息就被称为BPDU,BPDU是直接封装在二层的协议。
- BPDU功能:选举根桥,确定冗余路径的位置,通过阻塞特定端口来避免环路,通告网络的拓扑变更,监控生成树的状态,BPDU每2S由根桥发送一次。(拥有最小br idge- id的交换机成为根桥),最初的网络,每个SW都认为自己是根桥,都会发送BPDU,比较Lowest BID,选举出一个根桥,此时就只有根桥发送BPDU。 非根桥只进行转发,转发时只修改bridge- id和cost字段。
- BPDU类型:1)、配置BPDU,通常由根网桥以周期性间隔发出,包括了STP参数,用于进行各种选举。2)、TCN ( topology change notification 拓扑变更通告) BPDU–这种BPDU是当交换机检测到拓扑发生变更时所产生。TCN ( Topology Change Notification) BPDU,这种BPDU是SW检测到拓扑变更时产生的。可由非根网桥发出。3)、选举根交换机的规则:lowest BID=网桥优先级+ MAC地址 (越小越优)。交换机默认网桥优先级是32768。
- STP:单实例生成树协议;RSTP:快速生成树协议;MSTP:多实例生成树协议;通过STP、RSTP协议可以实现1.逻辑上防止链路环路;2.物理上实现链路备份;通过MSTP协议不但可以实现上述两点,还可以实现负载均衡。
- STP五种端口状态:Disable(禁用)、Listening(监听)、学习(Learning)、转发(Forwarding)、阻塞(Blocking)
- Disable(禁用):端口shutdown,端口Up后会从Disable转为Listening状态
- Listening(监听):在该状态下可以发送和接收BPDU包,但是不能转发数据帧,用于选举设备角色和端口角色,该状态会维持一个,该状态会维持一个Forward Delay(15秒)的时间,超过该时间后会过渡到Learning状态
- Learning(学习):在该状态下可以发送和接收BPDU包,可以接收但是不能转发数据帧,会学习源MAC地址用来构建MAC地址表,该状态会维持一个Forward Delay(15秒)的时间,超过该时间后会过渡到Forwarding状态
- Forwarding(转发):在该状态下可以发送和接收BPDU包,同时也可以接收和转发数据帧。
- Blocking(阻塞):在该状态下可以接收BPDU包,但是不能转发BPDU包和数据帧。
- 端口角色:
RP:根端口,每个非根网桥上有且只有一个,选举到达根网桥上路径开销值最小的成为根端口。
DP:指定端口,根网桥上每个端口都是指定端口,非根网桥上需要转发数据的端口也是指定端口。
AP:预备端口,该接口状态为blocking状态,只收BPDU,不发BPDU。
二、实验目的
- 设置根交换机(两种方法)
三、实验拓扑
四、实验步骤
- 由拓扑图中可知,S2的lowest BID最小,所以S2是根桥,通过命令dis stp brief查看各自STP端口角色与状态。
ROOT:根端口,DESI:指定端口,ALTE:预备端口
根桥所有端口都是指定端口,且没有根端口。
非根桥上必须有一个根端口
S1、S2和S3配置如下图
可以看到,S2的所有端口角色都为指定端口,且端口状态都为转发,可以初步判断S2为根交换机,我们来查看S2的详细生成树信息
CIST Bridge:指的就是本机的网桥ID,网桥ID是以本交换机上所有接口的最小mac地址与网桥优先级组成。
CIST root/ERPC:指的是总根的网桥ID,和到总根的开销
CIST RegRoot/IRPC:指的是域根的网桥ID,以及到域根的开销。
CIST RootPortID:指的是该交换机在CIST生成树上的根端口的端口ID
可以看到,“CIST Root”和“CIST Brige”相同,说明目前S2为根交换机
2.将S1设置为根交换机(第一种方法,修改根桥ID。第二种S1配置为主根交换机)
1)、修改根桥ID ,根桥ID=交换机优先级(32768)+MAC地址 (修改设备优先级只能按照 4096 倍数修改,优先级取值范围 0~61440,配置命令:stp priority 4096)
在S1上配置stp priority 4096,查看各自STP端口角色与状态如下图:
由上图可知,S1已是根交换机了。
3.根端口选举
生成树在选举出根交换机之后,将在每台非根交换机上选举根端口。选举时首先比较该交换机上每个端口到达根交换机的根路径开销,路径开销最小的端口将成为根端口。如果根路径开销值相同,则比较每个端口所在链路上的上行交换机ID,如果该交换机ID也相同,则比较每个端口所在链路上的上行端口ID。每台交换机上只能拥有一个根端口(可通过命令stp cost 1000修改端口开销,达到端口角色转换)
4.将接PC的端口配置为边缘端口,减少接口的收敛时间
原因:生成树的计算主要发生在交换机互连的链路之上,而连接 PC 的端口没有必要参与生成树计算 ,为了优化网络 ,降低生成树计算对终端设备的影响 ,可以把交换机上连接 PC 的接口配置为边缘端口。
PC连接的端口设置成边缘端口,并启用 BPDU 过滤功能
[SW3]int g0/0/1
[SW3-GigabitEthernet0/0/1]stp edged-
[SW3-GigabitEthernet0/0/1]stp edged-port enable
[SW3-GigabitEthernet0/0/1]stp bpdu-
[SW3-GigabitEthernet0/0/1]stp bpdu-filter enable