STP生成树选举过程

STP2

说明

Bridge Protocol Data Units (BPDU) 特殊的数据包

一般有两种类型的BPDU,MAC Address:“0180.C200.0000"

802.1D STP – Root Bridge(最老版本的STP)

思维导图

STP-BPDU的选举过程(802.1D)

一、学习算法 选举端口

1.为什么要选举端口

在一个网络中有多台交换机连接会产生环路、广播风暴、未知单播帧。

2.选举方法有两种

  1. 手工配置

  2. 自动选举(不是最优的)

各端口的名字
1. Root Bridge  根桥
2. Root Port    根端口
3. Root Designated Port  指定端口
4. Blocking Port   阻塞端口(没有任何角色的端口)

3.Root Bridge选举

3.1根桥第一次打开时,会假设自己是根桥,每台交换机会向外发送BPDU,把自己的Bridge ID放到BPDU中的Root Bridge ID 和 Seeder Bridge ID中。交换机收到BPDU会比较 Bridge ID(Bridge ID =Priority+MAC address)会有优先比较Priority,如果Priority一致(一般默认default为32768),则会比较MAC Address 。如果一个网络中有多台交换机就会比较谁更优,谁的Bridge ID小,谁就是Root Bridge。

32768其中的意义是什么?
:2个Bytes转换成16个Bit取的中间值
查看命令
Show Spaning tree

Base MAC address 出厂基本MAC地址,专门为了选举STP
查看方法
Show Version                其中有Base MAC address字段

3.2根桥被选出有一个作用

Root Bridge会想外发送BPDU,而除了根桥外的主机不会产生BPDU,只会收到根桥的BPDU进行转发(重要特性
802.1D Protocol 早于VLAN

4.Root Port选举

4.1 什么是根端口

距离根桥最近的端口(在根桥上没有根端口),根桥会出现在非根桥的交换机上

4.2根端口的定义

image-20230916153110779

离根端口最近的端口,根端口会面向根桥

4.3 根端口(Root Port)的选举分为4步

  1. Cost开销,Cost在BPDU中只会计算Inbound Port,根桥会面向非根桥发送BPDU,BPDU会包含Cost(从根桥发送的Cost是0),端口收到BPDU就会根据带宽计算并加上BPDU中Cost的值。

如下图所示:Root Bridge 向 SWB发送BPDU的开销为0+4;因为从根桥发送是0,收到的接口是4

image-20230916153905503

  1. 如果Cost值相同,就会比较Seeder BID(Seeder Bridge ID),谁小谁就是Root Port

SWB的cost值一致,B→C→A=19+19+19 B→D→A=19+19=19
对比发送方的Bridge ID,Priority默认为128一致,Fa0/7 MAC:SWC:Fa0/7 MAC3.3.3.3 Fa0/8 MAC4.4.4.4
在SWC上Fa0/7的MAC小,所以是Root Port

  1. 如果发送放的Bridge ID相同,那么就会比较 Seeder Port Priority(发送方端口的Priority)Priority默认都为128;所以在不修改的情况下,会直接比较Seeder Port ID

  2. 如果Port Priority 一致,就会比较 Seeder Port ID(发送放的ID)

Seeder Port ID包含:Priority(128)+Port number
Port number是不会一致的

如图所示:cost开销值大小一致,Seeder Bridge ID大小也一致,Seeder Port Priority也一致,Seeder Port ID中:Priority一致,就会比较物理端口 物理端口不可能重复 ,Port Number最小的是Fa0/1
Fa0/1:Seeder Port ID=Priority128+Port Number 1 Fa0/2:Seeder Port ID=Priority128+Port Number 2
128+1 128+2
所以SWB中Root Port是Fa0/1

5.Designated Port(指定端口选举)

  1. Designated Port定义:

在拓扑中每一个物理网段(只要有物理网段都会选举)并且每一个物理网段只会选举出一个指定端口

  1. 在Root Bridge上,所有端口都是指定端口

  2. 选举条件:

    1. cost值
    2. 如果cost值一致,就会比较BID

6.Blocking Port(阻塞端口)

1.Blocking Port的性质

  • 只能接收BPDU
  • 其他收到的discovery都会被丢弃
  • 不可以向外发送数据和BPDU,也不能接收出端口以外的任何数据

一个网段中,已经有了Root Bridge 、Root Port 、Designated Port ,那么剩下的就是Blocking Port
Root Port 对应着 Designated Port,但Designated Port不一定对应着Root Port

关于STP选举的实验

这边做一个小实验,验证Root Bridge 和 Root Port 的选举

image-20230919224602396

Root Bridge的选举方法是,先比较Bridge ID,而Bridge ID中包含(Priority+base MAC address),如果不修改Priority的情况下defasult是128,所以两条交换机在不修改的情况下是一样的,所以开始比较Base MAC address。

Root Port选举方法是,先比较Cost值,再比较Seeder BID  ,再比较Seeder Port Priority  、最后比较Seeder  Port ID

Designated Port 每一个网段中都有一个指定端口,连接Root Bridge上的每一个端口都是指定端口,非Root Bridge 先比较Cost值,再然后比较BID

Blocking Port  这个接口什么角色也不是

根据以上原则做一个小实验,验证Root Bridge 和 Root Port 的选举

Switch#show spanning-tree 

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0300
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     aabb.cc00.0300
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  15  sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et0/0               Desg FWD 100       128.1    Shr 
Et0/1               Desg FWD 100       128.2    Shr 
Et0/2               Desg FWD 100       128.3    Shr 
Et0/3               Desg FWD 100       128.4    Shr 


Switch#

两台交换机开机后交换BPDU,R3的Bridge ID最小,因为R3和R4的Priority一样,R3的Base mac address 最小,可以看见 This bridge is the root,这就证明R3是Root Bridge ,

Switch(config)#do show spanning-tree 

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     aabb.cc00.0300
             Cost        100
             Port        4 (Ethernet0/3)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     aabb.cc00.0400
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  15  sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et0/0               Desg FWD 100       128.1    Shr 
Et0/1               Desg FWD 100       128.2    Shr 
Et0/2               Altn BLK 100       128.3    Shr 
Et0/3               Root FWD 100       128.4    Shr 


Switch(config)#

这是R4上的,可以看到Root ID是 Address aabb.cc00.0300,Root Port 是 Ethernet 0/3接口,因为选举Root Port 是看发送放的 | cost一样、Seeder BID一样 、Seeder Priority一样、Seeder Port ID中 的Port Number Ethernet 0/0是128.1 Ethernet 0/1是128.2,发送方R3的Ethernet 0/0 Port Number 最小,所以R4的Ethernet 0/3对应着 R3的Ethernet 0/0,所以在R4上Ethernet 0/3是Root Port

这是第一次写这么长的笔记以及实验,写完之后发现自己写的太罗嗦了 废话太多了,逻辑也不清晰可能写的不是那么通俗易懂 让你们见笑了。希望本次的笔记能够将就点看,有问题可以在评论区指出来,我也希望通过将知识分享出去来得到反馈来提升自己,此次也能通过分享笔记也能知道自己的不足。后面创作笔记一定越来越好,将更好的实验以及知识传播出去。希望大家有什么问题活着不懂的地方可以评论区留言,看到就会认真回复。

posted @ 2023-09-19 23:05  魏阳阳  阅读(256)  评论(0编辑  收藏  举报