1.交换机如何传播BPDU
1.1 Root ID
在生成树拓扑稳定时,下游交换机收到BPDU后,不会修改其中的信息
1.2 Root Path Cost
该字段值类似于OSPF中的cost,是在接收消息时,累加其中的值
1.3 Bridge ID
交换机收到BPDU后,在对其进行转发时,将其中内容替换为本地的BID
1.4 Port ID
交换机从各端口转发上游的BPDU时,将其中内容替换为发送端口的PID
1.5 Message Age
交换机收到上游的BPDU时,将其中的值加1
1.6 Max Age、Hello Time、Forward Delay
这三个字段都是根桥的信息,下游设备不进行修改
注意:
如果接收BPDU的交换机不关心该VLAN的STP,则不会修改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 BPDU中Root Path Cost字段,但是RootPort与Designated Port选举时有所不同
选举Root Port时,比较的是本地端口到根桥的“距离”
选举Designated Port时,比较的是当前交换机与同一个segment内另一台交换机,谁离根桥最近
2.3 Bridge ID
(1)作用
与Cost相同
(2)比较参数
①Priority
②Bridge System ID
Root Port与DesignatedPort选举时有所不同
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中的BID,BID优的,说明其上游设备更优
③Port ID
当BID相同时,表明对个端口对应了同一台上游设备,此时比较上游设备的哪个端口在STP看来是最优的
此时将比较各个端口接收到的BPDU中的PID
④Local PID
Root Port选举的前三个参数可以认为是首先比较本地哪个端口离根桥最近,如果多个端口拥有相同的距离,则比较其上游的优劣
而如果依然无法比较出结果,此时就将比较本地这几个端口的优劣了
3.3 选举Designated Port
(1)概述
①指定端口选举发生在每个Segment内
②Designated Port所对应的端口,是被认为是该Segment内的上游设备,也就是距离根桥最近的设备
来自根桥的Configuration BPDU由上游设备传播
③Designated Port所对应的下游端口,可能是Root Port,也可能是non-DesignatedPort
(2)选举Designated Port时在意的信息
①在一个Segment内,哪台设备离根桥最近
②在一个Segment内,哪台交换机最优
③在一个Segment内,哪个端口最优
(3)什么样的端口会成为指定端口
①无法成为根端口
②在当前segment内BPDU参数最优
(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竞选使用的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两个端口都收到来自SW2的BPDU
由于其中参数不如本地优,SW1忽视此BPDU
c.SW2的两个端口收到来自SW1的BPDU
其中的RID优于本地,SW2不再向接收到该BPDU的端口发送BPDU
SW2通过这些BPDUs选举出根端口
③选举根端口
a.SW2
由于SW2的两个端口收到的BPDU的RID、BID相同,Root Path Cost在累加后也相同,因此比较PID
SW1发送端口分别为fa0/1与fa0/2,fa0/1更优,因此在SW2上,fa0/2成为根端口
fa0/1由于无法成为根端口,通过从根桥接收到的BPDU与本地端口参数比较,显然根桥的BPDU参数更优(Cost),因此fa0/1被阻塞
注意:
fa0/1是在指定端口选举中被阻塞,而不是在根端口选举中被阻塞
fa0/3以及fa0/4收到下游的BPDU都没有本地参数优,因此继续发送BPDU
b.SW3
SW3的三个端口都能收到来自SW2的BPDU
RID:SW1
Cost:19
BID:SW2
由于前三个参数都相同,因此通过PID选举出根端口
SW3的fa0/3对应SW2的fa0/4,是PID最大的,因此该端口一定不能成为根端口
SW3的fa0/1、fa0/2对应SW2的fa0/3,对于来自SW2fa0/3的BPDU,PID相同
此外,SW3的fa0/1会收到自己本地fa0/2的BPDU,fa0/2也会收到fa0/1的BPDU,由于fa0/1的PID小于fa0/2,因此fa0/1成为根端口
④指定端口选举
a.SW1
SW1本地端口的BPDU中Cost值为0,是最优的,因此,SW1的端口都成为指定端口
b.SW2
SW2的fa0/2成为了根端口,fa0/1所在segment由于直连SW1,因此,fa0/1被阻塞
fa0/3所在segment,fa0/3是距离根桥最近的端口,因此,fa0/3为指定端口
fa0/4同理
c.SW3
fa0/1在之前选举中成为了根端口,fa0/2由于其参数并不及SW2的fa0/3优,因此被阻塞
SW3的fa0/3在无法成为根端口的情况下,BPDU参数没有SW2的fa0/4优,因此也被阻塞
(3)选举结果