网站首页/网络技术列表/内容

高级网络工程师详细说明二层最难理解的协议之一STP生成树协议

网络技术2024-04-08阅读

无论是弱电网络工程师还是网络工程师,在学习网络技术的时候,都感觉STP很难理解,是一道漫不过的坎。今天通过本文,大家按照步骤仔细阅读,相信大家就可以理解STP生成树协议了。


STP英文全称是Spanning tree protocol,中文解析为生成树协议。生成树协议可以简单理解为生成树协议根据相关参数从树根开始,通过阻塞某些端口,往下生成一棵无环路的拓朴树。

如下图所示:

高级网络工程师详解二层最难理解的协议之一STP生成树协议

因为有阻塞端口的链路不可用,所以根据上图可以画出一棵无环路的拓扑树如下图所示:

高级网络工程师详解二层最难理解的协议之一STP生成树协议

大家看完上面拓扑后,可能会疑问,什么是树根?,SW1为什么会成为树根?、树根的作用是什么?、哪些端口会被阻塞?、哪些端口不会被阻塞?、端口角色是什么?等等一系列问题。接下来我们就开始详细学习STP生成树的各个概念吧。

根桥:root bridge,也就是上图所说的“树根”。在一个STP网络中,根桥只有一个,它是整个网络的逻辑中心。网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置BPDU,其他设备仅对该报文进行转发,传达拓扑变化记录,从而保证拓扑的稳定。


第一步:选举根交换机

根桥的选举规则是:交换机启动时会相互发送配置BPDU,BPDU中包含bridge id(桥ID)字段,桥ID最小的将会成为全网的根桥。

高级网络工程师详解二层最难理解的协议之一STP生成树协议

BPDU报文格式

IEEE 802.1D标准中规定桥ID是由2字节的交换机优先级(Bridge Priority)与6字节的交换机MAC地址构成,即BID(8字节) = 交换机优先级(2字节) + 交换机MAC(6字节)。默认交换机优先级均为32768;交换机mac由24位固定厂商代码(华为的厂家是4c:1f:cc)+24位自定义数字组成。

高级网络工程师详解二层最难理解的协议之一STP生成树协议

抓包显示,交换机-2每隔2s会定期发送从启动端口GE0/0/1发送配置BPDU(桥协议数据单元)。BPDU中包含桥ID,交换机通过对比桥ID的大小来选举根交换机。

高级网络工程师详解二层最难理解的协议之一STP生成树协议

BPDU中包含的桥ID字段

高级网络工程师详解二层最难理解的协议之一STP生成树协议

接着我们把交换机-3(桥ID是32768+4c1f-cc1a-36d9)也接到hub上,验证一下根桥的选举规则(交换机-3的桥ID比交换机-2的桥ID小,比较规则是:先比较根桥优先级,再比较mac地址),验证命令是:display stp,结果如下图所示:

高级网络工程师详解二层最难理解的协议之一STP生成树协议
高级网络工程师详解二层最难理解的协议之一STP生成树协议

从上图可以看到,经过比较,交换机-3成了交换机-2和交换机-3组成的网络的根桥。


第二步:选举根端口。

1.根桥选出来后,才会选择根端口。根端口指的是非根交换机到达根交换机的根路径开销最小的端口。根路径开销指的是,交换机某端口到根桥累计的路径开销就是所经过的各个桥上的各端口的路径开销累加而成,这个值叫做根路径开销(Root Path Cost)。如下图所示:

高级网络工程师详解二层最难理解的协议之一STP生成树协议

SW4的2端口的路径开销=SW4的2端口的路径开销(10)+SW2的1端口的路径开销(10)=20。

SW4的1端口的路径开销=SW4的1端口的路径开销(100)+SW3的2端口的路径开销(100)。

两者对比,SW4的根路径开销为20,根端口为2端口(因为该端口到根交换机的路径开销最小)。

2. 如果SW4的2端口和1端口到达根桥(SW1)的路径开销都一样,SW4根据从2端口和1端口接收到的配置BPDU中的发送者桥ID来选举根桥。端口接收到的BPDU中,发送者桥ID小的,该端口将会成为根端口


第三步:选举指定端口

根交换机上的每个端口都是指定端口。每个交换机之间的链路都需要选出一个指定端口,指定端口抑制其它(交换机自身的端口或者其它交换机上的端口)端口发送配置BPDU。

高级网络工程师详解二层最难理解的协议之一STP生成树协议

如上图所示,全网根据第一、二步选举出了根桥以及跟端口。那么接下来如何选举指定端口呢?

SW1-SW2之间选择指定端口,因为SW1为根桥,根桥上的所有端口都是指定端口,该段链路上,SW1的1端口为该网段的指定端口;SW2和SW4之间,因为SW4的2端口为RP端口,所以,该链路上,SW2的2端口为指定端口(为什么呢?因为指定端口会向下转发配置BPDU,根端口只接收配置BPDU);SW1和SW3之间,因为SW1为根桥,SW1上的所有端口都是指定端口,该链路上指定端口为SW1的2号端口。

最后,SW4和SW3之间的链路上需要选出指定端口,选举的规则是:1.比较根桥ID,越小越优先、2.比较根路径开销,越小越优先、3.比较发送者桥ID,越小越优先。因为全网根桥ID一致,SW4的1号端口到达根桥的路径开销是(10+10=20),SW3的1号端口到达根桥的路径开销为(100),所以SW4的1号端口成为该链路的指定端口,SW3的1号端口为AP阻塞端口(该端口不转发数据)。

如下图所示:

高级网络工程师详解二层最难理解的协议之一STP生成树协议
相关阅读