STP 802.1D公有化标准 ieee
所有VLAN,共用一棵树(基于设备)
一、什么是STP
二、为什么要有STP,没有行不行?
三、标准有哪些?
四、角色有哪些?
五、选举机制是什么?
六、都有哪些接口?
七、接口都有什么状态?
一 、什么是STP
Spanning-tree protocol(生成树协议)
二、为什么要有STP,没有行不行?
没有,也是可以的,但是一个健全,稳定的网络,肯定是存在冗余备份的,而存在冗余部份就意味着存在环路,交换机的环路会造成广播风暴,极其占用系统负载(链路,CPU)
STP的出现,很直接的解决了这一问题,从逻辑上将冗余备份的其中一条链路进行阻塞,又不影响链路的冗余备份。
三、标准有哪些?
STP: 802.1D,公有化标准 (所有vlan共用一棵树)
RSTP: 802.1w 公有标准 快速生成树 (所有vlan 共用一棵树)
MSTP: 802.1s 公有化协议 基于实例生成树
PVST/PVST+ cisco私有协议 每vlan一棵树
Rapid pvst 快速生成树 每vlan一棵树
Mstp cisco 私有 后来为了协议标准统一,被和谐了
某种意义来讲,802.1s 和802.1w 属于802.1D协议簇
四、STP 的角色有哪些?
根桥(根交换机)
备份根桥(备份根交换机)
非根桥
根端口 root port (RP)
指定端口 desg port (DP)
阻塞端口/非指定端口 alth BLK (BDP)
五、选举机制是什么?
通过BPDU 桥协议数据单元
交换机加电,就会发送BPDU,进行下一步的选举,非根桥是转发根桥BPDU
包含,所有选举用的信息,STP mode, STP 版本
还有一个是HELLO时间,2S/一次 ,老化时间是20S
转发延迟时间,forward delay 从最开始的BLK---LSN---LRN---FWD 这整个过程叫转发延迟时间
分为两个部份:
1) 根桥的选举
2) 端口的选举
1)根桥的选举:
根据桥ID进行选举,而桥ID分为两个部份,优先级和MAC地址
@优先级,priority (4096的倍数)默认为32768 (越小越优)
如果要进行修改的话必须为4096的倍数修改,随意输入数字是不可以的
@如果优先级相同的话,比较MAC地址,(越小越优)但这里会存在一个问题
因为MAC地址是全球唯一的,不存在重复,而生产厂家生产设备的时候所有的MAC地址也是从小到大进行排列的,越早生产的设备MAC越小,会导致一个现象,一个老的设备成了根桥,负责核心的任务,这样可行吗?
答案是肯定的,都快退休了,还委以重任?
所以选择根桥的时候,通常情况下是需要人为的干预的,就是直接修改优先级的数值,0为最大
有了根桥,就一定会有次优的次根桥,如果根桥的优先级为0的话,通常情况下把备份根设置为4096。
2)根端口选举
先要记住一个定律,根端口存在非根设备上,有且只有一个,
什么意思? 就是在非根交换机上,只能一个接口是根端口,其它的另说
选举根端口共有4点/或者说是4步,相同的情况下进行下一项,肯定能够比较出来
1@,RPC(到达根设备的路径开销cost【通俗的讲可以理解为跳数】)
同样和链路的带宽有关系
10G=2
1G=4
100M=19
10M=100
图1 图2
如图1所示,如果SW7 为根桥,好么,SW8和SW9两台设备上,谁是根端口呢?
根据cost算法,sw8到根的开销=2, 那么E0/0口为根端口中
注意SW9的e0/0和e0/1,
E0/0 cost = 100
E0/1 cost = 2 那么一比较就出来了,sw9的E0/1口为根端口
(当然,现实中是不可能两个接口相差这么大的,这只是举一个例子,方便理解)
如图2所示,所有链路的开销一样,SW3 被选为ROOT,那么SW4的根端口中是哪一样?SW4的BLK又是哪一个呢?
计算COST,一定要记住,是从ROOT根桥的BPDU发出方向进行累加的,越小越优,
SW4 E0/0 - ROOT的COST 为100
SW4 e0/1- ROOT的COST为100(sw4-sw6)+100(sw6-sw5)+100(sw5-sw3)=300的COST
所以会被BLK
2@桥ID,(上游设备的桥ID)
如果COST相同,那么就比较上游设备的桥ID(MAC和优先级)
在不设置优先极的情况下,sw7的mac一定小于sw8的mac,也就是更优
所以sw9的根端口为e0/0
3@端口ID(上游设备端口号)
端口ID在stp协议中显示为128.x,从小到大进行排列
如图
可以看到 e0/0 128.1
E0/1 128.2
E0/2 128.3
以此类推,就可以知道所连接上游设备的端口号,同样,谁小谁优
4@ 接口号
当前面三个条件都相同的时候,就要比较最后一项,本地接口号(物理接口号)
谁小谁优
如图,sw1 为root
Sw4 在选择根端口的时候会比较
1 开销,机同,比下一项
2 桥ID,一个是2 一个是3 ,那肯定将e0/0设置为root port了
是不是呢?见图
Sw5在选择根端口的时候,进行比较
1 开销,相同
2 桥ID,也相同,只有SW4一个设备
3 端口ID
如拓扑图中所示,sw4的e0/2连接着sw5的e0/0,
E0/3连接着sw5的e0/1
此时对比上游设备的端口ID,看上图就可以看出来,
Sw4的e0/2 =128.3
Sw4的 e0/3=128.4
所以sw5上要将和sw4的e0/2口相连的e0/0 设置为RP(根端口)
Sw6在选择时,同样进行比较
比较cost,相同
比较桥id相同,都只有sw5
比较端口ID,只连接了一个SW5的e0/2口,比不出来
最后要比较sw6本地的接口号,谁小谁优,那么此时e0/0 要段于e0/1 ,
那么e0/0 成为root port
DP,指定端口
通常情况下,在根桥上的所有接口都是指定端口
那么在非根上怎么选举DP呢?
同样也是有选举依据的
1)到达根桥的接口开销最低的,途径交换机的根端口开销的累加【绕过交换机的反方向】
一条链路上的两个端口到达根的开销是一样的,因为累加的是根端口中的开销
2)如果开销相同,那么对比两个接口所在交换机的桥ID【优先级和MAC】
3)如果优先级再相同,那么比较发送者的PID
SW8的E0/1,反方向绕过交换机到达根的开销为100
SW10的e/0, 反方向绕过交换机到达根的开销为300,
两者相比较,小的优,那么SW8的e0/1为DP
通过这种算法,也就得知了sw9----sw11 相连的链路中 sw9 的e0/1为DP
如图
那么问题来了,
SW10 和SW11 相连的链路上谁是DP?
两者到达根的开销是一样的(反方向计算,都是200)
这时就要比较第二个选项,比较两个接口所在交换机的桥ID
此时咱们没有配置优先级,只比MAC的情况下,SW10更优,所以SW10的e0/1为DP
BLK端口(阻塞端口)
在非根交换机上,除了根端口和指定端口,剩下的就是非指定端口了
上一个拓扑中生动的讲述了STP 在实验应用中的一个选举过程,
STP是在交换机上是默认开启的,但是(傻瓜交换机是没有这个功能的)
一般情况下,我们用的是pvst/pvst+ /MSTP
针对vlan 生成树,或才是针对实例生成树,对vlan,做流量分摊
七、STP 的接口状态
20s 15s 15s
阻塞------------> 侦听------------> 学习---------------->转发
Blk listening learning forwarding
从阻塞到转发,一共需要50S的时间,这一时间,现实中表现为交换机的黄灯变为绿灯,
也就是常说的收敛完成
所有的交换机在初始的时候,都认为自己是root,会发送给全网一个BPDU信息,我是大哥,从而进行STP的侦听--学习,从而决定自己的角色还有接口的状态。
BPDU的时间间隔为2S一次
-------------------------------------------------------------
CCIE成长之路 ----- 梅利