首页 > 其他分享 >STP生成树选举过程

STP生成树选举过程

时间:2023-09-19 23:25:23浏览次数:37  
标签:Bridge 选举 端口 生成 Priority STP ID Root Port

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

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

标签:Bridge,选举,端口,生成,Priority,STP,ID,Root,Port
From: https://www.cnblogs.com/weiyangyang/p/17716114.html

相关文章

  • 个人项目:中小学数学卷子自动生成程序互评
    前言:我和队友使用的都是c++来实现这个程序,通过沟通交流,我们明白了彼此代码的优缺点,对这个程序有了更深的理解。 结构:队友的代码主要包括一个cpp文件和三个h头文件,将功能函数分散开来,我觉得这是一个很好的点。优点:1.功能分解成了多个函数,在运行时方便查找错误出现的位置; ......
  • 如何使用Maven的test进行UT测试生成测试报告
    要使用Maven中的test对指定的脚本进行测试并生成测试报告,你可以按照以下步骤进行操作:确保你的项目中已经引入了JUnit依赖。在你的pom.xml文件中,添加以下依赖:<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><......
  • HNU个人项目互评——中小学数学卷子自动生成程序
    结对编程互评代码作者:软件2104潘胜蓝互评作者:软件2104苏晨阳一、摘要该作业是由潘胜蓝同学使用Java语言完成的“中小学数学卷子自动生成程序”。在代码设计方面,对小学教师、初中教师、高中教师三种角色属性进行了抽象提取,利用java抽象类和继承的优点进行编写;通过自行编......
  • 22. 括号生成
    数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例1:输入:n=3输出:["((()))","(()())","(())()","()(())","()()()"]示例2:输入:n=1输出:["()"] 提示:1<=n<=8classSolution:defgenerateParenthe......
  • HNU个人项目互评:中小学数学卷子自动生成程序
    一、功能测试1.登录功能命令行输入用户名与密码,当用户名与密码都正确时,显示当前为XX出题 正常输入时功能正常,但是当只输入用户名时发生了异常,应该是没有考虑只输入一个(没有测试bug呀!)Stringstr[]=in.nextLine().split("\\s+");nuser.setName(str[0]);......
  • webman:生成图形验证码(v1.5.7)
    一,官方文档地址:1,文档https://www.workerman.net/doc/webman/components/captcha.html2,用到的库项目代码地址:https://github.com/webman-php/captcha二,安装库:1,用composer安装liuhongdi@lhdpc:/data/webman/imageadmin$composerrequirewebman/captcha2,查看所......
  • HNU个人项目中小学数学卷子自动生成程序互评
    一、简介本博客是对结对编程队友代码的分析与总结,代码使用语言为JAVA。完成情况:很好的实现了项目的需求,功能完整。同时每个页面的提示信息都比较完整,在不需要他人协助的情况下,可以根据屏幕上的提示信息进行操作,如果用户输入不正确,系统会出现指示,显示正确输入格式,用户可根据提示......
  • 中小学数学卷子生成程序-个人项目互评
    一、项目需求用户:小学、初中和高中数学老师。功能:命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户......
  • 分析队友个人项目:中小学数学卷子自动生成程序
    一、前言  上周完成了个人项目的编写。这里对伙伴的个人项目代码稍作分析,学习她的长处,分析不足,使我们都能得到进步。二、分析(一)功能需求:  总的来说,队友的项目实现了老师给出的需求,可以进行登录、切换登录、出题、题目查重、切换试卷类型等功能。在对细节的处理上,队友的......
  • HNU 个人项目(中小学数学卷子自动生成程序)互评
    目录一.简介二.测试与分析1.黑盒测试2.白盒测试三总结一.简介本篇博客为对结对编程队友朱俊文同学的个人项目(中小学数学卷子自动生成程序的)的评价。首先在这里特别感谢我的结对编程伙伴朱俊文,个人项目互评中,为我的项目提出了很多很好的建议,让我在认清自己不......