zoukankan      html  css  js  c++  java
  • STP-2-三个选择

    1.选择根交换机
    2.确定根端口
    3.确定指定端口
     
     
    1.选择根交换机
     
    stp中只有一台交换机能成为根(Root),每台交换机按自己的STP逻辑,先发一个hello称自己为根,如果收到了比自己更优的hello,它会停止产生hello,以停止声明自己是根。然后交换机开始转发更优的hello。逐渐地,除了拥有最低网桥ID的交换机外,所有交换机停止生成自己的hello,最终这台交换机赢得选举,成为根交换机。
     
    原802.1D网桥ID中有两个字段:
    2字节的优先级,6字节的MAC
    原8021.D网桥ID的定义记录在802.1t修正案中,后整合到802.1D-2004中,下为原始格式与新格式
     
     
    格式的改变主要是因为出现了PVST+和MST支持的多生成树。
    如果使用旧格式,使用每vlan生成树,vlan让物理交换机像多台逻辑交换机一样操作,则网桥ID都是一样的(逻辑为多层拓扑),违背802.1D设计要求:每个交换机使用不同的网桥ID。所以就为每个vlan使用不同的mac地址,但这同时也消耗了每台交换机中的大量预留MAC地址
     
    使用新格式后,结合vlan id,就不需要为每台交换机都预留那么多mac了。通过全局命令spanning-tree extend system-id,可以查看交换机上使用的系统ID拓展。
     
    2.确定根端口
     
    在选择出根交换机后,其他交换机需要确定他们各自的根端口(RP),过程如下
    (1).根交换机每隔hello间隔(默认2秒)发送一个hello,hello中的RBID和SBID为根ID,RPC为0,SPID为出端口标识符
    (2).每台非根交换机在每个端口上收到一个bpdu后,就会将端口的开销值加到这个bpdu的RPC值中,并得到结果bpdu(Resulting BPDU)。然后收到最优结果bpdu的端口被选举为根端口。
    (3).非根交换机在根端口上收到hello,在更新完其中的RPC,SBID,SPID和消息老化字段之后,会通过其他指定端口转发这个hello,非根交换机在其他端口上收到的hello,只会被处理,但不转发。
    (4)交换机不会从根端口和阻塞端口转发出hello。
     
    在最新的Catalyst交换机上使用PVST或快速PVST时,使用的开销值对应于802.1D-1998版本标准;使用MSTP时,对应于802.1D-2004版本。对于PVST和快速PVST,工程师可以使用全局配置命令spanning-tree pathcost method long启用802.1D-2004开销。默认配置为spanning-tree pathcost method short,即使用旧版本的开销。
     
    以下是默认端口开销
     
    3.确定指定端口
     
    在收敛完成的STP拓扑中,只有一台交换机负责转发Hello到每个LAN网段。转发Hello到LAN网段的交换机称为该网段的指定交换机,指定交换机上用来转发Hello到网段的端口称为指定端口(DP)。交换机上所有既不是根端口也不是指定端口的其他端口将被移至阻塞状态。
     
    选举规则如下:
    1.去往根的路径开销最低的交换机;
    2.网桥ID最低的邻居交换机;
    3.网桥ID最低的邻居上端口ID最低的端口。
  • 相关阅读:
    Redis 6.0 新特性多线程连环13问!
    这些Java8官方挖过的坑,你踩过几个?
    读Hadoop3.2源码,深入了解java调用HDFS的常用操作和HDFS原理
    AI学习笔记:人工智能与机器学习概述
    千亿级互联网平台技术架构及背后那些事
    报告老板,微服务高可用神器已祭出,您花巨资营销的高流量来了没?
    千亿级平台技术架构:为了支撑高并发,我把身份证存到了JS里
    从技术思维角度聊一聊『程序员』摆地摊的正确姿势
    TryCatch包裹的代码异常后,竟然导致了产线事务回滚!
    SpringBoot集成邮件发送
  • 原文地址:https://www.cnblogs.com/swefii/p/10637110.html
Copyright © 2011-2022 走看看