二层环路导致的问题

1、广播风暴,交换机转发BUM报文的机制导致,数据帧没有防环机制。

BUM报文是指(B: boradcast、U:未知DMAC单播帧、M:组播)
2、 mac地址表震荡,生成错误MAC地址表项, 导致转发出现错误
3、重复数据帧接收,如果存在大量的广播帧,导致网络性能下降甚至是不可用,终端设备也会消耗大量CPU资源处理广播。

STP协议的所有角色都是通过比较BPDU的参数选举出来的。
STP定义每个交换机都有一个BID来标识自己。
BID=pri+mac
pri默认值32768
pri取值有2种标准
1、0-65535
2、0-61440    华为采用0-61440,但pri取 值必须是4096倍数。
ROOT桥:发送最好BPDU的交换机。
RP(根端口) :非根桥上接收最好BPDU的端口
DP(指定端口):链路.上发送最好BPDU的端口
AP(备用端口):即不是RP也不是DP的端口,被block。
DP端口要么对着RP,要么对着AP;RP的对端一定是DP。

什么是最好的BPDU?
BPDU中4个选举参数
RID:当前根桥的BID
RPC:对于根桥来说RPC永远等于0,对于非根桥来说RPC是自己根端口到根桥的路径开销之和。
BID:发送BPDU设备的BID
PID:由端口优先级+端口id组成,优先级的取值为0-240,默认值128,取16的倍数。

最好BPDu的选举机制:
1、比较RID ,RID越小越优
2、如果RID相同,则比较RPc路径和,越小越优
3、如果RPC路径和相同,则比较BID,越小越优
4、如果BID相同,则比较PID,越小越优
5、如果PID相同,则比较自身PID (特殊场景下,比如接个HUB)

非根桥根据根端口的配置消息计算DP端口的配置消息。

STP算法实现的基本过程

  1. 初始状态

    由于每个桥都认为自己是根桥,所以在每个端口所发出的BPDU中,根桥字段都是用各自的BID,Root Path Cost字段是累计的到根桥的开销,发送者BID是自己的BID,端口PID是发送该BPDU端口的端口ID。

  2. 选择根桥

    网络初始化时,网络中所有的STP设备都认为自己是“根桥”,根桥ID为自身的设备ID。通过交换配置消息,设备之间比较根桥ID,网络中根桥ID最小的设备被选为根桥。

  3. 选择根端口和指定端口

  1. 根端口和指定端口的选择过程如表1所示。

    表1 根端口和指定端口的选择过程

    步骤

    过程

    1

    非根桥设备将接收最优配置消息(最优配置消息的选择过程如表2所示)的那个端口定为根端口

    2

    设备根据根端口的配置消息和根端口的路径开销,为每个端口计算一个指定端口配置消息:

    • 根桥ID替换为根端口的配置消息的根桥ID;
    • 根路径开销替换为根端口配置消息的根路径开销加上根端口对应的路径开销;
    • 发送者BID替换为自身设备的ID;
    • 发送端口PID替换为自身端口ID。

    3

    设备将计算出的配置消息与角色待定端口自己的配置消息进行比较:

    • 如果计算出的配置消息更优,则该端口被确定为指定端口,其配置消息也被计算出的配置消息替换,并周期性地向外发送;
    • 如果该端口自己的配置消息更优,则不更新该端口的配置消息并将该端口阻塞。该端口将不再转发数据,且只接收不发送配置消息。
    表2 最优配置消息的选择过程

    步骤

    过程

    1

    每个端口将收到的配置消息与自己的配置消息进行比较:

    • 如果收到的配置消息优先级较低,则将其直接丢弃,对自己的配置消息不进行任何处理;
    • 如果收到的配置消息优先级较高,则用该配置消息的内容将自己配置消息的内容替换掉;
    • 如果收到的配置消息和自己的一样,则将其直接丢弃。

    2

    设备将所有端口的配置消息进行比较,选出最优的配置消息

STP算法实现举例

一旦根桥、根端口和指定端口选举成功,整个树形拓扑就建立完毕了。下面结合例子说明STP算法实现的具体过程。

图1 STP算法实现过程组网图及计算后的拓扑

 交换机参数

<SW1>dis stp
-------[CIST Global Info][Mode MSTP]-------                                   stp协议的模式
CIST Bridge         :32768.4c1f-cc15-4234                                        交换机自身的BID
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20        管理员配置的时间参数
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20        设备实际实施的时间参数
CIST Root/ERPC      :32768.4c1f-cc15-2166 / 20000                           根桥BID,如果该值和自身的BID相同,则该交换机为根桥,/ERPC 根端口到根桥的RPC(路径开销),根桥为0

CIST RegRoot/IRPC   :32768.4c1f-cc15-4234 / 0        对于STP协议来说无意义,用于MSTP中
CIST RootPortId     :128.2                                               根端口(端口2),根桥为0
BPDU-Protection     :Disabled
TC or TCN received  :9
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 17h:18m:52s
Number of TC        :10

  1. 端口Up或使能了STP,会从Disabled状态进入到Blocking状态。
  2. 端口被选举为根端口或指定端口,会进入Listening状态。
  3. 端口的Forward Delay定时器超时,会进入Learning/Forwarding状态。
  4. 端口不再是根端口或指定端口时,会进入Blocking状态。
  5. 端口Down或者去使能STP时,就进入Disabled状态。

端口状态

forwarding  :转发数据,学习MAC地址,处理BPDU

learning      :不转发数据,学习MAC地址,处理BPDU

listening     :不转发数据,不学习MAC地址,处理BPDU

blocking      :不转发数据,不学习MAC地址,接受BPDU

disable       :接口被down

稳定的STP网络只有2种状态,既forwarding和blocking

一个blocking状态的RP过着DP至少需要30秒才能进入到forwarding状态

1、非根桥的RP失效,并存在AP时,AP成为新的RP,并经历30s进入转发状态。

2、非根桥的RP失效,但不存在AP时,此时交换机认为自己失去了到根桥的所有路径,于是该交          换机将自身作为根桥,发送以自己为根的BPDU;下游交换机需要等待20s将之前的BPDU老              化,   再处理该BPDU,此时需要50s恢复网络。(标准STP是需要等待20s的老化时间 ,华为        的STP改进后,不会等待20s的老化时间,而是收到该BPDU后会立即处理该BPDU)

3、非根桥的RP正常,但是因为间接链路故障导致收不到BPDU(根端口到根桥中间有个HUB,根桥到HUB之间的链路故障),是需要等待20s的老化时间后,交换机认为自己失去了到根桥的所有路径,于是该交换机将自身作为根桥,发送以自己为根的BPDU;因为RP收不到BPDU,下游交换机也是收不到BPDU的,相当于下游交换机也间接性的共同等待20s的老化时间,所以直接处理该BPDU,此时需要50s恢复网络。

STP拓扑变化机制

网络中发生拓扑变化时,例如链路中断或接口异常Down等情况,由于MAC地址的老化时间的存在(缺省为5分钟),如果不及时通知上游设备,则可能会导致上游设备的报文在这段时间内一直向一个不可达的链路发送。如图1所示,正常情况下,S1和S2之间的链路被阻塞,由A到B的流量依次流经S1、S3、S4和S2。如果S3和S4之间的链路发生故障,流量则由S1直接转发到S2,但是在S1上,仍然存在指向S3的MAC地址表项,因此在此MAC地址表项老化前,流量还会转发给S3,这样就可能导致流量的丢失。此时就需要拓扑变化机制来将拓扑的变更及时通知到整个STP网络。

图1 MAC地址未老化导致流量丢失

STP拓扑变化处理过程如图2所示。

图2 TCN的发送和TC的泛洪

  1. T点接口发生变更后,下游设备会不间断地向上游设备发送TCN BPDU报文。
  2. 上游设备收到下游设备发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文。其它端口也有可能收到TCN BPDU报文,但不会处理。
  3. 上游设备会把配置BPDU报文中的Flags的TCA=1,然后发送给下游设备,告知下游设备停止发送TCN BPDU报文。
  4. 上游设备复制一份TCN BPDU报文,向根桥方向发送。
  5. 重复步骤1、2、3、4,直到根桥收到TCN BPDU报文。
  6. 根桥把配置BPDU报文中Flags的TC=1和TCA=1后发送,TC=1是为了通知下游设备老化桥MAC地址表项,TCA=1是为了通知下游设备停止发送TCN BPDU报文。

PS:

TCA = 0       TC = 0         表示:周期性发送的BPDU(默认2秒)

TCA = 1       TC = 0         表示:确认TCN  配置BPDU(告诉下游我收到了,不要发TCN了)

TCA = 0       TC = 1         表示:TC  配置BPDU

TCA = 1       TC = 1         表示既是:确认TCN  配置BPDU,也是 TC 配置BPDU

STP协议MAC地址表刷新机制:

STP协议最早认为任何端口进入到forwarding状态或者进入disable状态时,认为STP拓扑发生变化,后来STP对拓扑发生变化的定义做出了优化:

  1. 当端口进入到forwarding状态认为拓扑发生变化(边缘端口除外),而DP端口进入disable状态不认为拓扑发生变化
  2. RP失效会认为拓扑发生变化,RP恢复到forwarding 状态后,并且有一个指定端口在转发状态,此RP也会拓扑发生变化发送TCN BPDU。

TC BPDU的缺点,容易造成MAC地址表项的提前老化(包括正确的MAC地址),造成大量的未知单播帧的泛洪;但是当边缘端口启用以后,端口会立刻进入forwarding状态,并且不会被认为拓扑发生变化,所以就不会发送TC BPDU,保证MAC地址的稳定性,减少未知单播帧的泛洪,保证网络的稳定性。

forwarding delay 作用:

1、确定listening和forwarding所需的时间。

2、收到TC BPDU报文后Mac地址表老化的时间。

只有在根桥交换机更改有效!!但是不建议修改

标准STP 是由根桥发送BPDU,非根桥不能主动发送BPDU。

华为STP根桥发送BPDU,非根桥也可以主动发送BPDU(华为从RSTP引入)

华为的STP协议引入了大量的RSTP的特点:

  1. 非根桥可以主动发送BPDU
  2. 收到次级BPDU立即老化
  3. 边缘端口(边缘端口也会发送BPDU,防止下行网络中产生环路的问题,收到自己发出的BPDU会block端口,收到其他交换机发出的BPDU会参与STP计算,实现破环,但又有临时环路的风险)

 

 为什么在监听和学习状态需要Forwarding delay 的等待时间?

监听状态的15s是为了避免STP协议在收敛过程中产生临时环路,让BPDU能有足够的时间在整个网络进行传递。

监听状态期间,MAC地址表受TC BPDU的影响会进行提前老化,清除错误的MAC地址信息,导致错误的MAC地址老化也导致空闲MAC地址老化,如果此时要转发数据帧就会导致大量未知目的MAC地址的单播帧泛洪的现象,影响网络性能,那么继续牺牲15s的收敛时间,设计出学习状态能让交换机在此期间重新构建正确的MAC地址表项,减少单播帧在STP收敛期间产生大量的泛洪行为。

基于这两种原因,STP协议的收敛是完全依赖计时器来完成的,收敛速度慢,为了解决临时环路和收敛期间单播帧泛洪,需要等待30s。

STP是单生成树,在存在多个VLAN的网络中,所有VLAN共享一棵树,导致链路利用率不高,访问路径存在次优,不合适的trunk放行配置导致部分VLAN不通。

为了解决STP收敛慢,开发出了RSTP,为了解决RSTP单树弊端,开发出了MSTP。

STP                单实例                                                                                                                        ​​​​​​​ RSTP             单实例                                                                                                                          MSTP             多实例                                                                                                                          厂家都存在私有的基于VLAN的STP,但并没有成为标准。                                                            思科        PVSTP        PVSTP+                                                                                                       华为        VBST        实现和友商PVSTP的兼容

RSTP针对STP的优化

P/A 在点到点全双工的链路上让DP和RP端口快速进入转发状态,同时也不会产生临时环路。

P/A机制协商的前提:

  1. DP端口处于discarding
  2. 点到点全双工链路
  3. DP端口对端是RP端口

DP端口处于discarding状态时,发送(P=1 ,A=1)BPDU                                                                 RP收到DP的(P=1,A=1)的BPDU后,会进行同步置位。

同步置位:discarding掉所有的非边缘端口(非边缘指点端口,RP端口)                                        边缘端口,AP端口由于不会引入额外环路,默认认为已经同步置位;                                              同步置位完成后,RP发送(P=0,A=1 )BPDU并将端口置为转发状态,上游DP收到RP的(P=0,A=1) BPDU后,认为下游的RP已经处于无环拓扑并转发状态,于是自己将端口状态立即过渡到转发状态。DP端口处于discarding状态,对端是AP端口时,AP端口不会配合DP进行P/A协商,导致DP端口30s后进入到转发状态。

注意:
DP端口处于discarding状态,对端是AP时,AP端口不会配置DP进行P/A协商,导致DP端口30s后才进入到forwarding状态,但是这并不会影响任何主机。

为什么P/A机制只能发生在点到点全双工的链路上,而且上下游最终的端口角色时DP和RP?

如果知道半双工链路上只有两台设备,可以强制启用半双工链路进行协商

两端接口敲命令: stp point-to-point {auto |force-false | force-true }

实现RSTP快速收敛的因素:

拓扑变化引起的问题:

RSTP拓扑变化机制(上图):

RSTP  BPDU

注意:当RSTP的交换机收到STP BPDU,该端口将回退为STP的端口,失去快速收敛的特性。

状态标志位组合:

端口角色标志位组合:

问:根桥上只有指定端口吗?

非也!特殊场景下 比如连接HUB的情况下会出现BP端口

边缘端口也会发送BPDU,防止下行网络中产生环路的问题:

边缘端口发送BPDU能够防环,但不能实现所有场景都能防环:

边缘端口的好处:

指定交换机:链路上DP端口所在的交换机就是这条链路的指定端口。

MSTP

MSTP配置,对于同一个多生成树区域以下三个参数必须相同,且所有拥有相同域配置的MSTP交换机必须连续:

  1. 定义MSTP域,在一个域中的交换机必须配置相同的域名
  2. 在同一个域中配置相同的修订级别
  3. 在同一个域中要有相同的instance 映射表

注意:Digest:配置摘要,长度为16字节;相同区域的交换机应当维护相同的VLAN到MST instance的映射表,可是MST配置表太大(8192字节),不适合在交换机之间相互发送,此字段是使用MD5算法从MST 配置表中算出的摘要信息。

Revision Level:修订级别,长度为两个字节,默认取值为0;由于Configuration Digest 是MST配置表的摘要信息,因此又很小的可能MST配置表不同但摘要信息却相同的情况,这会导致本来不在同一个区域的交换机认为在同一区域中,此字段是一个额外的标识字段,建议不同区域使用不同的数值,以消除上述可能错误的情况。

MSTP特点:

网工必会stp /rstp /mstp (笔记)相关推荐

  1. 【HCIE-RS 天梯路】STP RSTP MSTP

    生成树协议 STP(Spanning Tree Protocol)用于二层破环 不使用生成树协议可能会导致:       1. 广播风暴 2. MAC地址漂移 三层口没有STP 生成树协议模式:(实例 ...

  2. STP/RSTP/MSTP的概念及特点

    STP/RSTP/MSTP的概念及特点 一.STP 1 基本概念 STP(Spanning Tree Protocol)即IEEE 802.1D,其作用主要有三个,第一是eliminate logic ...

  3. STP/RSTP/MSTP帧格式、报文格式及字段说明

    STP(Spanning Tree Protocol,生成树协议)是一种二层(数据链路层)管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能.最初被广泛应用 ...

  4. 简洁版本 STP/RSTP/MSTP的区别以及各自的特点

    参考:https://blog.csdn.net/cisco_eigrp/article/details/47134357 生成树相关的几个概念STP/RSTP/MSTP STP:IEEE Std 8 ...

  5. STP/RSTP/MSTP协议简介

    STP/RSTP/MSTP协议简介 STP 一.STP协议 二.为什么要有STP协议? BPDU 一.什么是BPDU? 二.BPDU的功能 三.BPDU的类型 端口 一.端口角色 二.端口状态描述 三 ...

  6. STP/RSTP/MSTP 精华详解

    STP/RSTP/MSTP 精华详解: STP 概述 : 因为二层设备的互联,并因为交换机的转发原理,会导致物理环路的产生.这时就会使用到STP协议 STP:在有环的拓扑里面形成一个无环的逻辑拓扑(从 ...

  7. 思科ccna认证工程师NETCONF协议详解网工必看

    思科ccna认证工程师NETCONF协议详解网工必看,这些年随着SDN的热潮,一个诞生了十年之久的协议再一次引起了人们的重视,它就是NETCONF协议. 网络配置协议NETCONF(Network C ...

  8. 华为数通笔记--STP/RSTP/MSTP

    STP 背景:一种二层技术,在局域网中,为了提高设备可靠性,会增加冗余链路,但是也会造成环路的问题,STP技术就是经过协议计算阻塞某个端口,来打破环路. 基本概念: 根桥:STP网络的逻辑中心,通过H ...

  9. HCIE 面试资料-STP/RSTP/MSTP

    STP STP介绍 STP(Spanning Tree Protocol)生成树协议 有三个版本,协议版本标识符,STP为0,RSTP为2,MSTP为3. STP的作用是进行逻辑阻断,通过堵塞端口来消 ...

  10. STP/RSTP/MSTP经典分析与对比

    当前和STP相关的协议有:IEEE 802.1D(STP),802.1W(RSTP),802.1(MSTP).其中802.1D是最早关于STP的标准.RSTP(Rapid Spanning Tree ...

最新文章

  1. 下面为初学者分享一下SQL 数据库学习资料
  2. geohash vs PostGIS
  3. ewebeditor 5.2 列目录漏洞
  4. different application signatures解决方法
  5. 蓝书3.7 欧拉回路
  6. python语言key_Python语言学习:字典常用的方法
  7. mysql数据库邮箱什么类型_MySQL的数据类型介绍
  8. Python《多线程并发爬虫》
  9. 用ObjectProxy扩展模型对象
  10. 【绘图】matlab绘制图形
  11. sublime text 64位_Python学习第一步 - 用Sublime搭建Python运行环境
  12. android content provider线程安全,Android ContentProvider的线程安全(二)
  13. 让极路由给支持WDS的路由器无线桥接教程
  14. vmware vsphere出现“需要整合虚拟机磁盘”的告警处理方法(完整版)
  15. 刘强东宣布:京东减员50%,每天工作3小时!这样的未来是你想要的吗?
  16. AmazeUI图片轮播
  17. 郭盛华如今现状如何呢? 身价早过亿,网友:期待开直播
  18. 决策树--CART算法
  19. 【编程题】【Scratch二级】2021.06 绘制五彩缤纷的多瓣花
  20. nic占用率很高 Linux,linux – 许多丢弃了我的NIC数据包

热门文章

  1. 「LSTM 之父」亲笔万字长文,只为向世人证明:深度学习不是在母语为英语的地方被发明的...
  2. 九个帮你提高开发效率的现代CSS框架
  3. 华三AP(wa4320acn)wifi设置(命令行)
  4. android 钛备份,钛备份使用教程
  5. 无法登录到你的账户,通常可以通过从你的账户注销,然后重新登录
  6. 产品读书《Facebook效应:看Facebook如何打造无与伦比的社交帝国》
  7. 我在知乎上关于Laser200/310电脑的文章。
  8. 从GDPR和个保法看,为什么要做数据合规?
  9. 美林公司的尽职调查应用程序被选入Deloitte Tohmatsu的并购咨询解决方案
  10. 示波器电流探头可分为无源和有源两类,它们的区别是什么?