生成树以及快速生成树


    在交换网络中,,经常存在一个问题,那就是单点故障。
        那么什么是单点故障呢
            即,同一个网段中的任何两个设备之间互通的链路,仅仅有1个
            如果这个链路出现了故障,则会导致终端设备无法通信
        
    所以呢,为了提升交换网络的稳定性,我们建议在交换设备之间添加冗余/备份链路。
        如果容易出现故障的是交换机,那就可以额外的添加备份的交换机
    
    那么问题又来了,添加额外的交换机的话,会为交换机带来不利的影响:容易形成数据环路,导致广播风暴的产生,从而会验证消耗设备资源,最终影响到网络的转发性能

    这个时候,我们针对交换网络存在的“环路”问题,我们提出的解决办法是:STP(spanning stree protocol)
    即:在众多交换机之间,运行该协议,该协议就会自动运行在所有交换机之间,计算出一个最短的并且没有环路的数据转发链路,这个链路,就叫做“数据转发树”
    之所以被称之为树,那么自然会有一个树根
    所以,在STP协议中,将所有的交换机,进行了角色划分:根交换机/非根交换机
    并且,非根交换机以后所有的工作,都是为了:快速的寻找唯一的一个,去往根交换机的,最短路径。并保持互通。那么STP的工作过程是怎么样的呢?
        

  • STP的工作原理
    • 确定交换机角色
      • 根交换机:没个交换网络中,有且只有1个
      • 非根交换机:除了根交换机以外的其他所有的交换机,都叫非根交换机
      • 原则:比较交换机的BID,越小越好
      • BID:(bridge ID)=优先级(2字节)+MAC地址(6字节)
    • 确定端口角色
      • 根端口:(Root Port):在非根交换机上,有且只有一个,距离根交换机最近的端口
      • 指定端口(Designated Port):在一个链路上,有且只有1个,距离根交换机最近的口
      • 非指定端口:除了根端口和指定端口以外,都叫做非指定端口
      • 端口选举依据(cost)开销
      • cost参数的大小,默认情况下和端口的带宽是有关系的:带宽越大,cost越小,反之越小
      • 即:沿着BPDU传递方向,所有入端口的开销值得累加和,就是当前这个交换机去往根交换机的距离
      • 查看一个接口的STP的开销: display stp interface gi0/0/x-->cost :
      • 修改一个接口的STP的开销:interface gi0/0/X--stp cost ***
      • 如果在确定交换机端口角色的时候,cost是相同,则继续比较没个BPDU的BID,越小越好
      • 如果在确定交换机端口角色的时候,BID是相同,则继续比较没个BPDU的Port ID,越小越好
      • BPDU报文中的PID,指的是该BPDU报文的出接口的PID,由两部分组成:端口优先级+端口号
      • 注意:默认情况下,STP端口的优先级,默认128.。想要修改的话,使用
      • interface gi0/0/X-->
        • stp port priority **(**必须是16的倍数)
    • 确定端口状态
      • disable :禁用
      • listening :侦听,该状态下是在侦听、收集和比较没个交换机发送过来的BPDU[需停留15秒]
      • learning:学习,在该状态下是在根端口/指定端口上,基于数据的源MAC,学习MAC地址表【15秒】
      • forwarding:转发
      • blocking :阻塞
      • 当我们在描述端口不能转发数据的时候,这个数据,指的仅仅是终端设备之间的业务数据,不包括网络设备之间的“协议数据”,比如STP协议的报文-BPDU,在交换机之间依然是可以正常转发的,无论你是根端口、指定端口、还是非指定端口;无论你是forwarding状态,还是blocking状态,都是依然可以收发BPDU的。
  • STP的工作原理(另一种描述方法)   
    • 建立一棵树
      • 任何一个交换机默认情况下,都是开启了STP协议的
      • 任何一个交换机刚开机的时候,都认为自己是根交换机,然后将自己的BPDU发送到整个交换网络。
      • 没个交换机都想更加公平的进行交换机角色选举和确定
        • 所以,交换机开机后不会立刻进行根交换机的选举,而是至少等待15S才能开始选举
        • BID越小越好,越优先称为根交换机,此时交换机角色已经确定
        • 然后,没个非根交换机开始进行选择根端口
        • 没个链路上开始进行指定端口的选举
        • 最后,剩余的端口都认定是非指定端口
        • 在这之后,会进一步确认每个端口的状态:如果是指定端口和根端口,最终进入到转发状态
        • 但是在进入到转发状态之前,也会停留15S【学习状态】,为的就是能够尽快的学习一些MAC地址表,便于进入到转发状态,可以快速的开始数据的转发。
        • 最后,根端口/指定端口,进入到了转发状态;非指定端口,进入到了“阻塞状态”
    • 维护一棵树
      • 没有环路的数据转发路径,形成以后
        • 根交换机,周期性得发送BPDU,告知全网所有的交换机,自己才是根交换机的身份,周期是2S
        • 如果一个端口在连续20S都没有收到之前的BPDU了,那么就会认为该端口连接得链路上的其他端口发生了故障
        • 所以,有时候,我们也会称这个20S为:一个BPDU在一个端口上最大得存活时间
    • 修复一棵树
      • 当任何一个交换机发现原来可以互通的链路,突然不通了,或者不通的链路,突然通了。
      • 这个时候该交换机就回立刻生成一个TCN BPDU,将这种故障信息,通过自己的根端口,一直上传到根交换机
      • 为了确保该TCN BPDU的可靠运输,发送该报文的交换机,必须得到上联交换机的确认以后,才会停止发送TCN BPDU ,否则会一直发送
      • 当TCN BPDU 被转发到根交换以后,根交换机立刻将配置BPDU种的某个BPDU中的某个标记位: TC(topolog  change)设置为1,然后发送到全网的所有交换机。
      • 当交换机收到TC为1的配置BPDU之后,会立刻删除自己的MAC地址表
  • STP的报文类型
    • STP所有的功能合特性,都是通过STP协议的各种报文,以及各种报文的各种字段来实现的
    • STP报文,叫做BPDU(Bridge protocol  data unit )桥接协议单元
    • STP的BPDU的类型
    • 配置BPDU:用于整个交换网络种的那个没有环路的转发树的“建立合维护”
    • 在该类型的BPDU中,又基于Flag标记位,细分为两种BPDU:TC BPDU,以及 TCA BPDU
    • 但是,TC合TCA BPDU只有当根交换机接收到TCN BPDU后才会发送,收到TCN BPDU的交换机会做两个动作
      • 第一,给下联交换机返回一个TAC位置位的BPDU,告知对方已经收到TCN BPDU了。然后对方就不会在发送了
      • 第二,从根端口继续向根交换机一直发送TCN BPDU

        •  一旦根交换机收到了TCN BPDU,首先回复一个TCA置位的BPDU,然后紧接着再次向所连的其他所有交换机发送一个TC置位的配置BPDU,凡是收到TC置位的配置BPDU的交换机,都会立刻删除自己的MAC地址表以及ARP表,然后重新计算生成树。
        • TCN BPDU
        • TC BPDU
        • TCA BPDU

报文格式

  •  Root ID:表示的根交换机的BID
  • Port Path Cost :表示的是发送这个BPDU的交换机,到达根交换机的开销
  • Bridge ID:表示的是发送这个BPDU的交换机BID
  • Port ID :表示的是该BPDU在哪个端口上出来的,包含了2部分(端口优先级+端口号)
  • Max Age:表示的是一个BPDU在一个端口上的最大存活时间,默认是20S
  • Hello time : 表示根交换机周期性的发送配置BPDU的时间;默认是2s
  • Forward delay :表示的是端口在“侦听状态”和“学习状态”分别停留的时间,默认是15s

字段

长度

说明

DMAC        

6字节

目的MAC地址,该字段标识帧的接收者

SMAC

6字节

源MAC地址,该字段标识帧的发送者

Length  2字节指后续的字节长度,但不包括FCS字段
Protocol Identifier2字节协议ID   == "0"
Protocol Version Identifier1字节协议版本标识符,STP为0*02,MSTP为0*03
BPDU Type1字节

BPDU 类型

0*00:STP的Configuration BPDU

0*80:STP的TCN BPDU(Topology Notification BPDU)

0*02:RSTP BPDU (Rapid Spanning-Tree)或者MST BPDU(Multiple Spanning-Tree BPDU)

Flags 1字节

标记域,对于STP:第一个bit(左边、高位)表示”TCA(拓扑改变响应)”,最后一个bit(右边、低位bit)表示“TC(拓扑改变)其他字段预留。”

对于RSTP和MSTP:

  • Bit7:TCA(Topology Change Acknowledgement)
  • Bit6:Agreement
  • Bit5:Forwarding
  • Bit4:Learning
  • Bit3和Bit2:端口角色
    • 00:未知
    • 01低位(低位为1,高位为0):Alternate /backup
    • 10(低位为0高位为1):根端口
    • 11:指定端口
  • Bit1:Proposal
  • Bit0:TC (Topology Change)
Root Identifer 8字节网桥ID都是个字节--前两个字节是网桥优先级,后6字节是往前MAC地址,对于MSTP。是指CIST的总根交换机ID
Root Path Cost4字节        根路径开销,本端口累计到根网桥的开销。对于,MSTP是指CIST外部路径开下指从本交换机所属的MSTP域到CIST根交换机的累计路径开销。CIST外部路径开销根据链路带宽计算。
Bridge Identifier        8字节        发送者BID,本交换机的Bridge ID 对于MSTP,是指CIST的域根交换机ID,即IST Master的ID ,如果总跟在这个域内,那么域根交换机ID就是总根交换机ID。
Port Identifier2字节        发送端PID,发送该BPDU的端口ID,对于MSTP,是指本端口在IST中的指定端口
Message Age         2字节该BPDU的消息年恁,以秒为单位
Max Age2字节消息老龄化,以秒为单位,超时则认为到根交换机的链路故障
Hello Time 2字节发送两个相邻 BPDU间的时间间隔,以秒为单位
Forward Delay        2字节控制Listening 和Learning状态的持续时间,以秒为单位
Version 1 Length1字节Version1 BPDU的长度,值固定为0,只在RSTP和MSTP的BPDU中出现,STP的BPDU,没有此字段
Version 3 Length         2字节Verdion3 BPDU的长度,只在MSTP的BPD中出现
MST Config ID  Format Selector 1字节

固定为0

MST Config Name32字节"域名",字符串格式
MST Config reversion     2字节非负整数

MST Config Digest 

16字节利用HMAC-MD5算法讲域中VLAN和实例的映射关系加密成16字节的摘要
CIST Internal Root Path Cost4字节CIST内部路径开销,指从本端口到ST Master交换机的累计路径开销,旨在MSTP的BPDU中出现,CIST内部路径开销根据链路带宽计算
CIST Bridge Identifier8字节CIST的指定交换机ID,只在MSTP的BPDU中出现
CIST Remading Hops1字节BPDU报文在CIST中的剩余跳数,旨在MSTP的BPDU中出现
MSTI Configuration Message (maybe absent)n*16字节

MSTI配置信息,只在MSTP的BPDU中出现,每个MSTI的配置信息占16Bytes,如果有N个MSTI就占用n*16bytes,单个MSTI Configuration Message的字段说明如下:

MSTI Flags                                                 Octet

MSTI Regional ROOT Identifier                      1

MSTI Regional Root Path Cost                      2-9

MSTI Bridge Priority                                        14

MSTI Port Priority                                            15

MSTI Remaining Hops                                     16

MSTI Flags: MSTI标志位

MSTI Regional ROOT Identifier :MSTI域根交换ID

MSTI Regional Root Path Cost :MSTI内部路径开销指从本端口          到MSTI域根交换机的累计路径开销,MSTI内部路径开销根 据链路带宽计算

MSTI Bridge Priority :本交换机在MSTI中的指定交换机的优先级

MSTI Port Priority :本交换机在MSTI中的指定端口的优先级

MSTI Remaining Hops  :BPDU报文在MSTI中的剩余跳数

FCS4字节帧校验序列FCS(Frame Check Sequence)是为接收网卡提判断是否传输错误的一种方法,如果发现错误,丢弃此帧,FCS只是通用的叫法,具体的FCS还可以细分多种校验方法,在以太帧中,FCS通常采用循环冗余校验码CRC(Cyclical Redundancy Check)

以上表格摘自华为官方网站,报文格式查询

  • STP的相关配置
    • 查看交换机上的STP信息:
      • display stp -->查看的是STP的详细信息
    • 查看交换机上的STP简要信息:
      • display stp brief -->端口角色、状态
    • 查看交换机上特定端口的STP信息:
      • display stp interface gi0/0/0x -->端口角色、状态、开销、PID,STP的初衷,本身就是用于:在交换设备之间提供冗余链路的同时,还要防止环路的发生。
    • 平时在做项目中,通常调整的无非就是根交换机的位置,目的就是为了:优化交换忘了的数据转发路径
    • 修改端口的开销值:
      • interface gi0/0/x-->stp port priority ***(16的倍数)
    • 修改端口的优先级:(默认是32768)
      • stp priority ****(必须是4096的倍数)
    • 修改交换机的STP运营模式(默认交换机运行的MSTP)
      • stp mode mstp /rstp /stp --->指定交换机的STP模式为mstp /rstp /stp
  • STP的不足以及解决方案
    • 收敛时间太慢:30s-50s
    • 网络设备的利用率太低

从而针对上述的2个不足,提出了新的觉方案:RSTP(Rapid stp -快速生成树)

思科设备上,默认使用的私有的STP协议:PVST(per-vlan stp)]

华为设备上,也可以使用私有的STP协议,叫做VBST(vlan-based STP)

以下内容摘自S300, S500, S2700, S5700, S6700 产品文档

RSTP
        为什么需要RSTP呢?

        随着局域网规模的不断增长,STP拓扑收敛速度慢的问题逐渐凸显出来,因此IEEE在2001年发布了802.1W标准,基于STP协议,定义了RSTP(Rapid Spanning Tree Protocol ).

STP协议的收敛速度慢主要体现在以下几个方面:

  • STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化
  • STP算法要求在稳定的拓扑中,由根桥主动发出配置BPDU报文,非根桥设备只能被动中继配置BPDU报文将其并传遍整个STP网络
  • 此外,STP协议也没有细致区分端口状态和端口角色,例如:
    • 从用户的角度来说,Listening、Learning 和Blocking状态都不能转发用户流量,三种状态没有区别;从使用和配置的角度来说,端口之间最本质的区别在于端口的角色,而在于端口状态。而网络协议的优劣往往取决于协议是否对各种情况加以细致区分。
  • 因此,针对STP的以上不足,RSTP所做的改进有
    • 新增了2种端口角色,删除了3种端口状态,并将端口状态和端口角色解耦,并且在配置BPDU的格式中,重复利用Flag字段,明确了端口角色。
    • 配置BPDU的处理方式发生了变化
      • 拓扑稳定后,对于非根桥设备,无论是否收到根桥传来的配置BPDU报文,都会自主地按照Hello Timer 规定的时间间隔发送配置BPDU
      • 如果一个端口在超时时间(超时时间=Hello Timer*3*Timer Factor)内没有收到上游设备发送过来的配置BPDU,那么该设备认为与此邻居之间的协商失败,而不像STP那样需要先等待一个Max Age。
      • 当一个端口收到上游的指定桥发送过来的RST BPDU报文时,该端口会将其与自身存储的RST BPDU进行比较,如果该端口存储的RST BPDU 的优先级较高,则直接丢弃收到的RST BPDU,并立即向上游设备回应自身存储的RST BPDU,当上游设备收到回应的RST BPDU后,会根据其中相应的字段立即更新自己存储的RST BPDU。由此,RSTP 处理此等BPDU报文不再依赖于任何定时器通过超时解决拓扑收敛,从而加快了拓扑收敛。
      • 引入快速收敛机制,包括Proposal/Agreement 机制、根端口快速切换机智、新增边缘端口
      • 引入多种保护功能,包括BPDU保护、跟保护、环路保护、防TC-BPDU攻击
  • RSTP的端口角色和端口状态
    • RSTP的端口角色共有4中:       
      • 根端口
      • 指定端口
      • Alternate 端口
      • Backup端口
    • 与STP相比,新增了2种端口角色
    • RSTP中根端口、指定端口的作用与STP协议中定义的根端口、指定端口的作用相同,Alternate端口和Backup端口如下表所示

分类

Alternate端口

Backup端口

从配置BPDU报文发送角度来看

由于学习到其它网桥发送的配置BPDU报文而阻塞的端口

由于学习到自己发送的配置BPDU报文而阻塞的端口

从用户流量角度来看

提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口

作为指定端口的备份,提供了另一条从根桥到相应网段的备份通路

给一个RSTP域内所有的端口分配角色的过程就是整个拓扑收敛的过程。

另外,由于端口角色的变更,配置BPDU报文格式也有了相应的改变,充分利用了STP协议报文中Flag字段,明确了端口角色:

  • Type字段:配置BPDU类型不子啊是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃
  • Flags字段,使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU。
  • 如下图所示:

 RSTP的端口状态:

  • 不同于STP的5种端口状态,RSTP将端口状态缩减位3种,根据端口是否转发用户流量和学习MAC地址,端口状态可分为以下几种:
    • Discarding:端口既不转发用户流量也不学习MAC地址
    • Learning:端口不转发用户流量但是学习MAC地址
    • Forwarding:端口既转发用户流量又学习MAC地址
  • 以下表显示了RSTP与STP端口状态的对应关系,以及各种端口角色能够具有的端口状态,因为端口状态和端口角色时没有必然联系的

                STP与RSTP端口状态角色对应表

STP端口状态RSTP端口状态端口角色
ForwardingForwarding包括根端口、指定端口
LearningLearning包括根端口、指定端口
ListeningDiscarding包括根端口、指定端口
BlockingDiscarding包括Alternate端口、Backup端口
DisabledDiscarding包括Disable端口

        RSTP如何实现快速收敛

  • RSTP的拓扑变化机制
    • 在一个运行RSTP的网络种,检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到Forwarding状态。一旦检测到拓扑发生变化,设备将进行以下处理
      • 为本交换设备的所有非边缘指定端口和根端口启动一个TC While Timer ,该计时器值时Hello Timer的两倍
      • 其他交换设备接收到RST BPDU后,清空所有端口学习到的MAC地址,除了收到SRT BPDU的端口。然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,重复上述过程
    • 这样就实现了RST BPDU在网络中的泛洪
    • 相比于STP,RSTP的一个突出优势在于快速收敛能力,而RSTP实快速收敛关键于引入了Proposal/Agreement 机制、根端口快速切换机制、边缘端口
  • Proposal/Agreement机制
    • Proposal/Agreement机制简称P/A机制,其目的是是一个指定端口尽快进入Forwarig状态。如下图所示,根桥S1和S2之间新添加了一条链路,在当前状态下,S2的另外几个端口P2是Alternate端口,P3是指定端口且处于Forwarding状态,P4是边缘端口。

新链路连接成功后,P/A机制协商过程如下:

  1. P0和P1两个端口马上都先成为指定端口,发送RST BPDU
  2. S2的P1口收到更优的RST BPDU,马上意识到自己将成为根端口,而不是指定端口,停止发送RST BPDU
  3. S1的P0进入Discarding状态,于是发送的RST BPDU中把Proposal和Agreement置位1
  4. S2收到根桥发送来的携带Proposal的RST BPDU,开始将自己的所有端口进入sync变量置位(即同步变量:临时阻塞除边缘端口外的其他端口)
  5. P2已阻塞,状态不变;P4是边缘端口,不参与运算;所以只需要阻塞非边缘指定端口P3。
  6. 各端口的sync变量置位后,P2、P3进入Discarding状态,P1进入Forwarding状态并向S1返回Agreement位置位的回应RST BPDU.
  7. 当S1判断出这是对刚刚发出的Proposal的回应,于是端口马上进入Forwarding状态。

下游设备继续执行P/A协商过程

           事实上对于STP,指定端口的选择可以很快完成,主要的速度颈瓶在于:为了避免等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少一个Forwarding Delay所有端口才能进行转发。而RSTP的主要目的就是消除这个颈瓶,通过阻塞自己的费根端口来保证不会出现环路,而使用P/A机制加快了上游端口转到Forwarding在状态的速度。

 P/A机制要求两台交换机设备之间链路必须是点对点的全双工模式,。一旦P/A协商不成功,指定端口的选择就需要等待两个Forward Delay ,协商过程于STP一样。

  • 根端口快速切换机制
    • 如果RSTP网络中一个根端口失效,那么网络种最优的Alternate端口将会成为根端口并直接进入Forwarding状态,因为通过这个Alternate端口连接的网段上必然有个指定端口可以通往根桥。如下图所示,S1为根桥,S2为备份根桥,S3的Gi0/0/2为Alternate端口,S3的根端口Gi0/0/1接口故障:
      • STP模式时,S3的Gi0/0/2会先切换成根端口并进入Listening状态,等待一个Forward Delay时间(缺省时间为15S)后进入Learning状态,继续等待一个Forward Delay 时间(缺省时间为15S)后进入Forwarding状态。
      • RSTP 模式时,S3的Gi0/0/2会切换成根端口,并直接进入Forwarding 状态
    • 相比较STP模式的接口需要等待2个Forward Delay 时间才能进入Forwarding状态,RSTP模式时的根端口快速切换机制使接口直接切换成Forwarding 状态,减少业务流量丢包。

  • 根端口的引入
    • 在RSTP里面,如果某一个指定端口位于整个网络边缘,即不在与其他交换设备连接,二而是直接与终端设备直连,这种端口叫做边缘端口
    • 边缘端口不参与RSTP运算,可以又Disable直接转到Forwarding 状态,且不经历延时,就想在端口上将STP禁止,但是一旦边缘端口收到配置BPDU,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。
  • RSTP的保护功能
    • 为保护网络运行的稳定,RSTP提供了以下几种保护功能
      • BPDU保护

        • 在RSTP网络种,正常情况下,边缘端口不会收到RSTP BPDU,启用了BPDU保护功能后,如果有人伪造RST BPDU恶意攻击交换机,边缘端口将被Error-Down
        • 如下图所示,S3上将与PC相连的端口设置为边缘端口,当边缘端口接收到RST BPDU时,交换机会自动将边缘端口设置为非边缘端口,并重进行生成树计算。当攻击者发送的RST BPDU报文种的桥优先级高于现有网络种根桥优先级时会改变当前网络拓扑,可能会导致业务终端,这是网络种一种简单的拒绝服务Dos(Denial of Service)攻击方式

交换机上启动了BPDU保护后,如果边缘端口收到RST BPDU,边缘端口将被Error-Down ,但实是边缘端口属性不变,同时通知网管系统,交换机上会出现以下日志信息:

    MSTP/4/BPDU_PROTECTION:This edged-port [port-name] that enabled BPDU-Protection will be shutdown ,beceuse it received BPDU packet!

  • 根保护

    • 由于维护人员的错误配置或者网络中的恶意攻击,网络中合法根桥有可能会受到优先级更高的RST BPDU,使得合法桥失去根地位,从而引起网络拓扑结构的错误变动,这种不合法的拓扑变化,会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。
    • 如下图所示,DerviceA和DeviceB处于网络核心层,两者间的链路带宽为1000M,DeviceA为网络中的根桥。DeviceC处于接入层,DeviceC和DeviiceA、DeviceC和DeviiceB之间的链路带宽为100M.正常情况下,DeviceB和DeviiceC之间的链路被阻塞。
    • 当DeviceD接入DeviiceC时,由于DeviceD的桥优先级高于DeviiceA,此时DeviceD会被选举为新的根桥,如果两个核心交换机DeviceA和DeviiceB之间的千兆链路被阻塞,会导致VLAN中的流量都通过两条100M的链路传输,可能会引起网络拥塞及流量丢失

此时可以在DeviceC连接DeviiceD的端口上,配置跟保护,对于启用Root保护功能的指定端口,其端口角色只能保持为指定端口,一旦启用Root保护功能的指定端口接收到优先级更高的RST BPDU时,端口将进入Discarding状态,不在转发报文,在经过一段时间(通用为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。

Root保护功能只能在指定端口上配置才生效

  • 环路保护

     在启动了环路保护功能后,如果根端口或Alternate端口长时间收吧召来自上游设备的BPDU报文时,则向网管发出通知信息(此时端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会再网络中形成环路。直到链路不在拥塞或单向链路故障恢复,端口重新受到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色状态

    • 在运行 RSTP协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的RST BPDU维持。当由于链路拥塞或单向链路故障导致这些端口收不到来自上游交换设备的RST BPDU时,此时交换设备会重新选择根端口。原先的根端口会转变为制定和端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路
    • 如下图所示,当BP2-CP1之间的链路发生拥堵时,Device由于根端口CP1在超时时间内收不到来自上游设备的BPDU报文,Alternate端口CP2转变成了根端口,根端口CP1转变成指定端口从而形成了环路
    •    
  • 交换机上会出现以下日志信息:

    • MSTP/4/LOOP_GUARD:MSTP process [process-id] Instance [instance-id]·s LOOP-Protection port [port-name] did not receice message in prescriptive time!

    • 环路保护功能只能在根端口或者Alternate端口上生效

  • 防TC-BPDU攻击
    • 交换设备在接收到TC BPDU报文后,会执行MAC地址表项和ARP表项的删除操作,如果有人伪造TC BPDU报文恶意攻击交换设备时,交换设备短时间会收到很多TC BPDU 报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大的隐患
    • 启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理TC-BPDU报文的次数可配置,如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数,对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次,这样可以避免频繁删除MAC地址表项个ARP表项,从而达到保护设备的目的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值