STP(Spanning Tree Protocol)生成树协议,用于解决二层环路问题。
普通的网络不具备冗余性,当网络中的某一条链路故障之后,便不能相互通信。所以我们需要在网络中配置冗余链路。配置冗余链路,能够增加网络的可靠性,但同时也会导致环路的问题。
环路的危害:广播风暴、多帧复制、MAC地址表不稳定等。采用STP解决了存在冗余的网络中环路的问题。在正常情况下,一个接口只接收一个帧,若网络中存在环路,每循环一周,接口就会接收到一个相同的帧。MAC地址表不稳定是由于网络中由于环路的存在,不同的端口先后会学习到同一个MAC地址。
概念术语:
桥ID(BID):由16位优先级和48位MAC地址组成。优先级范围:0-65535,默认情况下是32768。优先级可以更改,但必须是4096的倍数。
开销(cost):端口之间的参数,端口之间对比用cost。
端口ID(PID):由优先级和序列号组成。优先级范围1-240,默认为128,可以改变,必须是16的倍数。先比较优先级,优先级相同比较端口序列号。
交换机之间的比较:比较BID,先比较优先级,若优先级相同再比较MAC地址。
端口之间的比较:先比较cost,再比较BID,最后比较PID。
网桥协议数据单元(BPDU):交换机之间转发。
配置BPDU:在stp计算开始之前,每个交换机都把自己当作根桥,都发送BPDU。计算后,根桥主动发送配置BPDU,非根桥进行回应。(自上而下)
TCN BPDU:当拓扑发生变化之后,由非根桥主动发出。(自下而上)
根桥(root):BID最小的交换机。根桥根据BID选,首先对比优先级,优先级相同对比MAC地址,MAC地址小的作为根桥。最小值为0。
根端口:在非根桥上。非根桥到根桥花销最少的端口。处于转发状态。
指定端口:在物理网段上,网段到达根桥花销最少的端口。处于转发状态。
根桥上的参与STP计算的端口都为指定端口。
备份端口:既不是根端口,也不是指定端口的端口。处于阻塞状态。
STP工作过程:
1、选根桥:根据PID,优先级+MAC地址,先比较优先级,再比较MAC地址。
2、选根端口:在非根桥上,先比较cost,再比较PID。
3、选指定端口:在物理网段上,先比较cost,再比较BID,最后比较PID。
五种状态:
禁用:down。不能收发BPDU和业务数据。
阻塞:可以接收BPDU。
侦听:可以收发BPDU。
学习:可以接收业务数据和MAC地址学习。
转发:可以接收业务数据和BPDU。如果角色是根端口或者指定端口则可以进入转发状态。
STP中cost计算方法:
接口速率 | 接口模式 | cost计算方法(华为) |
100Mbps | Half-double | 200 |
Full-double | 199 | |
Aggregated Link 2 Ports | 180 | |
1000Mbps | Full-double | 20 |
Aggregated Link 2 Ports | 18 | |
10Gbps | Full-double | 2 |
Aggregated Link 2 Ports | 1 | |
40Gbps | Full-double | 1 |
Aggregated Link 2 Ports | 1 |
R为根端口,D为指定端口,X为阻塞端口。