热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

生成树协议STP之精华

文章目录生成树协议

文章目录

  • 生成树协议STP
        • 前言
          • 交换机转发流程回顾
    • **一:STP生成树协议概念**
      • 1.1生成树协议存在意义
      • 1.2网桥协议数据单元
        • 1.2.1**BPDU ( Bridge Protocol Data Unit)网桥协议数据单元**
      • 1.2.2BPDU功能
      • 1.3 BPDU分裂
      • 1.4 选举根交换机规则
      • 1.5端口角色
      • 1.6端口状态描述
      • 1.7.选举根端口、制定端口的规则
    • 二、快速生成树协议
    • 三、多实例生成树协议
    • 四 :实验案例
      • 4.1 SW3配置
        • 4.1.1接口配置
        • 4.1.2mstp配置
      • 4.2 SW1配置
        • 4.2.1接口配置
        • 4.2.2mstp配置
      • 4.3 SW2配置
        • 4.3.1接口配置
        • 4.3.2mstp配置
      • 4.4 配置R1
      • 4.5测试
生成树协议STP

前言

交换机转发流程回顾
  1. 基于源MAC地址学习
  2. 基于已知目标MAC地址转发
  3. 当目标MAC地址未知时,泛红处理
  4. 交换机收到广播/组播帧时,无条件泛红处理
  5. 交换机一个借口可以学习多个MAC地址
  6. 交换机学习到同一个MAC地址,但是是从不同的端口学习到的,此时,将此MAC地址与后学习到的端口绑定起来

数据帧转发:源MAC,目标MAC,源IP,目标IP至少要知道三个 环路引起的问题

  • 广播风暴
  • MAC地址不稳定

STP生成树协议解决环路问题

  • 消除环路
  • 链路备份

网桥ID(Bridge ID)简称 BID

交换机比较各自的优先级值来选举确定STP中的根桥,若优先级值相同,则取十六进制MAC地址值较小的。优先级值可以手动指定,用以人为控制STP中的根桥的选举。所有同类型交换机默认配置相同的优先级值,MAC地址成为决定根桥的关键,导致选举无法预测。建议为合适的交换机配置较低的优先级值,以确保他被选举为根桥。这样也可以确保向网络添加新交换机时,不会发生新的生成树选举。

早期的STP没有为VLAN设计,所有交换机只有一颗共同的生成的树,BID中前两个字节全部用来标识优先级值。2字节=16位=2^16,所以优先级值范围为0~65535。

随着PVST+(每VLAN生成树协议+)的实施,单个生成树实例属于各个VLAN,为支持VLAN,BID中前两个字节拆分为4位的优先级值和12位的标识VLAN的扩展ID,有多少VLAN,交换机就应具有多少个BID。

由于用于标识优先级值的可用位数变少,2^4=16个,因此只有16个可能值可以应用于优先级值和对应VLAN,为保持和其他不支持扩展ID的BID一致,BID优先级值增量由1变为4096,优先级值只能是4096的倍数,一共16个优先级值,最小40961=4096,最大409616=65536。

一:STP生成树协议概念

1.1生成树协议存在意义

当有环路存在时,广播的发送会引起全网的广播风暴,因此需要打破路生成的条件,而生成树协议就是解决二层广播风暴的重要手段,另外我们会阻塞一些端口,打破环路生成条件,当链路出现问题时,这些被阻塞的端口可以过渡到转发状态,实现链路的备份的作用

1.2网桥协议数据单元

1.2.1BPDU ( Bridge Protocol Data Unit)网桥协议数据单元

  • STP的各种选举是通过交换BPDU报文来实现的,BPDU是直接封装在以太网帧中的。(802.3+802.2)
  • 对于参与STP的所有SW,它们都通过数据消息的交换来获取网络中其他SW的信息,这种消息就被称为BPDU。
  • BPDU是直接封装在二层的协议

1.2.2BPDU功能

1、选举根桥
2、确定冗余路径的位置
3、通过阻塞特定端口来避免环路
4、通告网络的拓扑变更
5、监控生成树的状态
BPDU每2S由根桥发送一次。(拥有最小bridge-id的交换机成为根桥)
最初的网络,每个SW都认为自己是根桥,都会发送BPDU,比较Lowest BID,选举出一个根桥,此时就只有根桥发送BPDU。非根桥只进行转发,转发时只修改bridge-id和cost字段。

1.3 BPDU分裂

BPDU分两种类型

  • 配置BPDU–通常由根网桥以周期性间隔发出,包括了STP参数,用于进行各种选举。
  • TCN(拓扑变更通告)BPDU–这种BPDU是当交换机检测到拓扑发生变更时所产生的。

TCNBPDU–这种BPDU是SW检测到拓扑变更时产生时。可由非根网桥发出。

1.4 选举根交换机规则

lowest BID=网桥优先级+ MAC地址 (越小越优)
交换机默认网桥优先级是32768
设置成根网桥两种方法
1.修改网桥优先级命令
[SW1]stp priority 0 ( 数值需要设定为4096的倍数)
2.设置此网桥为根网桥
[SW1]stp. root primary (优先级将变为0)
查看谁是根网桥的命令:
display stp

1.5端口角色

  • RP:根端口。每个非根网桥上有且只有一个,选举到达根网桥E路径开销值最小的成为根端口。
  • DP:指定端口。根网桥上每个端口都是指定端口,非根网桥上需要转发数据的端口也是指定端口。I
  • AP:预备端口。该接口状态为blocking状态, 只收BPDU.不发BPDU。

1.6端口状态描述

  • Di sabled(禁用状态):不转发数据帧,不学习MAC地址表,不参与生成树计算

  • Blocking (阻塞状态) :不转发数据帧,不学习MAC地址表,接收并处理BPDU,不发送BPDU.

  • Listening (侦听状态) :不转发数据帧,不学习MAC地址表,参与生成树计算,接收并发送BPDU

  • Learning (学习状态) :不转发数据帧,学习MAC地址表,参与生成树计算,接收并发送BPDU

  • Forwarding (转发状态) :转发数据帧,学习MAC地址表,参与生成树计算,接收并发送BPDU

    ​ 端口由Block ing过渡到Forwarding有50S延时, Block ing到Listen ing 有20S老化时间,Listening到Learning
    有15S过渡时间,Learn ing到Forwarding有1 5S过渡时间

1.7.选举根端口、制定端口的规则

  • Lowest path cost to root bridge (到达根的最小路径开销)
  • lowest sender BID (最小的发送方BID)lowest BID=网桥优先级+ MAC地址 (越小越优)
  • Lowest sender port ID ( 最小的发送方PID)优先级(默认128) +端口号
BWCOST
10M100
100M19
1G4
10G2

选取分析如下图,SWA是根网桥,MAC地址大小关系 SWA

mark

SWA是根网桥

依据“根网桥上都是DP,非根网桥上转发数据的是DP"原则 SWA上的端口都是DP

选举RP,根据Cost最小原则SWB和SWC离根网桥cost最小,选为RP,且每个交换机只有一个

SWB与SWC端口分析

首先依据到根网桥最小cost值,越小越优先,选举DP。相同时,比较BID(BID由网桥优先级和MAC地址构成),所以先比较网桥优先级,优先级越小越优先;网桥优先级相同时,比较十六位置的MAC地址,MAC地址越小越优先,优先的选为DP. MAC地址 SWB

AP选举,为了防止环路,SWC的左端口选为AP

二、快速生成树协议

  • RSTP:快速生成树协议缩短生成树端口由阻塞到转发状态的过渡时间
    开启快速生成树方法.
    []全局模式stp enable
    []stp mode rstp
    MSTP:一一个VLAN或者是多个VLAN一棵生成树,实现链路的负载均衡
  • 就时间是上有优势其他没有链路优势

三、多实例生成树协议

MSTP:多实例生成树让指定 的一一个VLAN或者是多个VLAN生成一棵树, 实现链路的负载均衡MSTP:多实
命令整理如下:

[ ]stp mode mstp
stp模式设置为mstp
stp region-configuration '进 入mstp设置模式'
region-name huawei '区域名称为huawe i'
revision-level 1 '版本级 别为1'
instance 1 vlan 10 '定义实例1为vlan10'
instance 2 vlan 20 '定义实例2为vlan20'
active region-configuration '对mstp配置保存'
[]切换到全局模式
stp instance 1 root primary '定义本交换机为实例1的根'
stp instance 2 root secondary ‘定义本交换机为实例2的备选根'

四 :实验案例

mark

4.1 SW3配置

4.1.1接口配置

sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname SW3
[SW3]user-in
[SW3]user-interface 0
[SW3-ui0]idle-t
[SW3-ui0]idle-timeout 0 0
[SW3-ui0]q
[SW3]int e0/0/2
[SW3-Ethernet0/0/2]q
[SW3]v b 10 20
[SW3]int e0/0/2
[SW3-Ethernet0/0/2]port hybrid pvid vlan 20
[SW3-Ethernet0/0/2]port hybrid untagged vlan 10 20
[SW3-Ethernet0/0/2]int e0/0/4
[SW3-Ethernet0/0/4]port hybrid pvid vlan 20
[SW3-Ethernet0/0/4]port hybrid untagged vlan 10 20
[SW3-Ethernet0/0/4]int e0/0/1
[SW3-Ethernet0/0/1]port hybrid pvid vlan 10
[SW3-Ethernet0/0/1]port hybrid untagged vlan 10 20
[SW3-Ethernet0/0/1]int e0/0/3
[SW3-Ethernet0/0/3]port hybrid pvid vlan 10
[SW3-Ethernet0/0/3]port hybrid untagged vlan 10 20

4.1.2mstp配置

[SW3]stp mode mstp
[SW3]stp region-
[SW3]stp region-configuration
[SW3-mst-region]region-n
[SW3-mst-region]region-name huawei
[SW3-mst-region]revision-l
[SW3-mst-region]revision-level 1
[SW3-mst-region]instance 1 vlan 10
[SW3-mst-region]instance 2 vlan 20
[SW3-mst-region]active region-
[SW3-mst-region]active region-configuration

4.2 SW1配置

4.2.1接口配置

[SW1]v b 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW1]int g0/0/2
[SW1-GigabitEthernet0/0/2]port hybrid pvid vlan 10
[SW1-GigabitEthernet0/0/2]port hybrid untagged vlan 10 20
[SW1-GigabitEthernet0/0/2]int e0/0/1
[SW1-Ethernet0/0/1]port hybrid pvid vlan 10
[SW1-Ethernet0/0/1]port hybrid untagged vlan 10 20
[SW1-Ethernet0/0/1]int g0/0/1
[SW1-GigabitEthernet0/0/1]p l t
[SW1-GigabitEthernet0/0/1]p t a v a
[SW1-GigabitEthernet0/0/1]un sh

4.2.2mstp配置

[SW1]stp mode mstp
[SW1]stp region-
[SW1]stp region-configuration
[SW1-mst-region]region-n
[SW1-mst-region]region-name huawei
[SW1-mst-region]revision-l
[SW1-mst-region]revision-level 1
[SW1-mst-region]instance 1 vlan 10
[SW1-mst-region]instance 2 vlan 20
[SW1-mst-region]active region-
[SW1-mst-region]active region-configuration
[SW1]stp instance 1 root primary
[SW1]stp instance 2 root secondary

4.3 SW2配置

4.3.1接口配置

[Huawei]sysname SW1
[SW1]sysname SW2
[SW2]user-in
[SW2]user-interface 0
[SW2-ui0]idle-t
[SW2-ui0]idle-timeout 0 0
[SW2-ui0]q
[SW2]v b 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW2]int g0/0/2
[SW2-GigabitEthernet0/0/2]port hy
[SW2-GigabitEthernet0/0/2]port hybrid pvid vlan 20
[SW2-GigabitEthernet0/0/2]port hy
[SW2-GigabitEthernet0/0/2]port hybrid unt
[SW2-GigabitEthernet0/0/2]port hybrid untagged vlan 10 20
[SW2-GigabitEthernet0/0/2]int e0/0/1
[SW2-Ethernet0/0/1]port hybrid pvid vlan 20
[SW2-Ethernet0/0/1]port hybrid untagged vlan 10 20
[SW2-Ethernet0/0/1]int g0/0/1
[SW2-GigabitEthernet0/0/1]p l t
[SW2-GigabitEthernet0/0/1]p t a v a
[SW2-GigabitEthernet0/0/1]un sh

4.3.2mstp配置

[SW2] stp mode mstp
[SW2]stp region-
[SW2]stp region-configuration
[SW2-mst-region]region-n
[SW2-mst-region]region-name huawei
[SW2-mst-region]revision-l
[SW2-mst-region]revision-level 1
[SW2-mst-region]instance 1 vlan 10
[SW2-mst-region]instance 2 vlan 20
[SW2-mst-region]active region-c
[SW2-mst-region]active region-configuration
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW2-mst-region]q
[SW2]stp instance 1 root secondary
[SW2]stp instance 2 root primary

4.4 配置R1

[Huawei]sysname R1
[R1]user-in
[R1]user-interface 0
[R1-ui0]idle-t
[R1-ui0]idle-timeout 0 0
[R1-ui0]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.20.1 24
[R1-GigabitEthernet0/0/1]int loo0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q

4.5测试

PC1

mark

PC2

[R1-ui0]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.20.1 24
[R1-GigabitEthernet0/0/1]int loo0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q


### 4.5测试
PC1
[外链图片转存中...(img-RQvJ9dHJ-1595816638172)]
PC2
![mark](https://imgconvert.csdnimg.cn/aHR0cDovL2xpdWRvbmdsaWFuZy5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vaW1nLzIwMjAwNzI3LzEwMjMxNDA4OS5wbmc?x-oss-process=image/format,png)


版权声明:本文为m0_46476544原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_46476544/article/details/107605981
推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • MPLS VP恩 后门链路shamlink实验及配置步骤
    本文介绍了MPLS VP恩 后门链路shamlink的实验步骤及配置过程,包括拓扑、CE1、PE1、P1、P2、PE2和CE2的配置。详细讲解了shamlink实验的目的和操作步骤,帮助读者理解和实践该技术。 ... [详细]
  • 本文介绍了Java中Currency类的getInstance()方法,该方法用于检索给定货币代码的该货币的实例。文章详细解释了方法的语法、参数、返回值和异常,并提供了一个示例程序来说明该方法的工作原理。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringCloudRibbon部分源码相关的知识,希望对你有一定的参考价值。1:ribbon是提供通过servi ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
  • 目录Atlas介绍Atlas部署Atlas基本管理Atlas结合MHA故障恢复读写分离建议Atlas介绍Atlas是由Qihoo360Web平台部基础架构团队开发维护的一个基于My ... [详细]
author-avatar
圈闭仔笨仔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有