HCIP-7.4交换机STP生成树协议原理

1、什么是交换机生成树?

在网络中交换机等交换设备会对广播数据帧进行泛洪操作。如果出现环路,网络就会产生大量不断无效,循环的广播流,发生了“广播风暴”。交换设备的负载迅速增加,导致正常的数据帧传输受到了抑制,便会导致信道的拥塞,其结果往往是延时或丢帧,甚至网络瘫痪。
二层环路

生成树协议就是用来防止2层循环的,通过在网络上修剪出一棵无环的树形拓扑网来解决交换网络中的环路问题。

生成树协议的分类:

  • 公有协议:STP、RSTP、MSTP。
  • 思科可用协议:PVST、PVST+、RPVST、MST。
  • STP约等于PVST、RSTP约等于RPVST 、MST=MST。

现在国内网络中主要使用的是MSTP,也是华为设备默认的生成树协议。在学习MSTP先要学习STP,STP是生成树协议的基础,包括大量基础的概念和理论。

2、STP生成树

STP(Spanning Tree Protocol,生成树协议)是根据IEEE 802.1D 标准建立的,用于在局域网中消除数据链路层物理环路的协议。运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环路网络中不断增生和无限循环,避免设备由于重复接收相同的报文所造成的报文处理能力下降的问题发生。

STP采用的协议报文是BPDU(Bridge Protocol Data Unit,桥协议数据单元),也称为配置消息,BPDU中包含了足够的信息来保证设备完成生成树的计算过程。STP即是通过在设备之间传递BPDU来确定网络的拓扑结构。

基本思想:就是要生成一个稳定的树形拓扑网。

2.1、标准生成树基本计算过程(802.1D)

树的根是一台称为根桥的交换机(Root Bridge,简称为根交换机)。
从根交换机开始,逐级形成一棵树,交换机为树的节点,链路为树枝。
根交换机定时发送配置报文,非根交换机接收配置报文并转发给下一级。

整个交换网络有且只有一个根交换机每个非根交换机有且只有一个根端口每个Lan(segment)有且只有一个指定端口其他接口称之为未指定端口(或者Alternative 端口)。

生成树基本计算过程-选举根交换机
信息和参数被封装在配置BPDU(Configuration Bridge Protocol Data Unit)中,在交换机之间(trunk模式)传递。

BPDU是指桥接协议数据单元,泛指交换机之间运行的协议交互信息时使用的数据单元。配置BPDU是BPDU的一种。根桥每间隔Hello Time(默认2秒)时间周期性发出BPDU。

生成树计算的第一步是选举根交换机,根交换机的选举基于交换机标识(Bridge ID)。
交换机标识由两部分组成:两字节长度的交换机优先级和六字节长度的MAC地址。

交换机优先级是可以配置的,取值范围是0~61440,默认值为32768。

网络中交换机标识最小的成为根交换机,首先比较优先级,如果优先级相同则比较MAC地址,值越小越优先。

Bridge ID BID=优先级+MAC地址。

2.2、STP的基本概念

STP协议中定义根交换(Root Bridget)、根端口(Root Port)、指定端口(Designed Port)和路径开销(Path Cost)等概念,目的就在于通过构造一颗自然树的方法达到阻塞冗余环路的目的,同时实现链路备份和路径最优化。用于构造这棵树的算法称为生成树算法(Spanning Tree Algorithm)。

根桥(Root Bridge):具有最小桥ID的交换机是根桥(Root Bridge,简称为根交换机)。请将环路中所有交换机当中最好的一台设置为根桥交换机,以保证能够提供最好的网络性能和可靠性。

桥ID(Bridge Identifier):桥ID是桥的优先级和其MAC地址的综合数值,其中桥优先级是一个可以设定的参数。桥ID越低,则桥的优先级越高,这样可以增加其成为根桥的可能性。

指定桥(Designated Bridge):在每个网段中,到根桥的路径开销最低的桥将成为指定桥,数据包将通过它转发到该网段。当所有的交换机具有相同的根路径开销时,具有最低的桥ID的交换机会被选为指定桥。

根路径开销(Root Path Cost):一台交换机的根路径开销是根端口的路径开销与数据包经过的所有交换机的根路径开销之和。根桥的根路径开销是零。

桥优先级(Bridge Priority):是一个用户可以设定的参数,数值范围从0到32768。设定的值越小,优先级越高。交换机的桥优先级越高,才越有可能成为根桥。

根端口(Root Port):非根桥的交换机上离根桥最近的端口,负责与根桥进行通信,这个端口到根桥的路径开销最低。当多个端口具有相同的到根桥的路径开销时,具有最高端口优先级的端口会成为根端口。

指定端口(Designated Port):指定桥上向本交换机转发数据的端口,转发数据和BPDU。根交换机所有端口都是指定端口。

非指定端口:是指开销比指定端口高的端口。非指定端口将被设置为阻塞状态,不能进行转发。

端口优先级(Port Priority):数值范围从0到255,值越小,端口的优先级就越高。端口的优先级越高,才越有可能成为根端口。 默认的端口优先级为128。

路径开销(Path Cost):STP协议用于选择链路的参考值。STP协议通过计算路径开销,选择较为“强壮”的链路,阻塞多余的链路,将网络修剪成无环路的树型网络结构。

查看STP信息

<sw3>display stp brief
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1       DESI  FORWARDING      NONE
   0    GigabitEthernet0/0/2       DESI  FORWARDING      NONE 

DESI指定端口(Designated Port)

2.3、 BPDU格式及字段说明

标准生成树的BPDU帧格式及字段说明:
BPDU帧格式

Protocol identifier: 协议标识,总是为0x0000,2字节。
Version: 协议版本,STP为0x00,RSTP为0x02,MSTP为0x03,1字节。
Message type: BPDU类型 ,1字节。

  • 0x00:STP的Configuration BPDU
  • 0x80:STP的TCN BPDU(Topology Change Notification BPDU)
  • 0x02:RST BPDU(Rapid Spanning-Tree BPDU)或者MST
    Flag: 标志位,只使用了最低位和最高位,最低为TC标志,最高为TCA标志。1字节。
    Root ID: 根桥ID,由两字节的优先级和6字节MAC地址构成,8字节。
    Root path cost: 根路径开销,本端口累计到根桥的开销。4字节。
    Bridge ID: 桥ID,表示发送BPDU的桥的ID,由2字节优先级和6字节MAC地址构成,8字节。
    Port ID: 端口ID,标识发出BPDU的端口。2字节。
    Message age: BPDU生存时间,2字节。
    Maximum age: 当前BPDU的老化时间,即端口保存BPDU的最长时间,缺省值20s。2字节。
    Hello time: 根桥发送BPDU的周期,缺省值2s。2字节
    Forward delay: 表示在拓扑改变后,交换机在发送数据包前维持在监听和学习状态的时间,缺省值15s。2字节。

BPDU帧格式抓包图

2.4、 STP的选举原则

要点:比根桥ID,桥ID由2字节优先级和6字节MAC地址组成。
1、选举根桥
a. 先比根桥ID中的优先级,具有最小优先级的,此交换机定为根桥。
b. 假设优先级一样,再比根桥ID中的MAC地址。MAC地址最小的确定为根桥。

2、选举根端口:按如下顺序选举,满足条件即停止。
A、计算非根交换机到达根桥的链路开销
B、比较非根交换机的上行交换机桥ID(由优先级与MAC地址决定);
C、比较端口上所连接的上行端口的端口标识(Port Id),越小越优先。

3、选举指定端口:非根交换机与非根交换机之间连接线的两个端口中必定有一个端口为指定端口,此时比较两个非根交换机的根端口到达根桥的最低链路开销,将最低开销的非根交换机为准,其所在的连接线(为上面非根交换机与非根交换机之间连接线)的端口为指定端口,如果链路开销一样最后比较各自的桥ID即可。指定端口被标记为转发端口。可通过比较发送的BPDU;

4、 选择根端口和指定端口的BPDU帧总是从根桥向外发;

关闭与根桥要连的交换机两个端口中一个为了阻止交换环路的出现。先比带宽,如一样关闭端口号较高的那一条链路,设置为阻塞模式。

STP的选举原则

2.4.1 配置案例说明

1、选举根桥
配置根桥优先级将sw3变为根桥。
以4096的倍数来增长,0代表最大可能为根。

[sw3]stp mode stp             //生成树类型为stp
[sw3]stp priority <0-61440>   //配置sw3的优先级,越小越优先。默认32768
[sw3]stp root primary         //另一种配置直接把优先级设置为0 

使用stp root primary命令后查看接口配置
[sw3]dis curr int g0/0/1
stp intance 0 root primary 优先级配置

为便于理解以皇帝,监军,将军来说明。皇帝接收监军,将军的奏折,监军代表皇帝监视将军行为。

<sw1>dis stp
CIST Root/ERPC      :32768.4c1f-cc09-46b3 / 0   0代表自己,自己是皇帝。
CIST RegRoot/IRPC   :32768.4c1f-cc09-46b3 / 0this bridge is the root)

查看STP简要

<sw1>dis stp bri    
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1       DESI  FORWARDING      NONE   谕旨指定端口
   0    GigabitEthernet0/0/2       DESI  FORWARDING      NONE   谕旨指定端

发送皇帝上的谕旨(BPDU帧)的部门的都是指定端口。指定端口为上对下。

 <sw1>dis stp
CIST Root/ERPC      :32768.4c1f-cc09-46b3 / 10000   根的MAC是46b3
CIST RegRoot/IRPC   :32768.4c1f-cca5-1eb3 / 0   0代表自己,自己的
CIST RootPortId     :128.1      根端口ID

sw1为非根桥,这时可以看根的MAC是46b3。

查看根桥的生成树状态信息

<HUAWEI> display stp bridge root
MSTID              Root ID  Root Cost Hello Max Forward Root Port               
                                       Time Age   Delay                         
----- -------------------- ---------- ----- --- ------- -----------------       
    0 32768.4c1f-cc09-46b3          0     2  20      15 

关闭STP
关闭全局STP:

<HUAWEI> system-view
[HUAWEI] undo stp enable

关闭接口STP

<HUAWEI> system-view
[HUAWEI] interface gigabitethernet 1/0/1
[HUAWEI-GigabitEthernet1/0/1] undo stp enable

2、选举根端口RP的程序
发送监军,将军的奏折(BPDU)的部门为根端口,目的地是皇帝的指定端口。

根端口是指从一个非根交换机到根交换机总开销最小的路径所经过的本地端口。这个最小的总开销值称为交换机的根路径开销RPC(Root Path Cost)。如果这样的端口有多个,则比较端口上所连接的上行交换机的交换机标识BRIDGR ID(交换机桥ID),越小越优先,如果端口上所连接的上行交换机的交换机标识相同,则比较端口上所连接的上行端口的端口标识(Port Id),越小越优先。端口标识由两部分组成:一字节长度的端口优先级和一字节长度的端口号。一字节长度的端口优先级是可配置的,默认为128。
在这里插入图片描述

监军上报奏折有两条线,一是直接上报,二是通过将军再上报。前种方式开销是1,第二种方式开销是2,所以选择直接上报。那么监军的上报部门为根端口。
在这里插入图片描述

监军的上报部门有3个,多条线路总开销值一样,就比较Bridge ID(优先级+MAC地址),越小越好。三条路都一样,比较PORT ID端口ID,越小越好。最后确定只有一个上报部门来完成这件事。
根端口选择

<sw1>dis stp bri
   0    GigabitEthernet0/0/4    DESI  FORWARDING      NONE 谕旨的中继端口
   0    GigabitEthernet0/0/3    ROOT  FORWARDING      NONE 根端口,往皇帝传的出口

ROOT根端口,DES指定端口。
PORT ID的组成:
由端口优先级.该端口的系列号组成 128是默认端口优先级128.3 3是端口系列号。

<sw1>dis stp
Last TC occurred    :GigabitEthernet0/0/3
 Port Protocol       :Enabled
 Port Role           :Disabled Port
 Port Priority       :128
 Port Cost(Dot1T )   :Config=auto / Active=200000000
 Designated Bridge/Port   :32768.4c1f-cc09-46b3 / 128.3

3、选举指定端口DP的规则
皇帝发布谕旨(BPDU),需要从上往下传送到指定接收人,一种是直接是传送给接收人,一种是通过中间人再传送给接收人(转发数据BPDU)。传送谕旨(BPDU)部门就是指定端口。

选举原则:
A、比较总开销值。 最小的成为指定端口。 消耗越少越好。
B、如果多条线路总开销值一样,比较Bridge ID(优先级+MAC地址),越小越好。
C、A和B都一样,比较PORT ID端口ID,越小越好。

根桥(皇帝)所有端口都指定端口。

根据A、B、C三原则比较选举指定端口,SW1的g0/0/21与SW3 g0/0/1比较
选举指定端口

<sw2>dis stp bri
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/6               ALTE  DISCARDING      NONE 阻塞端口
   0    Ethernet0/0/5               ROOT  FORWARDING      NONE 根端口,往皇帝传的出口 

查看皇帝的BPDU传输,政令通畅。

<sw3>dis stp int g0/0/1
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
BPDU Sent           :3165         发送       
          TCN: 0, Config: 3165, RST: 0, MST: 0
 BPDU Received       :3           接收   
          TCN: 2, Config: 1, RST: 0, MST: 0

通过比较选举指定端口,监军的端口4可以传送皇帝的谕旨,而将军不能传送,皇帝可以直接下达谕旨给将军进行管理,也可通过监军来直接下达谕旨给将军。皇帝不能通过将军传达谕旨给监军。从而避免环路。

2.4.2 华为设备的COST值

STP为每个非根交换机选举根端口(Root Port)。交换机的每个端口都有一个端口开销(Port Cost)的参数,此参数表示数据从该端口发送时的开销值,也即出端口的开销。STP认为从一个端口接收数据是没有开销的。端口的开销和端口的带宽有关,带宽越高,开销越小,VRP平台中,百兆端口的开销值为200(华为私有)。从一个非根交换机到达根交换机的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有出端口的端口开销总和。

802.1t。
stp pathcost-standard { dot1d-1998 | dot1t | legacy }命令用来配置指定交换机上路径开销值的标准。
每个端口的路径开销也可以手动指定。此STP路径开销控制方法须谨慎使用,手动指定端口的路径开销可能会生成次优生成树拓扑。

stp cost cost命令取决于路径开销计算方法:

  • 使用华为的私有计算方法时,cost取值范围是1~200000。
  • 使用IEEE 802.1d标准方法时,cost取值范围是1~65535。
  • 使用IEEE 802.1t标准方法时,cost取值范围是1~200000000。默认

STP路径开销 cost(华为默认采用802.1t)入端口实际的开销之和。
cost计算方法

百兆=200000、千兆=20000
更改不同标准的cost值:

[SW1]stp pathcost-standard ?
  dot1d-1998  IEEE 802.1D-1998
  dot1t       IEEE 802.1T
  legacy      Legacy华为自定义

[sw2]dis stp int g0/0/2
Port Protocol :Enabled
Port Role :Designated Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=20000
千兆Active=20000

2.5、端口状态描述

端口状态描 述
Disable未启用此状态下端口不转发数据帧,不学习MAC地址表,不参与生成树计算。
Blocking阻塞状态此状态下端口不转发数据帧,不学习MAC地址表,此状态下端口接收并处理BPDU,但是不向外发送BPDU。接收并处理BPDU是证明自己活着。
Listening侦听状态此状态下端口不转发数据帧,不学习MAC地址表,只参与生成树计算,接收并发送BPDU。
Learning学习状态此状态下端口不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU。
Forwarding转发状态此状态下端口正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU

关于时间:
Hello(根桥发送BPDU的周期) 2s
MaxAge(老化时间) 20s
FwDly(表示在拓扑改变后,交换机在发送数据包前维持在监听和学习状态的时间) 15s
MaxHop(合同延续期) 20 Blocking—>Listening 20s
Blocking–>20s Listening–>15s Learnin–>15s Forwarding

查看stp接口信息

<sw3>dis stp int g0/0/2
-------[CIST Global全局 Info信息][Mode STP]-------
CIST Bridge         :32768.4c1f-ccd6-5878 
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :4096 .4c1f-cc45-0ee4 / 20000 根桥的优先级
CIST RegRoot/IRPC   :32768.4c1f-ccd6-5878 / 0   自已MAC和优先级
CIST RootPortId     :128.12     根的PortId
----[Port23(GigabitEthernet0/0/1)][DOWN]----端口g0/0/1信息
 Port Protocol       :Enabled
 Port Role           : Alternate Port   AP
 Port Priority       :128             端口优先级
 Port Cost(Dot1T )   :Config=auto / Active=20000  cost20000
 Designated Bridge/Port   :8192.4c1f-cc2d-32b8 / 128.2 指定端port id 128.2
 Port Edged          :Config=default / Active=disabled
 Point-to-point      :Config=auto / Active=false
 Transit Limit       :147 packets/hello-time
 Protection Type     :None
 Port STP Mode       :stp         模式标准STP
 Port Protocol Type  :Config=auto / Active=dot1s  端口协议dot1s
 BPDU Encapsulation  :Config=stp / Active=stp
 PortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 20
TC or TCN send      :0          发送的BPDU为0
 TC or TCN received  :34
 BPDU Sent           :2             
          TCN: 0, Config: 2, RST: 0, MST: 0
 BPDU Received       :925        接收的BPDU925    只接收不发送  
          TCN: 0, Config: 925, RST: 0, MST: 0

2.6、cost值修改

cost值修改
在有两台设备之间有多条链路冗余时,只能有一条是可用,其它的阻塞,但通过修改以下条件,可以选择哪条线路来作为可用链路。

2.6.1、非根桥设备接口下的cost值修改:

[sw2]int g0/0/11
[sw2-GigabitEthernet0/0/11]stp cost 10000
[SW2-GigabitEthernet0/0/22]dis stp bri
  0    GigabitEthernet0/0/11       ALTE  DISCARDING      NONE  原来DP现在变成AP
  0    GigabitEthernet0/0/22       ROOT  DISCARDING      NONE  cost变小走这边

BPDU从发送hello从指定端口发出,SW1SW2,从根桥出来的cost是0,到达SW2的g0/0/22的cost是20000(CIST Root/ERPC :4096 .4c1f-cc45-0ee4 / 20000)

现在有两条线路SW1的g0/0/1–>SW2 cost 20000
SW1的g0/0/22–>SW2 修改后变成10000,越小越好,走这条线路
防止环路产生,根桥出来的端口必须是DP,所以只能是SW2 0/0/11阻塞。

2.6.2、根设备接口下的优先级修改:

[sw1-GigabitEthernet0/0/1]stp port priority ?
  INTEGER<0-240>  Port priority, in steps of 1616的倍数设置。

2.6.3、优先级发生改变可能的临时环路

在这里插入图片描述
由于优先级发生改变或者其它原因,原SWA不再是根桥,SWC变成根桥。原来的SWD的E0/2由AP阻塞状态变成通信状态,变成DP,这时问题出在SWB上E0/2,由于时间关系,并没有立即从原DP转换为AP阻塞状态,还在转发数据,这时就形成环路。

解决办法,延迟SWD的E0/2由阻塞状态变成通信状态得时间,先等SWD上的E0/2先阻塞后,再打开。

2.7、BPDU(Configuration BPDU)桥接协议数据单元

STP每隔2s会发送一次BPDU报文,非根桥连续三次没有收到BPDU,表示发生故障。

BPDU分为两种,一种的配置BPDU;另一种是TCN(拓扑改变通知)。

  • 配置 BPDU,类型字段:STP----0X00 RSTP----0X02-RST BPDU MSTP----0X02-MST BPDU;
    • 配置 BPDU:周期发送,标记域的 TCA=0 TC=0;
  • TCN: BPDU 链路发生故障后发送,类型字段固定为0X80。

BPDU报文格式Root Identifier(根的ID),Root Path Cost(根路径开销),Bridge Identifier(桥ID)和Port Identifier(端口ID)四部分用于检测最优的配置BPDU,进行生成树计算。

Message age :BPDU存活时间,根桥发送是为0,每经过一台交换机会增加,就是MaxHop 20;最大20跳。

Max age:BPDU老化时间,默认是20s,最大40s。每经过一台交换机Message age+1,当Message age=Max age,则认为该BPDU失效。则此配置BPDU被认为已经过期。

合同延续期:MaxAge 20s Blocking–>20s Listening 超过20秒就down。

Hello Time默认为2秒,也即在指定端口上,配置BPDU每隔两秒发送一次。

Forward Delay默认为15秒。

2.7.1、配置BPDU的作用

选举根桥、端口角色
配置BPDU的目的MAC为组播:0180-c200-0000。
当配置BPDU只用于计算生成树,不用于传递拓 扑改变信息的时候:
Protocol Identifier(协议标识),Protocol Version Identifier(协议版本标识)和BPDU Type(BPDU类型)Flags(标志)四部分设置为全0。
在这里插入图片描述转发BPDU时会修改其SMAC为自身设备MAC,但DMAC不变(01:80:c2:00:00:00)

STP模式下的交换网络,只有根桥发送BPDU,非根桥设备负责转发BPDU。
STP的配置BPDU发送方式:
1、没有选举根桥前,所有设备都会发送配置BPDU,选举根桥后只有根桥会发送配置BPDU;
2、其它非根桥设备在收到根桥发送过来的配置BPDU后,才会触发发出配置BPDU,不会主动发;
3、非根网桥指定端口只有在接收到次优配置BPDU时,才会主动发送最优BPDU。

STP初次收敛,BPDU的作用。
STP初次收敛

1、初始状态

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

SWA收到SWB的配置消息,比较后发现自己的配置消息更优,于是将其丢弃。
SWA收到SWC的配置消息,比较后发现自己的配置消息更优,于是将其丢弃。
SWA的配置消息中的根桥和指定桥都是自己,于是认为自己就是根桥,各端口的配置消息都不作任何修改,此后便周期性地向外发送配置消息。

SWB收到SWA的配置消息,发现其比自己的配置消息更优,于是更新自己的配置消息。
SWB收到SWC的配置消息,发现自己的配置消息更优,于是将其丢弃。

SWB比较自己各端口的配置消息,发现3端口的配置消息最优,于是该端口被确定为根端口,其配置消息不变。4端口被确定为指定端口,其配置消息也被替换为计算出的配置消息,并周期性地向外发送。

网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置BPDU,其他设备收到该配置BPDU后,如果优先级比自己的配置BPDU高,则非根桥设备会根据收到的配置BPDU中携带的信息更新自己相应的端口存储的配置BPDU信息,否则会丢弃该配置BPDU。

2、根桥发生故障时,BPDU的作用。
根桥发生故障
当根桥发生故障,SWA、C会因为RP端口断开而触发重新选举根桥,直接向外发送BPDU并标识自己为根桥。

SWC原有一个阻塞端口,那么该端口需要经过20秒的老化时间转换成其它端口状态后再重新进行发送BPDU。

经过两次转发延迟时间之后(30秒)如果没有收到比自己更优的BPDU,自己成为根桥。

2.7.2、TCN(拓扑改变通知)

TCN一类简单非配置BPDU。TC和TCA是配置的置位flag的BPDU。

网络发生故障类型:

  • 根桥发生故障:
  • 非根桥拓扑变化:增加或者减少非根桥

1、非根设备故障导致拓扑结构改变进而导致MAC地址表错误:
默认情况下,MAC地址表中的动态表项生存期为300秒(5分钟)

生成树拓扑发生改变,交换机的转发路径也会改变,当MAC地址表未及时老化将导致数据转发发生错误,因此需要及时更新MAC地址表项。

解决问题的办法:当拓扑结构改变之后,通过一定的机制,使拓扑改变的信息在整网内泛洪,并修改MAC地址表的生存期为一个较短的数值,等拓扑结构稳定之后,再恢复MAC地址表的生存期。

这里通过发送TCN BPDU报文来将MAC地址表项的老化时间缩短为15s,达到及时更新MAC地址表项的目的。
非根桥拓扑变化:
非根桥拓扑变化

当SWB的3接口断开之后,4接口成为新的根端口,从SWC到达该PC 的目的地址应当修改为4,但是交换机不能检测到拓扑改变,导致MAC地址表错误,最长可导致5分钟的数据转发错误。

在向整网拓扑改变信息的过程中,共涉及三种BPDU:
1).拓扑改变通知BPDUTCN (Topology Change Notification BPDU)。非根桥设备将以Hello间隔(2s)为准,定时向RP端口发送**STP组播(01:80:C2:00:00:00)**的TCN BPDU报文,直到收到上行交换机的 拓扑改变确认配置BPDU或者拓扑改变配置BPDU 。

TCP BPDU【BPDU Type=0x80(TCN),TCN报文不会有Flags等字段信息】
在这里插入图片描述

2). 拓扑改变确认BPDUTCA(Topology Change Acknowledgment Configuration BPDU)。配置BPDU的一种,和普通配置BPDU不同的是此配置 BPDU设置了一个Flag位。用于非根交换机在接收到拓扑改变通知BPDU的指定接口上向下行交换机发送拓扑改变通知的确认信息。

标记域的TCA=1,TC=0(TCA BPDU)
注意:根桥是不会发送TCA拓扑改变确认。

3). 拓扑改变BPDUTC(Topology Change Configuration BPDU)。此配置BPDU设置了另外一个Flag位。用于从根交换机向整网泛洪拓扑改变信息,所有交换机都在自己所有的指定端口上 泛洪此BPDU。
标记域的TCA=1,TC=1或者TCA=0,TC=1(TC BPDU)
TC的报文

拓扑改变三种BPDU

TCN报文只向根桥,一级级向老总汇报,发生事故。
TCA报文由直接接收TCN的设备回复,第一个接收报警信息的上一级领导回复。
TC报文是老总向所有下属全部发时间缩短通知。

TC拓扑变更消息–清空从此接口学到的MAC地址表----具体做法不是直接清空,而是通知下游设备把MAC地址表项的老化时间更改为Forward Delay时间(15s)。然后刷新MAC地址表。

2、增加非根设备导致拓扑结构改变
增加非根设备导致拓扑结构改变

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0与1之旅

创作不易请给予一点帮助和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值