生成树STP(IEEE802.1d)
为解决交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)。
二层环路带来的问题:
1.广播风暴;2.MAC地址漂移。
生成树协议应用于园区网络的二层网络中,进行链路备份和消除环路。
桥ID(Bridge ID,BID)
IEEE 802.1D标准中规定BID由16位的桥优先级(Bridge Priority)与桥MAC地址构成。
桥优先级取值0~65535,默认值32768。
根桥选举:优先级最高的设备(数值越小越优先)会被选举为根桥;如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。
根路径开销(Root Path Cost):
一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加。
根桥的根路径开销是0。
接口ID(Port ID,PID):
接口ID由两部分构成的,高4 bit是接口优先级,低12 bit是接口编号。
端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍。
缺省情况下,端口优先级是128。
BPDU(Bridge Protocol Data Unit,网桥协议数据单元)
BPDU是STP能够正常工作的根本。BPDU是STP的协议报文。
BPDU分为两种类型:
配置BPDU(Configuration BPDU)
TCN BPDU(Topology Change Notification BPDU)
STP计算过程:
1.在交换网络中选举一个根桥
选举依据:BID,值越小优先级越高。
2.在每台非根桥上选举一个根接口
选举依据:1.根路径开销RPC,2.对端BID,3.对端PID,4.本段PID。
3.在每条链路上选举一个指定接口
选举依据:1.根路径开销RPC,2.BID,3.PID。
4.非根、非指定接口被阻塞。
STP中定义了三种端口角色:指定端口,根端口和预备端口。
指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。
根端口是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。
如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞。
运行STP协议的设备上端口状态有5种:
Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。
Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。
Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。
Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。
Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。