目录
一、STP概述
1.1.1、STP简介
- STP(Spanning Tree
Protocol,生成树协议)就是用来把一个环形的结构改变成一个树型的结构。STP协议就是讲物理上存在环路的网络,通过一种算法,在逻辑上阻塞一些端口,来生成一个逻辑上的树型结构。 - STP是运行在交换机上的二层破环协议,环路会导致广播风暴、MAC地址表震荡等后果,STP的主要目的就是确保在网络中存在冗余路径时,不会产生环路。
- STP是一个用于局域网中消除环路的协议,它的标准是IEEE
802.1D。运行该协议的设备通过彼此交互信息而发现网络中的环路,STP将部分冗余链路强制为阻塞状态,其他链路处于转发状态。当处于转发状态的链路不可用时,STP重新配置网络,并激活合适的备用链路状态。 - 由于局域网规模的不断增长,生成树协议已经成为当前最重要的局域网协议之一。
1.1.2、STP的主要作用
STP通过阻塞冗余链路,来消除桥接网络中可能存在的路径回环;
当前活动路径发生故障时,STP激活冗余链路恢复网络连通性。
二、STP的工作原理
2.2.1、生成树算法
STP运行生成树算法(Spanning Tree Algorithm, STA)。生成树算法的过程很复示,但可将其归纳为以下三个步骤:
- 选择根网桥(Root Bridge):
- 基于boot-ID字段,最小的是根。(开机后,交换机都认为自己是根,所以root-ID的初始值是和sender-ID是一样的)比boot-ID的大小,就是先比优先级priority,数值小的选中,priority相同的话,再比MAC值。数值小的选中。Priority的缺省值是:32768
- 确定根后,就只有根每隔2秒周期发BPDU了。非根交换机就只是转发BPDU了。
- 选择根端口(Root Ports)
- 是为非根交换机选root port(root port:非根交换机离根最近的接口)。基于path post选,小的优选。
- 选择指定端口(Designated Ports)
- 为每个网段选一个指派接口(指派接口:网段离根最近的接口)。基于path cost选,小的优选。如path
cost相同,比接口发的BPDU的sender-ID,小的选中. - 没被任何步骤选中的非根交换机接口,被该算法管理关掉,即被设为blocking.此时该接口只能接收BPDU帧,不转发BPDU帧,也不能收、发用户帧。
- 当交换机的root port失效时,被blocking的接口,会有一个被自动激活,成为active.成为root
port(因为被blocking的接口能接收BPDU) - 网络稳定后,接口只有2种状态:forwording、blocking.
-
- 选举根端口——指定端口的规则
1、Lowest path cost to root bridge (到达根的最小路径开销)
2、Lovest sender BID (最小的发送方BID)
3、Lowest sender port ID (最小的发送方PID)(PID=端口优先级(默认128)+端口号)
- 选举根端口——指定端口的规则
三、BPDU网际协议数据单元
- BPDU:网际协议数据单元
- STP的各种选举是通过交换BPDU报文来实现的,BPDU是直接封装在以太网帧中的(802.3 + 802.2)
- 对于参与STP的所有交换机,它们都是通过数据消息的交换来获取网络中其它交换机的信息,这种消息就被称为BPDU
3.3.1、BPDU的功能
- 选举根网桥
- 确定冗余路径的位置
- 通过阻塞特定端口来避免环路
- 通告网络的拓扑变更
- 监控生成树的状态
- 1、BPDU每2秒由根桥发送一次,拥有最小bridge-id的交换机为根桥。
- 2、最初网络,每个交换机都认为自己是根桥,都会发送BPDU比较Lowest
BID,选举出一个根桥,此时只有根桥发送BPDU非根桥只进行转发,转发只指修改bridge-id和cost字段
3.3.2、BPDU分为两种
- 配置BPDU通常有根网桥以周期性间隔发出,包括了STP参数,用于进行各种选举
- TCN(拓扑变更通告)BPDU这是当交换机检测到拓扑发生变更时所产生的的,这种BPDU可以有非根桥发出
- 选举根交换机的规则:
- lowest BID = 网桥优先级 + MAC地址(越小越优) 设置根桥的两种方法:
- 修改网桥优先级命令:stp priority 0 (数值需要设定为4096的倍数)
- 设置此网桥为根网桥:stp root primary (默认把优先级变为0)
四、生成树端口的状态
4.4.1、端口角色:
- 1、RP:根端口,每个非根网桥上有且只有一个,选举到达根网桥路径开销最小的称为根端口
- 2、DP:指定端口,根网桥上每个端口都是指定端口,非根网桥上需要转发数据的端口是指定端口
- 3、AP:预备端口,改接口状态为阻塞状态(bloking),只接收处理BPDU,不转发BPDU
4.4.2、端口状态描述:
- 1、Disabled(禁用状态):不转发数据帧,不学习MAC地址表,不参与生成树计算
- 2、Blocking(阻塞状态);不转发数据帧,不学习MAC地址表,接收并处理BPDU,不发生BPDU
- 3、Listening(监听状态):不转发数据帧,不学习MAC地址表,参与生成树计算,接收并发送BPDU
- 4、Learning(学习状态):不转发数据帧,学习MAC地址表,参与生成树计算,接收并发送BPDU
- 5、Forwarling(转发状态):转发数据帧,学习MAC地址表,参与生成树计算,接收并发送BPDU
端口由Blocking过度到Forwarding有50秒延时。Blocking到Listening有20秒老化时间,Listening到Learning有15秒过度时间,Learning到Forwarding有15秒过度时间