STP生成树

基础概念

以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为解决交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)。

二层环路带来的问题:1.广播风暴 2.MAC地址漂移

MAC地址漂移或震荡说明:

[SW2]Sep 4 2023 21:16:46-08:00 SW2 DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25.191.3.1 configurations have been changed. The current change number is 5, the change loop count is 0, and the maximum number of records is 4095.Sep 4 2023 21:18:19-08:00 SW2 L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25.160.3.7 MAC move detected, VlanId = 1, MacAddress = 5489-9860-31c1, Original-Port = GE0/0/2, Flapping port = GE0/0/1. Please check the network accessed to flapping port.

常见环路主要分为二层环路和三层环路。

二层环路主要因为网络中部署了二层冗余环境,或人为的误接线缆导致,可以通过借助特定的协议或机制实现二层防环;

三层环路主要因为路由环路,可以通过动态路由协议防环和IP报文头部中的TTL字段用于防止报文被无止尽地转发。

运行STP协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某个接口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降。

STP工作在接入层和汇聚层之间

STP中重要的基本概念

2.1 STP的基本概念:桥ID

IEEE 802.1D标准中规定BID由16位的桥优先级(Bridge Priority)与桥MAC地址构成。

每一台运行STP的交换机都拥有一个唯一的BID。BID桥优先级占据高16bit,其余的低48bit是桥MAC地址。

在STP网络中,BID最小的设备会被选举为根桥。在STP中,每一台交换机都有一个标示符,叫做Bridge ID或者桥ID,桥ID由16位的桥优先级(BridgePriority)和48位的MAC地址构成。

在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768,可以修改但是修改值必须为4096的倍数。

优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。

2.2 STP的基本概念:根桥

在BID的比较过程中,首先比较桥优先级,优先级的值越小,则越优先,拥有最小优先级值的交换机会成为根桥;如果优先级相等,那么再比较MAC地址,拥有最小MAC地址的交换机会成为根桥。

2.3 STP的基本概念:Cost

每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。

接口的缺省Cost除了与其速率、工作模式有关,还与交换机使用的STP Cost计算方法有关。

接口带宽越大,则Cost值越小。

用户也可以根据需要通过命令调整接口的Cost。

缺省情况下,华为交换机使用IEEE 802.1t标准来计算路径开销。

2.4 STP的基本概念:根路径开销(Root Path Cost)

在STP的拓扑计算过程中,一个非常重要的环节就是“丈量”交换机某个接口到根桥的“成本”,也即RPC。

一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加。

根桥的根路径开销是0

2.5 STP的基本概念:Port ID

运行STP的交换机使用接口ID来标识每个接口,接口ID主要用于在特定场景下选举指定接口。

接口ID由两部分构成的,高4bit是接口优先级,低12bit是接口编号。

激活STP的接口会维护一个缺省的接口优先级,在华为交换机上,该值为128。用户可以根据实际需要,通过命令修改该优先级。

运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍

2.6 STP的基本概念:BPDU

BPDU是STP能够正常工作的根本。

BPDU是STP的协议报文。STP交换机之间会交互BPDU报文,这些BPDU报文携带着一些重要信息,正是基于这些信息,STP才能够顺利工作。

BPDU分为两种类型:配置BPDU(Configuration BPDU)和TCN BPDU(Topology Change NotificationBPDU)

配置BPDU是STP进行拓扑计算的关键;TCN BPDU只在网络拓扑发生变更时才会被触发

配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU

TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知

抓包看一下报文

STP选举规则

1.STP操作:

1、选举一个根桥。

2、每个非根交换机选举一个根端口。

3、每个网段选举一个指定端口。

4、阻塞非根、非指定端口。

2.STP中定义了三种端口角色:指定端口,根端口和预备端口。

指定端口(DP)是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。(发送BPDU报文)

根端口(RP)是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。(接收BPDU报文)

如果一个端口既不是指定端口也不是根端口,则此端口为预备端口(AP)。预备端口将被阻塞。

3.根桥的选举规则:

就是相互发送BPDU报文,比较BID,最小的即为根桥;

4.根端口的选举过程:

1、交换机有多个端口接入网络,各个端口都会收到BPDU报文,报文中会携带“RootID、RPC、BID、PID”等关键字段,端口会针对这些字段进行PK。

2、首先比较根路径开销(RPC),STP协议把根路径开销作为确定根端口的重要依据。RPC值越小,越优选,因此交换机会选RPC最小的端口作为根端口。

3、当RPC相同时,比较上行交换机的BID,即比较交换机各个端口收到的BPDU中的BID,值越小,越优选,因此交换机会选上行设备BID最小的端口作为根端口。

4、当上行交换机BID相同时,比较上行交换机的PID,即比较交换机各个端口收到的BPDU中的PID,值越小,越优先,因此交换机会选上行设备PID最小的端口作为根端口。

5、当上行交换机的PID相同时,则比较本地交换机的PID,即比较本端交换机各个端口各自的PID,值越小,越优先,因此交换机会选端口PID最小的端口作为根端口。

5.DP指定端口的选举:

根接口选举出来后,非根桥会使用其在该接口上收到的最优BPDU进行计算,然后将计算得到的配置BPDU与除了根接口之外的其他所有接口所收到的配置BPDU进行比较:

如果前者更优,则该接口为指定接口;

如果后者更优,则该接口为非指定接口。一般情况下,根桥的所有接口都是指定接口。

在每条链路上选举一个指定接口

选举过程:

指定端口也是通过比较RPC来确定的,选择RPC最小的作为指定端口,如果RPC相同,则比较BID和PID。

1、首先比较根路径开销(RPC),值越小,越优选,因此交换机会选RPC最小的端口作为指定端口。

2、若RPC相等,则比较链路两端交换机的BID,值越小,越优选,因此交换机会选BID最小的交换机的端口作为指定端口。

3、若BID相等,则比较链路两端端口的PID,值越小,越优选,因此交换机会选PID最小的交换机的端口作为指定端口。

实验

分析端口角色

我们先预配置一下,让SW1成为根桥,SW2是备用根桥,所有交换机运行STP(华为交换机默认是MSTP),并修改主机名

//SW1的配置
<Huawei>sys

[Huawei]sys SW1
    
[SW1]stp mode stp //修改STP模式为STP
Info: This operation may take a few seconds. Please wait for a moment...done.

[SW1]stp priority 0 //修改SW1为根桥,优先级是0

//SW2的配置
<Huawei>
<Huawei>sys

[Huawei]sys SW2

[SW2]stp mode stp 
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW2]stp priority 4096

//SW3的配置
<Huawei>sys
[Huawei]sys SW3
[SW3]stp mode stp 
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW3]

//SW4的配置
<Huawei>sys
[Huawei]sys SW4
[SW4]stp mode stp
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW4]

//SW5的配置
<Huawei>sys
[Huawei]sys SW5
[SW5]stp mode stp
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW5]

由于我们刚刚改过了网桥的优先级,SW1的优先级是0,SW2是4096,其他都是默认值32768,所以根桥就是SW1。如果我们没有改优先级那么就是MAC地址最小的那个

我们此时可以dis stp验证一下

[SW1]display bridge mac-address //查看SW1的网桥MAC地址
System bridge MAC address: 4c1f-ccc4-448c

[SW1]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :0    .4c1f-ccc4-448c
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-ccc4-448c / 0 //这就是根桥,显示的是SW1,后面一个字段是RPC
CIST RegRoot/IRPC   :0    .4c1f-ccc4-448c / 0 
CIST RootPortId     :0.0
BPDU-Protection     :Disabled
TC or TCN received  :55
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 0h:5m:16s
Number of TC        :14
Last TC occurred    :GigabitEthernet0/0/2
----[Port1(GigabitEthernet0/0/1)][FORWARDING]----
 Port Protocol       :Enabled
 Port Role           :Designated Port
 Port Priority       :128 //接口优先级,默认128
 Port Cost(Dot1T )   :Config=auto / Active=20000 //PID
 Designated Bridge/Port   :0.4c1f-ccc4-448c / 128.1
 Port Edged          :Config=default / Active=disabled
 Point-to-point      :Config=auto / Active=true
 Transit Limit       :147 packets/hello-time
 Protection Type     :None
 Port STP Mode       :STP 
 Port Protocol Type  :Config=auto / Active=dot1s
 BPDU Encapsulation  :Config=stp / Active=stp
 PortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 20
 TC or TCN send      :92
 TC or TCN received  :22
 BPDU Sent           :257             
          TCN: 1, Config: 256, RST: 0, MST: 0
 BPDU Received       :24             
          TCN: 19, Config: 5, RST: 0, MST: 0
----[Port2(GigabitEthernet0/0/2)][FORWARDING]----
 Port Protocol       :Enabled
 Port Role           :Designated Port
 Port Priority       :128
 Port Cost(Dot1T )   :Config=auto / Active=20000
 Designated Bridge/Port   :0.4c1f-ccc4-448c / 128.2
 Port Edged          :Config=default / Active=disabled
 Point-to-point      :Config=auto / Active=true
 Transit Limit       :147 packets/hello-time
 Protection Type     :None
 Port STP Mode       :STP 
 Port Protocol Type  :Config=auto / Active=dot1s
 BPDU Encapsulation  :Config=stp / Active=stp
 PortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 20
 TC or TCN send      :90
 TC or TCN received  :22
 BPDU Sent           :256             
          TCN: 0, Config: 256, RST: 0, MST: 0
 BPDU Received       :26             
          TCN: 20, Config: 6, RST: 0, MST: 0

此时根桥已经选举出来了,所以根桥2秒发送一次BPDU,其他设备接收后,与自己的条件PK,PK完之后再修改自己的BID字段,RPC,PID,Message,Age后发出,我们对比一个报文正式分再析谁是RP

我们在SW1的GE0/0/1和SW2的GE0/0/2分别抓包

对比这两个报文的方框部分,通过根桥发过来的BPDU,然后SW2对比后,修改BPDU发出

我们该比较RP(根端口)了,由于每台交换机只有一个根端口我们一个个判段,SW1是根桥所以GE0/0/1和GE0/0/2都是DP(指定端口,因为他要发送BPDU报文),我们先看SW2,离SW1最近的端口是GE0/0/1,因为如果是GE0/0/2的话要加上SW3的GE0/0/1和SW2的GE0/0/2的开销,加起来是4W,而GE0/0/1是2W,所以SW2中GE0/0/1是RP,再来看SW3的RP是谁,因为GE0/0/1离SW1最近,它的RPC是2W,而GE0/0/2是4W(SW2的GE0/0/1+SW3GE0/0/2),所以SW3的RP是GE0/0/1,再分析SW4的,这个时候SW4的GE0/0/1和GE0/0/2的RPC都是4W,因为到SW4的GE0/0/1经过了SW1的GE0/0/1和SW4的GE0/0/1,到SW4的GE0/0/2经过了SW3的GE0/0/1和SW4的GE0/0/2,这个时候我们就得比较上行交换机的BID,由于SW2的网桥优先级是4096,SW3的网桥优先级是32768,所以SW4的GE0/0/1胜出,成为RP,我们再看SW5,这个时候根桥到SW5的GE0/0/1和GE0/0/2的RPC都是4W,原因和上面同理,这时比较上行交换机的BID,发现都是SW3,是一样的,这个时候就要比较上行交换机的PID,由于我们没改过交换机PID的优先级,所以SW3的GE0/0/4和GE0/0/5都是128,接下来比接口的大小,明显GE0/0/4比GE0/0/5小,所以SW5的GE0/0/1就是RP。这里所有的RP都选举完了。

我们该比较DP(指定端口)了,每条链路上只能有一个DP,所以我们这个时候就要看链路了,SW1的两个接口不用说都是DP因为他是根桥要发送BPDU,所以先SW2的GE0/0/2和SW3的GE0/0/2这条链路要选取DP,由于SW2的RPC和SW3的RPC都是2W,所以接下来比两端交换机的BID,SW2的BID是4096,SW3的BID是32768,所以SW2的GE0/0/2是DP,我们再看SW2GE0/0/3和GE0/0/1这条链路上,因为到SW2的GE0/0/3口的RPC是2W,而到SW4的GE0/0/1的RPC是4W,所以SW2的GE0/0/3胜出(也有个小技巧,SW4GE0/0/1是RP,所以SW2的GE0/0/3肯定是DP,因为DP发送BPDU,RP接受BPDU),我们再看SW3的GE0/0/3和SW4的GE0/0/2的这条链路上,由于到SW3的RPC是2W,到SW4的RPC是4W,所以SW3的GE0/0/3成为DP,我们接着看SW3的GE0/0/4和SW5的GE0/0/1这条链路,由于到SW3的RPC是2W,到SW5的RPC是4W所以SW3的GE0/0/4是DP,再看SW3的GE0/0/5和SW5的GE0/0/2这条链路,由于到SW3的RPC是2W,到SW5的RPC是4W所以SW3的GE0/0/5是DP。这里所有的DP都选举完了

剩下的全是AP(阻塞端口):SW3的GE0/0/2,SW4的GE0/0/2,SW5的GE0/0/2

我们验证一下

//SW1的信息
<SW1>display stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1        DESI  FORWARDING      NONE
   0    GigabitEthernet0/0/2        DESI  FORWARDING      NONE
<SW1>

//SW2的信息
<SW2>display stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE
   0    GigabitEthernet0/0/2        DESI  FORWARDING      NONE
   0    GigabitEthernet0/0/3        DESI  FORWARDING      NONE
<SW2>

//SW3的信息
<SW3>display stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE
   0    GigabitEthernet0/0/2        ALTE  DISCARDING      NONE
   0    GigabitEthernet0/0/3        DESI  FORWARDING      NONE
   0    GigabitEthernet0/0/4        DESI  FORWARDING      NONE
   0    GigabitEthernet0/0/5        DESI  FORWARDING      NONE
<SW3>

//SW4的信息
<SW4>dis stp b
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE
   0    GigabitEthernet0/0/2        ALTE  DISCARDING      NONE
<SW4>

//SW5的信息
<SW5>display stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE
   0    GigabitEthernet0/0/2        ALTE  DISCARDING      NONE
<SW5>

 我们分析的是对的

两个特殊的小实验

第一个

我们先做初始配置,将SW6的设置为根桥,所有交换机运行STP协议,并改名

//SW6的配置
<Huawei>sys
[Huawei]sys SW6
[SW6]stp mode stp 
Info: This operation may take a few seconds. Please wait for a moment...done.   
[SW6]stp priority 0
[SW6]

//SW7的配置
<Huawei>sys
[Huawei]sys SW7
[SW7]stp mode stp 
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW7]

 我们来分析,HUB的作用就是复制流量的,首先SW6是根桥,所以GE0/0/1是DP不用说,我们看SW7谁是DP谁是AP,首先我们比较RPC,发现SW7的两个端口的RPC都是2W,接着比上行交换机的BID,发现都是SW6一样的,再比上行交换机的PID发现也是一样的都是SW6的GE0/0/1,最后我们比本地交换机的PID,我们没改过SW7的接口优先级,所以都是128,但是GE0/0/1比GE0/0/2小,所以RP就是SW7的GE0/0/1,GE0/0/2是AP。

第二个

我们先做初始配置,将SW6的设置为根桥,所有交换机运行STP协议,并改名

//SW6的配置
<Huawei>sys
[Huawei]sys SW6
[SW6]stp mode stp 
Info: This operation may take a few seconds. Please wait for a moment...done. 
[SW6]stp priority 0
[SW6]

//SW7的配置
<Huawei>sys
[Huawei]sys SW7
[SW7]stp mode stp 
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW7]

 很显然SW6是根桥所以SW6的GE0/0/1是DP,由于SW7的GE0/0/1离SW6最近所以是RP,那么下面的链路要选举DP,我们发现根桥到SW7GE0/0/2和GE0/0/3的RPC相同,所以比较两端链路的BID,但是都是SW7,只能比较链路两端的PID,由于优先级没改,SW7的GE0/0/2小于SW7的GE0/0/3,所以DP就是SW7的GE0/0/2,GE0/0/3变成BP。

STP接口状态

Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。

Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路(STP协议没有完全收敛)。

Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。(STP端口角色选举阶段)

Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。

Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。

交换机刚上电时,端口先从禁用状态变成阻塞状态,然后到侦听状态选取根桥(根桥选举出来,别的交换机经过计算然后转发)和端口角色,然后进入学习状态学习MAC地址表,最后进入转发状态。

RP接收BPDU数据帧,可以转发业务报文

DP发送BPDU数据帧,可以转发业务报文

AP只能接受BPDU数据帧,不能转发业务报文

侦听状态和学习状态的等待时间都是一个Forwarding Delay的时间(15s)

通过三种故障分析STP的收敛时间

5.1第一种:根桥故障

在稳定的STP网络,非根桥会定期收到来自根桥的BPDU报文。

如果根桥发生了故障,停止发送BPDU,下游交换机就无法收到来自根桥的BPDU报文。

如果下游交换机一直收不到BPDU报文,MaxAge计时器(缺省: 20s)就会超时,从而导致已经收到的BPDU报文失效,此时,非根桥会互相发送配置BPDU,重新选举新的根桥。

端口状态:

由于SW3的RP收不到根桥的BPDU,SW3的预备端口,20s后会从Blocking状态进入到Listening状态(此时SW2和SW3都认为自己是根,通过15s的侦听时间来选取根交换机和端口角色),再进入Learning状态,最终进入到Forwarding状态,进行用户流量的转发。

收敛时间:

根桥故障会导致50s左右的恢复时间。(20s+15+15s)

5.2第二种:AP直连链路故障(RP和AP在一台交换机时)

当两台交换机间用两条链路互连时,其中一条是主用链路,另一条为备用链路。//为什么AP端口就是用来替代DP端口的呢(由于AP和RP的作用都是接收BPDU数据帧,当一个RP听不到时,SW3可以通过从SW1到SW2的AP端口接收BPDU数据帧)

当网络稳定时,交换机SW3检测到根端口的链路发生故障,则其备用端口会进入用户流量转发状态。

端口状态:

备用端口会从Blocking状态,迁移到Listening-Learning-Forwarding状态。

收敛时间:

直连链路故障,备用端口会经过30s后恢复转发状态。(两个Forward Delay的时间)

5.3第三种:AP非直连链路故障

在稳定的STP网络,非根桥会定期收到来自根桥的BPDU报文。

若SW1与SW2之间的链路发生了某种故障(非物理故障),因此SW2一直收不到来自根桥SW1的BPDU报文,MaxAge计时器(缺省: 20s)就会超时,从而导致已经收到的BPDU报文失效。

此时,非根桥SW2会认为根桥失效,并且认为自己是根桥,从而发送自己的配置BPDU给SW3,通知SW3自己是新的根桥。

在此期间,SW3的的RP端口收到的BPDU由于SW2发出的BPDU,AP端口进入到Listening状态,开始向SW2“转发”从上游发来的包含根桥ID的BPDU。

再进行STP重新计算,SW2发现SW3发来的BPDU更优,就放弃宣称自己是根桥并重新确定端口角色。

端口状态:

SW3预备端口20s后会从Blocking状态进入到Listening状态,再进入Learning状态,最终进入到Forwarding状态,进行用户流量的转发。

收敛时间:

非直连故障会导致50s左右的恢复时间。(20s+15s+15s)

TCN BPDU报文的交互过程及作用

下游设备发现拓扑变化时,会向上游设备发送TCN BPDU报文,上游设备会回复TC ACK置位的配置BPDU报文进行确认,并复制TCN BPDU报文继续向上转发,直至根桥;

根桥收到TCN BPDU报文后,会回复TC ACK 及TC置位的配置BPDU,通知所有交换机将MAC地址表的老化时间由原来的300S,缩短到15S;加速MAC地址表老化;

6.1我们使用EVE做实验理解TCN BPDU

此场景SW1为根交换机,SW2为备根,我们模拟直联链路故障,将SW3的GE0/1口shutdown,抓包分析

//SW1配置
Switch#conf t
Switch(config)#hostname SW1
SW1(config)#

//SW2配置
Switch#conf t
Switch(config)#hostname SW2
SW2(config)#

//SW3配置
Switch#conf t
Switch(config)#hostname SW3
SW3(config)#

 我们在SW3的GE0/0抓包,然后查看SW3的MAC地址表老化时间有没有刷新成15s

SW3(config)#int gi 0/1
SW3(config-if)#shutdown 
*Sep  9 08:49:18.911: %LINK-5-CHANGED: Interface GigabitEthernet0/1, changed state to administratively down
*Sep  9 08:49:19.911: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to down

查看报文

SW3的gi0/0此时发送一个TCN的报文

SW2转发SW1的配置BPDU的TC ACK的置位1的报文,且TC为置为1,通告SW3的MAC地址表老化时间为15s(实际上应该是SW2还会回一个配置BPDU的TC ACK的置位1的报文,这里可能没抓到)

SW2转发SW1的配置BPDU,TC位置为为1的报文,通知SW3

等待整个生成树收敛之后又会变成300s

边缘端口

边缘端口:一般用于和用户终端连接的端口,配置后,可以不用经过端口状态的相关过程,直接进入转发状态;省去30S的时间;

边缘端口特性:一旦收到BPDU报文,即丧失了边缘端口属性,成为普通的STP端口,重新进行STP运算;容易造成网络震荡;

开启边缘端口功能后,一般会和BPDU保护功能一起使用,以防误接交换机;

PC配置IP地址省略,交换机互联接口开启Trunk模式。

//SW1的配置
[SW1]int gi 0/0/1
[SW1-GigabitEthernet0/0/1]port link-type trunk 
[SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW1-GigabitEthernet0/0/1]
[SW1-GigabitEthernet0/0/1]int gi 0/0/2
[SW1-GigabitEthernet0/0/2]port link-type trunk 
[SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[SW1-GigabitEthernet0/0/2]

//SW2的配置
[SW2]int gi 0/0/1
[SW2-GigabitEthernet0/0/1]port link-type trunk 
[SW2-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW2-GigabitEthernet0/0/1]int gi 0/0/2
[SW2-GigabitEthernet0/0/2]port link-type trunk 
[SW2-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[SW2-GigabitEthernet0/0/2]

//SW3的配置
[SW3]int gi 0/0/1
[SW3-GigabitEthernet0/0/1]port link-type trunk 
[SW3-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW3-GigabitEthernet0/0/1]int gi 0/0/2
[SW3-GigabitEthernet0/0/2]port link-type trunk 
[SW3-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[SW3-GigabitEthernet0/0/2]

接下来配置边缘端口

//第一种方法,接口下配置
[SW2]int gi 0/0/3
[SW2-GigabitEthernet0/0/3]stp edged-port enable
[SW2-GigabitEthernet0/0/3]

//第二种方法,先在交换机和交换机的互联接口禁用,之后再全局开启(推荐这种方法)
[SW3]int gi 0/0/1
[SW3-GigabitEthernet0/0/1]stp edged-port disable 
[SW3-GigabitEthernet0/0/1]int gi 0/0/2
[SW3-GigabitEthernet0/0/2]stp edged-port disable 
[SW3-GigabitEthernet0/0/2]q
[SW3]stp edged-port default 

看现象:在开启PC后,PC1直接能访问PC2,端口直接进入转发状态

但是如果在全局配置模式配置生成树的边缘端口,如果下面私接交换机会触发生成树的重新学习,引起网络动荡,所以我们要开启BPDU保护

 

[SW3]stp bpdu-protection 
[SW3]

开启SW4,SW3发现GE0/0/4是边缘端口,但是SW4此时接入会发送BPDU报文,开启BPDU保护后就会检测到,并关闭GE0/0/4

[SW3]
Sep  9 2023 23:09:54-08:00 SW3 %%01PHY/1/PHY(l)[2]:    GigabitEthernet0/0/4: cha
nge status to up
Sep  9 2023 23:09:54-08:00 SW3 %%01MSTP/4/BPDU_PROTECTION(l)[3]:This edged-port 
GigabitEthernet0/0/4 that enabled BPDU-Protection will be shutdown, because it r
eceived BPDU packet!
Sep  9 2023 23:09:55-08:00 SW3 %%01PHY/1/PHY(l)[4]:    GigabitEthernet0/0/4: cha
nge status to down

[SW3]display current-configuration interface GigabitEthernet 0/0/4
#
interface GigabitEthernet0/0/4
 shutdown
#
return
[SW3]

推荐在全局开启STP边缘端口(互联端口手动关闭边缘端口)并且开启BPDU保护

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值