1.交换机如何传播BPDU

1.1 Root ID

在生成树拓扑稳定时,下游交换机收到BPDU后,不会修改其中的信息

1.2 Root Path Cost

该字段值类似于OSPF中的cost,是在接收消息时,累加其中的值

标准STP选举_第1张图片

1.3 Bridge ID

交换机收到BPDU后,在对其进行转发时,将其中内容替换为本地的BID

1.4 Port ID

交换机从各端口转发上游的BPDU时,将其中内容替换为发送端口的PID

1.5 Message Age

交换机收到上游的BPDU时,将其中的值1

1.6 Max AgeHello TimeForward Delay

这三个字段都是根桥的信息,下游设备不进行修改

注意:

如果接收BPDU的交换机不关心该VLANSTP,则不会修改BPDU中的任何值,仅仅转发


2.交换机接收Configuration BPDU依次比较的4个参数

2.1 Root ID

1作用

用于选举根桥

2比较参数

Priority

Priority = Root Bridge Priority + RootBridge System Extension ID

Root Bridge System ID

即为根桥参与STP的所使用的MAC地址

2.2 Cost

1作用

Root Port选举

Designated Port选举

2比较参数

比较Configuration BPDURoot Path Cost字段,但是RootPortDesignated Port选举时有所不同

选举Root Port时,比较的是本地端口到根桥的“距离”

选举Designated Port时,比较的是当前交换机与同一个segment内另一台交换机,谁离根桥最近

2.3 Bridge ID

1作用

Cost相同

2比较参数

Priority

Bridge System ID

Root PortDesignatedPort选举时有所不同

2.4 Port ID

1作用

Cost相同

2比较参数

Port Priority

Port Number

注意:

①在STP选举中,所有参数都是越小越优

②交换机某个端口收到本地其它端口发送的BPDU并不会丢弃,而是同样会与当前端口相关参数进行比较

看上去就好像交换机在参与STP竞选时还会比较本地端口一样


3.交换机3个选举步骤

3.1 选举一个Root Bridge

比较Root ID,初始化时,交换机认为当前设备就是Root Bridge

3.2 选举Root Port

1概述

①根端口的选举发生在非根桥

②每台非根桥本地,都将选举出一个距离根桥“最近”的端口,作为根端口

2选举Root Port时在意的信息

①当前交换机上,哪个端口离根桥最近

②当前交换机的上游,哪台交换机更优

③上游交换机哪个端口更优

④本地端口中哪个端口更优

3比较参数

Root Path Cost

当前端口收到上游的BPDU后,将本地端口对应的cost累加后得到新的Root PathCost,反应了当前端口到根桥的开销

在选举根端口时,本地交换机比较各个端口到根桥的开销(新的Root Path Cost值)

Bridge ID

Root Path Cost值相同时,表明有多个端口距离根桥距离相同,此时比较这些端口的上游设备哪个是STP中更优的

此时将比较各个端口接收到的BPDU中的BIDBID优的,说明其上游设备更优

Port ID

BID相同时,表明对个端口对应了同一台上游设备,此时比较上游设备的哪个端口在STP看来是最优的

此时将比较各个端口接收到的BPDU中的PID

Local PID

Root Port选举的前三个参数可以认为是首先比较本地哪个端口离根桥最近,如果多个端口拥有相同的距离,则比较其上游的优劣

而如果依然无法比较出结果,此时就将比较本地这几个端口的优劣了

3.3 选举Designated Port

1概述

①指定端口选举发生在每个Segment

标准STP选举_第2张图片

Designated Port所对应的端口,是被认为是Segment内的上游设备,也就是距离根桥最近的设备

来自根桥的Configuration BPDU由上游设备传播

Designated Port所对应的下游端口,可能是Root Port,也可能是non-DesignatedPort

2选举Designated Port时在意的信息

①在一个Segment内,哪台设备离根桥最近

②在一个Segment内,哪台交换机最优

③在一个Segment内,哪个端口最优

3什么样的端口会成为指定端口

①无法成为根端口

②在当前segmentBPDU参数最优

4比较参数

此时不像选举根端口时那样,收到BPDU后进行累加,而是比较接收到的BPDU与本地向该Segment发送的BPDU中的参数

Root Path Cost

收到的BPDU中的Root Path Cost优于本地发送的BPDU中的Root Path Cost,则表明该发送设备离根桥更近,是当前设备的上游

反之,同理

Bridge ID

Port ID


4.STP选举示例

4.1 示例1

1拓扑

标准STP选举_第3张图片

说明:

优先级取值均为默认

链路交换机参与STP竞选使用的MAC地址、端口、开销均在途中表示

2选举描述

①三台交换机开机初始化

a.进入Blocking状态,都不发送BPDU

b.Max Age时间后,进入Listening状态

c.由于交换机始终都没有收到BPDU,此时三台交换机都认为自己是Root Bridge

②交换机间相互发送BPDU,选举根桥

a.交换机向所有激活端口发送BPDU

RID:与BID相同

Root Path Cost:由于认为本地是Root Bridge,其值为0

PID:与发送BPDU的交换机端口对应

Message Age:取值为0

b.SW1两个端口都收到来自SW2BPDU

由于其中参数不如本地优,SW1忽视此BPDU

c.SW2的两个端口收到来自SW1BPDU

其中的RID优于本地,SW2不再向接收到该BPDU的端口发送BPDU

SW2通过这些BPDUs选举出根端口

③选举根端口

a.SW2

由于SW2的两个端口收到的BPDURIDBID相同,Root Path Cost在累加后也相同,因此比较PID

SW1发送端口分别为fa0/1fa0/2fa0/1更优,因此在SW2上,fa0/2成为根端口

fa0/1由于无法成为根端口,通过从根桥接收到的BPDU与本地端口参数比较,显然根桥的BPDU参数更优(Cost),因此fa0/1被阻塞

注意:

fa0/1是在指定端口选举中被阻塞,而不是在根端口选举中被阻塞

fa0/3以及fa0/4收到下游的BPDU都没有本地参数优,因此继续发送BPDU

b.SW3

SW3的三个端口都能收到来自SW2BPDU

RIDSW1

Cost19

BIDSW2

由于前三个参数都相同,因此通过PID选举出根端口

SW3fa0/3对应SW2fa0/4,是PID最大的,因此该端口一定不能成为根端口

SW3fa0/1fa0/2对应SW2fa0/3,对于来自SW2fa0/3BPDUPID相同

此外,SW3fa0/1会收到自己本地fa0/2BPDUfa0/2也会收到fa0/1BPDU,由于fa0/1PID小于fa0/2,因此fa0/1成为根端口

④指定端口选举

a.SW1

SW1本地端口的BPDUCost值为0,是最优的,因此,SW1的端口都成为指定端口

b.SW2

SW2fa0/2成为了根端口,fa0/1所在segment由于直连SW1,因此,fa0/1被阻塞

fa0/3所在segmentfa0/3是距离根桥最近的端口,因此,fa0/3为指定端口

fa0/4同理

c.SW3

fa0/1在之前选举中成为了根端口,fa0/2由于其参数并不及SW2fa0/3优,因此被阻塞

SW3fa0/3在无法成为根端口的情况下,BPDU参数没有SW2fa0/4优,因此也被阻塞

3选举结果

标准STP选举_第4张图片