STP 生成树协议
- 环路引起的问题之一:广播风暴
环路引起的问题之二:MAC地址表不稳定
- STP作用
打破环路、链路备份
- BPDU(Bridge Protocol Data Unit)网桥协议数据单元
- STP的各种选举是通过交换BPDU报文来实现,BPDU是直接封装在以太网帧中的。(802.3+802.2)
- 对于参与STP的所有SW(交换机),它们都是通过数据消息发交换来获取网络中其他SW(交换机)的信息,这种消息就被称为BPDU
- BTPU是直接封装在二层的协议
- 选举根桥
- 确定冗余路径的位置
- 通过阻塞特定端口来避免环路
- 通过网络的拓扑变更
- 监控生成树根
3、BPDU每2s由根桥发送一次(拥有最小bridge-id的交换机称为根桥)
- 最初的网络,每个SW(交换机)都认为自己是根桥,都会发送BPDU,比较Lowwst BID,选举一个根桥,此时就只有根桥发送BPDU。非根桥只进行转发,转发时只修改bridge-id和cost字段
- BPDU分类
- 配置BPDU——通常由根网桥以周期性间隔发出,包括了STP参数,用于进行各种选举
- TCN(topplogy change notification 拓扑变更通告)BPDU:这种BPDU是当交换机检测到拓扑发生变更时所产生,可由非根网桥发生
- 选举根交换机的规则
1、lowest BID=网桥优先级+MAC地址(越小越优)
2、交换机默认网桥优先级是32768
3、设置成根网桥两种方法:
1)修改网桥优先级命令:【SW1】stp priority 0 (数值需要设定为4096的倍数)
2)设置此网桥为根网桥:【SW1】stp root primary (优先级将变为0)
查看谁是根网桥的命令:display stp
- 端口角色
- RP:根端口。每个非根网桥上有且只有一个,选举到达根网桥上的路径开销值最小的成为根端口
- DP:指定端口。根网桥上每个端口都是指定端口,非根网桥上需要转发数据的端口也是指定端口
- AP:预备端口。该接口状态为blocking状态,只收BPDU,不发BPDU
路径开销值:
带宽 | cost |
10M | 100 |
100M | 19 |
1G | 4 |
10G | 2 |
- 端口状态描述
- Disabled(禁用状态):不转发数据帧,不学习MAC地址表,不参与生成树计算
- Blocking(阻塞状态):不转发数据帧,不学习MAC地址表,接收并处理BPDU,不发送BPDU
- Listening(帧听状态):不转发数据帧,不学习MAC地址表,参与生成树计算,接收并处理BPDU
- Learning(学习状态):不转发数据帧,学习MAC地址表,参与生成树计算,接收并处理BPDU
- Forwarding(转发状态):转发数据帧,学习MAC地址表,参与生成树计算,接收并处理BPDU
端口由Blocking过渡到Forwarding有50s延时,Blocking过渡到Listening有20s老化时间,Listening到Learning有15s过渡时间,Learning到Forwarding有15s过渡时间。
- 选举根端口、指定端口的规则
- Lowest path cost to root bridge(到达根的最小路径开销)
- Lowest sender BID (最小的发送方BID)
- Lowest sender port ID (最小的发送方PID)
PID=端口优先级(默认128)+端口号
修改网桥接口优先级命令 (在发送方)
【SW1-Ethernet0/0/2】stp port priority 0 (16的倍数)
图为如何正确识别端口角色案例
- RSTP和MSTP
RSTP:快速生成树协议,缩短生成树端口由阻塞到转发状态的过渡时间。
开启快速生成树的方法:stp enable、stp mode rstp
MSTP:一个vlan一颗生成树,也可以多个vlan一个生成树,实现链路的负载均衡
命令:
stp mode mstp
stp region-configuration
region-name huawei
revision-level 1
instance 1 vlan 10
instance 2 vlan 20
active region-configuration
[]stp instance 1 root primary
[]stp instance 2 root secondary