目录
一、STP的诞生背景,解决问题
STP
STP(Spanning Tree Protocol)是生成树协议的英文缩写,可应用于计算机网络中树形拓扑结构建立,主要作用是防止网桥网络中的冗余链路形成环路工作。
环路产生
在交换网络中,需要设计机制,避免线路单点故障,提升冗余性
例如:双机热备,多加一个设备则要多加好多条线路
物理线路的冗余可能形成环路
环路的副作用
广播风暴:
耗尽交换机的带宽,CPU资源,导致数据无法正常转发,广播风暴现场,交换机的所有亮着的等,都出现疯狂闪烁,肯定是广播风暴。
广播风暴无解,只能重启交换机,因为二层广播报文没有TTL机制,会一直存在
不稳定的CAM表
交换机对于学习到的MAC地址表,反复记录在不通的接口上,引起CAM表的抖动,影响正常通信
STP的终极目的
需要物理线路上的冗余,同时又要避免环路带来的副作用,同时还要能够自动化的实现
STP的终极目的,就是自动破除逻辑上的二层环路
二、STP是怎么实现的
通过协议,阻塞网络中的某一个接口(逻辑上),实现物理线路正常连接,逻辑上接口为DOWN,避免环路危害
具体的阻塞接口,是交换机之间,自行协商出来的,协商的语言,就是所谓的网桥协议数据单元(BPDU),交换机之间通过BPDU中携带的关键参数,来选举,选举得出结果,判定阻塞那个接口
三、STP的选举
选举根网桥——在每个非根网桥上选举一个根端口——在每个网段上选举一个指定端口——阻塞非根、非指定端口
根桥选举
根桥的选举需要比较关键参数(BPDU),BID(brige id 网桥(交换机)ID)=网桥优先级(2字节)+网桥MAC(6字节)
这里说的网桥其实就是交换机
BID=网桥(交换机)的优先级+MAC地址
优先级的范围:0-65535 默认为32768
网桥的MAC地址是唯一的
根桥是在所有交换机之间产生的,BID越小越优先,先比较优先级,优先级相同再比较MAC地址
确定根桥交换机后,其余交换机都为非根网桥交换机,根桥交换机在一个拓扑中有且只有一个
非根桥上选举根端口(非根桥交换机上所有的接口都要进行比较)
①cost of path (根路径成本):
根据根路径成本选举,越小越优先
根路径成本就是到根网桥的路径中所有链路的路径成本的累计和
STP的路径成本:到达根桥的开销值
路径成本的计算和链路的带宽相关联
带宽 开销值
100M 19
1000M 4
10G 2
②sender BID 发送者的网桥ID
如果出现多个端口的cost值相同,则需要进行sender BID的比较
即该接口的对端交换机的BID是多少,越小越优先
ps:在现网中,会对BID进行规划,一般来讲,BID越小的越靠近核心层
③比较 sender PID 发送者的端口ID
当拓扑中,出现双链路时,可能存在,cost值相同,sender BID也相同的情况
这时候就需要比较sender PID
sender PID:
端口ID(2字节)=端口优先级(1字节)+端口编号(1字节)
范围0-255,默认128,越小越优先
注:比较的是接口的对端交换机的PID
④local PID 本地端口ID
如果拓扑中出现hwb,可能出现前三种参数都相同的情况
如果前三种参数都相等,则需要进行local PID 的比较
就是本地端口的PID相比,越小越优先
选指定端口
在所有非根桥交换机的空余链路中选出来的指定端口(是在两台交换机之间选择出来的)
①cost of path
ps:此处的开销值值的不是接口到达根桥的开销值,而是当前接口所在交换机的根端口的跟路径成本
越小越优先
②local BID
如果cost值比不出来,则比较本地的BID值,越小越优先
③local PID
如果前两项都比不出来,则比较本地的PID值
跟桥上所有接口都是指定端口,不需要比较
阻塞
除了根端口与指定端口外,其余端口都是阻塞端口,形成逻辑上无环路的拓扑结构
四、练习题
默认每条线路的带宽相同
选举根桥
根据BID,4096+C457最小,选择其为根桥