【STP知识点总结】

STP
一、定义:STP(Spanning Tree Protocol)是生成树协议的英文缩写,可应用于计算机网络中树形拓扑结构建立,主要作用是防止网桥网络中的冗余链路形成环路工作。但某些特定因素会导致STP失败,要排除故障可能非常困难,这取决于网络设计 [1] 。生成树协议适合所有厂商的网络设备,在配置上和体现功能强度上有所差别,但是在原理和应用效果是一致的。
二、功能介绍
生成树协议是IEEE 802.1D中定议的数据链路层协议,用于解决在网络的核心层构建冗余链路里产生的网络环路问题,通过在交换机之间传递网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),通过采用STA生成树算法选举根桥、根端口和指定端口的方式,最终将网络形成一个树形结构的网络,其中,根端口、指定端口都处于转发状态,其他端口处于禁用状态。如果网络拓扑发生改变,将重新计算生成树拓扑。生成树协议的存在,既解决了核心层网络需要冗余链路的网络健壮性要求,又解决了因为冗余链路形成的物理环路导致“广播风暴”问题 [2] 。
但是,由于协议机制本身的局限,STP保护速度慢(即使是1s的收敛速度也无法满足电信级的要求),如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的动荡。在MSTP 组成环网中,由于SDH保护倒换时间比STP协议收敛时间快的多,系统采用依然是SDH MS-SPRING或SNCP,一般倒换时间在50ms以内。但测试时部分以太网业务的倒换时间为0或小于几个毫秒,原因是内部具有较大缓存。SDH保护倒换动作对MAC层是不可见的。这两个层次的保护可以协调工作,设置一定的“拖延时间”(hold-off),一般不会出现多次倒换问题。
三、协议不足
1、拓扑收敛慢,当网络拓扑发生改变的时候,生成树协议需要50-52秒的时间才能完成拓扑收敛。
2、不能提供负载均衡的功能。当网络中出现环路的时候,生成树协议简单的将环路进行Block,这样该链路就不能进行数据包的转发,浪费网络资源。
四、端口状态编辑 语音
Blocking(阻塞状态):此时,二层端口为非指定端口,也不会参与数据帧的转发。该端口通过接收BPDU来判断根交换机的位置和根ID,以及在STP拓扑收敛结束之后,各交换机端口应该处于什么状态,在默认情况下,端口会在这种状态下停留20秒钟时间。
Listening(侦听状态):生成树此时已经根据交换机所接收到的BPDU而判断出了这个端口应该参与数据帧的转发。于是交换机端口就将不再满足于接收BPDU,而同时也开始发送自己的BPDU,并以此通告邻接的交换机该端口会在活动拓扑中参与转发数据帧的工作。在默认情况下,该端口会在这种状态下停留15秒钟的时间。
Learning(学习状态):这个二层端口准备参与数据帧的转发,并开始填写MAC表。在默认情况下,端口会在这种状态下停留15秒钟时间。
Forwarding(转发状态):这个二层端口已经成为了活动拓扑的一个组成部分,它会转发数据帧,并同时收发BPDU。
Disabled(禁用状态):这个二层端口不会参与生成树,也不会转发数据帧。
五、STP潜在故障编辑 语音
1、生成树算法不稳定
STP协议工作在第二层,在交换机端口之间传递网络协议单元获取网络拓扑,并通过STA算法阻断环路形成树形逻辑网络拓扑。但如果网络拓扑过于复杂,STA算法有时会存在失效的情况,这时根桥、根端口和指定端口的选举失败,导致环路的产生,使网络瘫痪。这一问题的根本原因理论上还无定论,多数人认为是STP协议本身不稳定的问题,比如STP生成树收敛过慢,导致网络协议单元数据包丢失过多,STA误以为网络中出现了单点故障,从而使处于阻塞状态的端口变为转发状态,网络出现环路导致网络瘫痪。此种故障出现的概率很低,但出现了很难排除。
2、端口工作方式导致端口工作模式不匹配
交换机的端口工作模式有单工(Simplex)、半双工(half-duplex)和全双工(full-duplex)三种模式,一般在配置时都采用自动协商的方式。在配置时如果将交换机一端人工设置为全双工,另一端仍然采用自动协商方式,在有些品牌的交换机中,将使通信链路在半双工模式下工作;更有一种极端的方式,将一端交换机的端口工作方式设置为全双工模式,而将链路对端交换机的端口设置为半双工模式,这都会导致双工不匹配的问题。其结果是工作在全双工模式下的端口在发送数据前不载波侦听链路是否处于空闲状态,直接发送数据,而工作在半双工模式下的端口在发送数据前先执行载波侦听且当链路处于空闲状态时才发送数据,此时,如果全双工端口持续性的有大量数据需要发送,那么半双工状态的端口将不会有数据传送给对端。STA在计算的时候,由于半双工状态的端口发送不了网络协议单元,STA会将处于阻塞状态的端口打开,从而形成环路。
3、单向链路故障
在采用光纤为通信介质的网络中,往往采用两组光纤收发链路来保证网络的可靠性和稳定性(一组通信,一组冗余),由于光纤收发器的故障、任意一组收发对中的某一条链路故障或者两组链路中的某一条链路出现了交叉连接,都会导致本端收发器能收到对端收发器发送的报文,但对端收发器收不到本端收发器发送的报文,这种故障称为单链路现象,隐蔽性高,不易排错。由于单链路故障影响了STP的网桥协议单元的发送,致使STA计算出现错误码,将本应处于阻断状态的端口转变为转发状态,从而导致环路的产生。
4、数据帧被损坏
交换机是二层通信,如果物理链路的通信质量不高(通信介质质量问题或干扰问题等),将导致数据帧在传输时被损坏,从而被丢弃。网桥协议单元在传输时因信道质量不高而损坏达到一定量后,会使STA误认为出现单点故障而将已阻断的端口打开通信。一般对于STP协议来讲,如果阻塞端口丢失网桥协议单元的状态超过50秒,就会出现故障。
5、网络设备资源不足引起故障
STP协议的执行及其网桥协议单元的处理都由网络设备(主要是交换机)的CPU来进行,如果交换机的CPU本身处理能力不强或被其他问题过渡占用,使交换机无法及时发出或接收网桥协议单元,引起STP无法正常工作的故障。
6、配置Por tFast快速端口引起的故障
在运行STP的网络中,如果将交换机上直接连接主机的端口配置为Port Fast,可以使端口直接从阻断状态转变为转发状态,从而使STP网络快速收敛。如果网络管理员在配置交换机是,将用于连接其他交换机的某个端口也设置为Port Fast,那么当该端口被启用时会直接进入转发状态,从而导致网络中短时存在环路,当环路中的数据流量相当大时,网络会瘫痪 [2] 。
其中有部分摘自百度百科https://baike.baidu.com/item/STP/2813395?fr=aladdin
生成树协议:
企业网三层架构—》冗余----》线路冗余—》二层桥接环路
导致问题:
1、 广播风暴
2、 MAC地址表翻滚 —在一台交换机上,同一个MAC地址只能映射唯一的接口;但同一个接口可以映射多个不同的MAC地址;
3、 同一数据帧的重复拷贝
4、 以上3个条件最终导致设备工作过载,导致重启保护

生成树:在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;
生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树;
存在算法: 802.1D PVST PVST+(CISCO) RSTP(802.1w) MSTP(802.1S)

一、802.1D 一个交换网络内仅存在一棵生成树实例;
交换机间使用BPDU—桥协议数据单元 – 交换机间沟通互动收发的数据

配置BPDU—只有根网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;再所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU;周期2s发送,hold time 20s;

TCN—拓扑变更消息(也是BPDU): 本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老换时间修改为15s(默认的,转发延时)

选举— 根网桥 根端口 指定端口 非指定端口(阻塞端口)

【1】 根网桥 – 在一棵生成树实例中,有且仅有一台交换机为root;
BPDU中的 桥ID来决定
桥ID= 网桥优先级(0-65535公有) 默认32768 + MAC地址(只有存在svi接口的交换机才拥有mac地址,若存在多个mac选数值最小)
根网桥的选举 先比较优先级,小优; 若优先级相同,比较mac,数值小优;

【2】 根端口—在每台非根网桥上,有且仅有一个接口;本地离根网桥最近的接口(最短、星型),接收来自根网桥的BPDU,转发用户的流量(该接口不阻塞)

规则:
1、比较从根网桥发出后,通过该接口进入时最小的cost值;
2、入向cost值相同,比较该接口对端设备的BID,小优
3、对端BID也相同,比较该接口对端设备的接口的PID;先优先级小,若优先级一致,编号小
4、连对端PID也相同,比较本地PID,小优;
PID=端口ID 接口优先级(0-240,步长16,默认128) 接口编号

【3】 指定端口,在每一段存在STP的物理链路上,有且仅有一个;转发来自根网桥的BPDU,同时可以转发用户流量(不阻塞);默认根网桥上所有接口为指定端口;
1、比较从根网桥发出后,通过该接口进入这段链路时的cost值最小(出向)
2、若出向cost值相同,必须本地的BID,小优;
3、本地BID相同,比较本地的PID;
4、本地PID,相同,直接阻塞该端口;
【4】非指定端口(阻塞端口)当以上所有角色全部选举完成后,剩余没有任何角色的接口为非指定;
该接口逻辑阻塞,实际可以接收到信息,但不转发;

cost值:不同带宽 存在不同cost
802.1d标准: 802.1T标准
10M = 100 1000M= 20000
100M=19 100M=200000
1000M=4
10000M=2

100000M=1

[SWA]stp pathcost-standard ? 默认华为使用802.1t标准
dot1d-1998 IEEE 802.1D-1998
dot1t IEEE 802.1T
legacy Legacy

生成协议中,至少应该将根网桥干涉到汇聚层处;

接口状态:
down:没有BPDU收发,一旦可以进行BPDU收发进入下一状态
侦听:强制15s;所有交换机进行BPDU收发,选举所有角色;接口角色为非指定端口直接进入阻塞状态;
若为指定端口和根端口进入下一状态;
学习:强制15s; 指定端口和根端口学习所有接口连接设备的MAC地址,生成MAC表;之后进入下一状
态;
转发:指端端口和根端口进入,可以转发用户报文;
阻塞:逻辑阻塞;
注:只有到接口进入到转发状态后,才能为用户转发数据报文,之前的30s不能转发任何数据;

收敛时间:
初次收敛—30s = 15侦听+15s学习
结构变化:
存在直连检测:本地存在阻塞端口,若其他端口断开,该阻塞端口马上进入15是侦听(选举);结果若为
启用,那么将再进入15s学习—总30s
没有直连检测:本地不存在阻塞端口,若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s hold time计时,到时时阻塞接口进入15s侦听,15s学习=总50s

802.1D 缺点:
1、收敛慢
2、链路利用率低

802.1配置命令:
[sw1]stp mode stp 修改为802.1d算法,当下华为默认为MSTP;
[sw1]stp priority 4096 修改网桥优先级

[sw1-GigabitEthernet0/0/1]stp cost ? 修改接口cost值
INTEGER<1-200000000> Port path cost

[sw1-GigabitEthernet0/0/1]stp port priority ? 修改接口优先级
INTEGER<0-240> Port priority, in steps of 16
二、PVST cisco私有 基于vlan的生成树协议
在每个vlan内,存在一棵树,每个树的工作原理同802.1d一致;不同vlan的BPDU区别在于优先级;
优先级=4096倍数+vlan id 人为仅可修改4096倍数备份,且只能修改为4096的整倍
仅支持 trunk干道封装为ISL(cisco私有封装)

三、PVST + 在PVST的基础,兼容802.1q的trunk封装;且设计了部分的加速;
端口加速(进入层连接用户的接口) 上行链路加速-针对直连检测 骨干加速—针对次优BPDU
缺点:1、收敛慢(加速不彻底) 2、树多(仅cisco存在单独的芯片,友商无法负荷)

四、快速生成树
cisco的RSTP — 基于vlan的快速生成树 - 一个vlan一棵树 pvst+的升级
公有RSTP(802.1w) — 整个交换网络一棵树 802.1d的升级
快速的原理:
1、取消了计时器,而是在一个状态工作完成后,直接进入下一状态;
2、分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位
3、BPDU的保活为6s;hello time 2s;
4、将端口加速(边缘接口)、上行链路加速、骨干加速集成了
5、兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;
当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;

切记:接口默认为半双工时,即便允许RSTP,依然基于慢速的802.1D算法来收敛;
[sw1]stp mode rstp
边缘接口—用于连接PC的接口,一旦被设定为边缘接口;将不再进行BPDU的发送,且不进行STP的收敛,直接为转发状态; 但若该接口收到了对端的BPDU,将失去边缘特性,重新正常收敛;
[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp edged-port enable

[sw1]stp priority ? 修改网桥优先级
INTEGER<0-61440> Bridge priority, in steps of 4096

[sw1]stp root ? 快速定义根网桥角色
primary Primary root switch
secondary Secondary root switch

[sw1-GigabitEthernet0/0/1]stp port priority ? 修改接口优先级
INTEGER<0-240> Port priority, in steps of 16

[sw1-GigabitEthernet0/0/1]stp cost ? 修改接口cost
INTEGER<1-200000000> Port path cost

五、MSTP/MST/802.1S 华为设备默认使用该协议
继承了快速生成树的基础; 将多个vlan放置于一个组内,基于每个组一棵生成树;
不同组间的BPDU中优先级= 4096倍数+组号
[r1]stp mode mstp
默认存在组0,且所有vlan默认处于该组;优先级= 32768+0
分组
[sw1]stp enable
[sw1]stp region-configuration
[sw1-mst-region]region-name a 所有设备应在一个组内
[sw1-mst-region]instance 1 vlan 1 to 5
[sw1-mst-region]instance 2 vlan 6 to 10
[sw1-mst-region]active region-configuration 激活当前配置(必须配置该指令)
切记:若将创建某个组,但该组内的vlan,在本交换机上没有创建,同时没有为该vlan服务的接口;该组将没有任何信息;整个交换网络中所有设备的分组信息必须完全一致;
定义本地为组1 的主根,组2 的备份根
stp instance 1 root primary 优先级修改为0
stp instance 2 root secondary 优先级修改为4096

[sw1]stp instance 1 priority ?
INTEGER<0-61440> Bridge priority, in steps of 4096

[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp instance 1 cost ?
INTEGER<1-200000000> Port path cost

[sw1-GigabitEthernet0/0/1]stp instance 1 port priority ?
INTEGER<0-240> Port priority, in steps of 16

三层架构—冗余— 线路冗余 设备冗余 网关冗余 电源冗余(UPS)

线路冗余—二层网络桥接环路
因为路由器的路由表是有相对完善的计算所得,且存在防环规则;故路由器物理链路上实施备份时,一般不会出现环路;
但交换转发数据依赖MAC表(CAM表),该表的生成规则非常简单(记录产生),没有防环设计,故只要交换机使用链路备份,就将出现二层环路;
CAM:将MAC地址+接口编号+VLAN ID进行哈希运算后,存储的哈希值;

二层环路导致的问题:
1、 广播风暴
2、 MAC地址表翻滚 — MAC地址在交换机中的刷新时间为5min,一个接口可以对应多个MAC;但一台交换机上同一MAC地址只能对应一个接口;
3、 同一数据帧的重复拷贝

生成树协议:在一个二层交换网络,逻辑的阻塞部分接口;当最佳路径故障时,自动疏通部分接口来实现链路备份
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值