您现在的位置是:首页 >技术交流 >HCIA-10.生成树 STP 1/2网站首页技术交流
HCIA-10.生成树 STP 1/2
1、STP生成树的技术背景
在网络拓扑组建过程中,二层网络使用交换机组网。而交换机的工作机制(泛洪)会导致多台设备连接组网,产生环路问题。
如果出现了环路,会导致“广播风暴、MAC地址漂移”等问题。
二层网络没有类似于IP、TTL的防环机制,环路问题将无休止进行。
生成树是二层网络的破坏协议。
实验,关闭生成树功能后一个ARP报文会导致二层交换机间的广播风暴吗?
[Huawei]stp disable #关闭生成树功能
[Huawei]stp enable #开启生成树功能
2、STP生成树的基本概念和工作原理
2.1、STP的基本概念:桥ID,BID
在STP中,每一台交换机都有一个标示符,叫做桥ID(Bridge ID),也成为交换机ID。
根桥的BID也称为RID;
非根桥的BID就是BID。
它由16位的优先级和48位的MAC地址组成:桥优先级(Bridge Priority)16 bit + 桥MAC地址 48bit;
2.1.1、桥优先级16bit是可以配置的
因为其后12bit为固定值全0,所以只能调整前4bit:
A1、取值范围是 0 ~ 65535,默认值是 32768;
A2、可以修改但是其值必须为4096的倍数:
A2.1、为什么必须是4096的倍数?
思路1:优先级中后12bit被锁死为0,只有前4个bit可用,所以只能用4096的倍数。
思路2:将优先级16bit转为2进制,得出 0000 0000 0000 0000 。其中:
后12个bit不能变化,0000 0000 0000 0000;
前4个bit一但发生变化,如 0001 0000 0000 0000,转换为10进制就是 2^13=8,192 = 4096 * 2。就是说,二进制下默认从2^12被固定(2^12=4,096 ),只能从2^13开始变化,所以一定是4096的倍数。
思路3:那么按照这个逻辑,默认值2^15=32,768,即 0100 0000 0000 0000。
A3、关于优先级16bit --- 2字节的算法解读
[Huawei]stp priority ? #系统优先级值配置,默认为32768
INTEGER<0-61440> Bridge priority, in steps of 4096
2.2.2、桥ID比较
优先级高的设备(数值越小越优先)会被选为根桥,如果优先级相同则比较MAC地址(数值越小越优先)。
2.2、STP的基本概念:根桥
就是根交换机,它是:
A1、生成树运行的重要设备;
A2、在一个系统的生成树中,只存在一个根桥;
A3、桥ID最小的设备会被选举为根桥。
2.3、STP的基本概念:Cost(开销)
每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。
该cost值和接口带宽呈反比的关系,接口带宽越大,则Cost值越小。
Cost还与接口的速率、工作模式有关(默认的工作模式为Dot1T)
交换机千兆接口默认的开销值为20000;
交换机百兆接口默认的开销值为200000。
[Huawei]dis stp interface GigabitEthernet 0/0/2 #查看接口STP的相关信息
用户也可以根据需要通过命令调整接口的Cost。
方法1:修改计算标准
如果改变了计算标准,则每一台相关设备都要修改,统一标准。
[Huawei]stp pathcost-standard ? #修改STP开销计算标准
dot1d-1998 IEEE 802.1D-1998
dot1t IEEE 802.1T
legacy Legacy
方法2:直接设置开销
[Huawei]int gi 0/0/2
[Huawei-GigabitEthernet0/0/2]stp cost 150 #修改STP开销值
2.4、STP的基本概念:RPC
根路径开销,每一个非根桥设备,都要计算到达根桥的路径开销。
计算的路径开销是叠加的,一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加。
根桥的路径开销为0。
2.5、STP的基本概念:Port ID(PID / 端口ID)
每一个运行了STP的接口都会存在一个PID:
A1、ID由两部分构成的:端口优先级(4bit) + 端口编号(12bit);
A2、端口优先级会借用端口编号的高4位bit,所以优先级值的取值是16的倍数,其取值范围是0~240。
A2.1、解释如下,ID构成是这样的:
端口优先级 端口编号(GE0/0/0)
0000 0000 0000 0000
A2.2、优先级借高位后是这样的:
端口优先级 端口编号(GE0/0/0)
0000 0000 0000 0000
其中,被借走的4个高位为0不变,所以优先级的步长是从2^4=16 开始的,最大的范围是从2^5到2^8+2^7+2^6+2^5,32~240
[Huawei-GigabitEthernet0/0/2]stp port priority ?
INTEGER<0-240> Port priority, in steps of 16
A3、端口优先级值在计算时,按照端口优先级8bit,接口编号8bit来分割计算。
通过抓包,得到GE 0/0/2口的优先级值为8002:
其二进制转码为:
优先级 端口编号
二进制:1000 0000 | 0000 0010
十进制:128 | 2
[Huawei-GigabitEthernet0/0/2]dis stp interface GigabitEthernet 0/0/2
查到其优先级如下:
业务接口编号规则:
业务接口的编号规则如下
设备采用“槽位号/子卡号/接口序号”的编号规则来定义业务接口,
槽位号:表示单板所在的槽位号。
子卡号:表示单板支持的子卡号,目前单板暂不支持子卡,统一取值为0。
接口序号:表示单板上各接口的编排顺序号。
GigabitEthernet 0/0/1中的:
槽位号/交换机板块/接口号
0 / 0 / 1
2.6、STP的基本概念:BPDU
BPDU(Bridge Protocol Data Unit,网桥协议数据单元)。
STP协议工作的协议报文分为两类:
A1、配置BPDU:STP正常工作交互的报文。
TC 配置 BPDU;
TCA 配置 BPDU。
A2、TCN BPDU:STP故障情况下交互的报文。