/***
* archive: 网络安全
* title: STP (生成树协议)
* author: imitator
* date: 2021.4.6
*/
一、为什么需要STP
生成树协议 是一种二层管理协议,找到逻辑上被关闭的端口,它通过有选择地阻塞网络冗余链路来达到消除网络二层环路的目的,同在这里插入图片描述
时具备链路备份功能。
- 在复杂网络拓扑结构中,为了增加网络的可靠性,需要对链路做一定的冗余,网络设计通常采用冗余方法提高网络的健壮性、稳定性。常见的冗余方式有:链路冗余和设备冗余。
- 网络中冗余链路会造成网络中的环路带来以下问题
- 广播风暴 ( 消耗带宽,堵塞通信 )
- 多帧复制 ( 复制多个单播数据帧 )
- MAC地址抖动 ( MAC地址表的持续更换 )
- 网络中冗余链路会造成网络中的环路带来以下问题
二、STP包含角色
角色 | 英文名字 | 含义 |
---|---|---|
根桥 | Root Bridge | 是STP生成树的最顶端交换设备 |
非根桥 | Non-Root Bridge | 除根设备以外的 |
根端口 | Root Port | 所有非根桥上的不同端口之间选举出一个到根桥最近的端口 |
指定端口 | Design Port | 离下游设备最近的端口 |
堵塞端口 | Blocking Port | 交换机上所有剩余的非根端口和非指定端口统称为备用端口 |
三、STP端口状态
状态 | 英文名字 | 含义 | 大 |
---|---|---|---|
禁用 | Disable | 不接收并转发BPDU包,不转发数据帧 如down状态 | |
阻塞 | blocking | 只接收BPDU包,以确定根节点位置以及ID | |
监听 | listening | 接收并转发BPDU包,不学习MAC地址、不转发数据帧 | 此阶段进行角色选举; |
学习 | listening | 接收并转发BPDU包,学习MAC地址、不转发数据帧 | |
转发 | forwarding | 接收并转发BPDU包,学习MAC地址、转发数据帧 |
四、STP角色选举
STP交换机初始启动之后,都会认为自己是根桥。并在发送给其他交换机的BPDU中宣告自己是根桥。
1、选举根桥
-
BUPDU:BID + MAC地址
- 当交换机从网络中收到其他设备发送过来的BPDU时,会比较BPDU中指定的根桥BID和自己的BID,交换机不断地交互 BPDU同时进行比较,直至最终选举出一台 BID值最小的交换机作为根桥。( 默认的桥优先级32768,范围0~65535, 4096的倍数)
- 如BID无法比较
-
- 比较 BPDU中的 MAC地址
2、选举根端口 ( 在非根桥选举 )
-
非根桥在选举根端口时分别依据(值小当选,一条确定不往下判断)
- (1) 该端口的根路径开销 ( RPC )
- (2) 对端BID
- (3) 对端PID
- (4) 本端PID
3、确定指定端口
-
唯一的指定端口
- 根端口保证了交换机与根桥之间工作路径的唯一性和最优性。为了防止工作环路的存在,网络中每个网段与根桥之间的工作路径也必须是唯一且最优的。当一个网段有两条及以上的路径通往根桥时,与该网段相连的交换机就必须确定出一个唯一的指定端口。
- 指定端口也是通过比较(值小当选,一条确定不往下判断)
- (1)该端口的根路径开销 ( RPC )
- (2) 对端BID
- (3)对端PID
4、确定堵塞端口
在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口统称为堵塞端口
如题
- 三台交换机开机时,同时向相邻的交换机发送BPDU包,以选举根桥
-
1、选举根桥
- 三台交换机 BID 相同 32768,所以比较 MAC地址,LSW11 值小 当选根桥 2、选择根端口
- 在LSW12、LSW13 中选择根端口,LSW12的 G0/0/1 与 LSW13的 G0/0/2 的端口根路径开销最小,所以为根端口 3、选择指定端口
- 根桥所有端口为指定端口,LSW12的 G0/0/2 与 LSW13的 G0/01 的 根路径开销(RPC)一样,继续比较对端BID(MAC地址),LSW13的 G0/01 端口最小当选 指定端口 4、确定堵塞端口
- 非根端口和指定端口,所以 LSW12的 G0/0/2 端口 堵塞