首页 > 其他分享 >9.STP入门

9.STP入门

时间:2022-09-28 20:56:33浏览次数:44  
标签:F0 优先级 入门 选举 端口 交换机 STP 链路

STP概念

冗余拓扑

image

  • 冗余拓扑能够解决单点故障问题;
  • 冗余拓扑造成广播风暴,多帧复用,MAC地址不稳定的问题;

广播风暴

image

  • HostX发送广播帧;
  • 交换机继续没完没了的更新广播流量;

多帧复制

image

  • Host X发送一个单播数据帧给Router Y;
  • Router Y的MAC地址还没有被每个交换机学习到;
  • 二层没有选路的功能,Router Y接收2份相同的数据帧的拷贝;

MAC表紊乱

image

  • Host X发送一个单播数据帧给Router Y;
  • Router Y的MAC地址还没有被每个交换机学习到;
  • Switches A and B 在Port1上学习到Host X的MAC地址;
  • 到达Router Y的数据帧被泛洪;
  • Switches A and R 不正确的在Port2上学习到Host X的MAC地址

复杂的多环网络

image

采用生成树STP(Spanning-Tree Protocol)解决环路

image

  • 通过将特定的端口选为Blocking state(类似shutdown),来实现无环的拓扑;
  • IEEE802.1D(默认)规定了这一行为;
  • Cisco采用IEEE802.1D的增强的私有协议生成树PVST+

STP的操作

image

根桥

  • 每个广播域选择一个根桥
  • BPDU(桥协议数据单元),每两秒发送一次
  • 根桥选举规则:桥优先级默认32768,越小越优先;桥优先级相同比较桥MAC地址,优选小的MAC地址作为根桥;
  • 最初所有的交换机都把自己当成根桥

image

BPDU内容

image

2.跟端口

  • 每个非根桥上选择一个根端口(到达跟桥最近的端口)
  • 根端口:具有最低根路径的接口
  • 考虑的因素:最低的根桥ID、最低的根路径代价、最低发送者桥ID、最低端口ID
  • 最短路径是cost累加,而cost是基于链路的速率的

image

  • 根交换机(Root)选举规则:在同一个三层网络中需要选举,即一个广播域内要选举,并且一个网络中只能选举一台根交换机。Bridge-ID中优先级最高(即数字最小)的为根交换机,优先级范围为0-65535,默认32768。如果优先级相同,则MAC地址越小的为根交换机。
  • 根端口(Root Port)选举规则:所有非根交换机都要选举,非根交换机上选举的根端口就是普通交换机去往根交换机的唯一链路,选举规则为到根交换机的Path Cost值最小的链路,如果多条链路到达根交换机的Path Cost值相同,则选举上一跳交换机Bridge-lD最小的链路,如果是经过的同一台交换机,则上一跳交换机Bridge-ID也是相同的,那么选举对端端口优先级最小的链路,如果到达对端的多个端口优先级相同,最后选举交换机对端端号码最小的链路。

3.指定端口

  • 每个二层网段段选择一个指定端口(根端口对应的端口)
  • 指定端口(Designated Port)选举规则:在每个二层网段都要选举,也就是在每个冲突域需要选举,简单地理解为每条连接交换机的物理线路的两个端口中,有一个要被选举为指定端口,每个网段选举指定端口后,就能保证每个网段都有链路能够到达根交换机,选举规则和选举根端口一样,即:到根交换机的Path Cost值最小的链路,如果多条链路到达根交换机的Path Cost值相同,则选举上一跳交换机Bridge-ID最小的链路,如果是经过的同一台交换机,则上一跳交换机Bridge-ID也是相同的,再选举对端端口优先级最小的链路,如果到达对端的多个端口优先级相同,最后选举交换机对端端号码最小的链路。
  • 非指定端口:在STP选出根交换机,根端口以及指定端口后,其它所有端口全部被Block,为了防止环路,所以Block端口只有在根端口或指定端口失效的时候才有可能被启用。

案例解读

image

1.根据优先级,SW1优先级4096最小,优先级最高,设定为根路由器,F0/23和F0/19都为指定端口

2.SW2上因为离得最近,根端口选择F0/23

3.由于根端口对应指定端口,SW3根端口为F0/19

4.SW4多条链路到根交换机cost值相同,看上一条交换机Bridge-ID最小的链路,SW2比SW3的Bridge-ID小,所以选择SW2方向链路,之后选择对端端口优先级最小的链路,F0/20=112,F0/19=128,所以SW4的根端口选择F0/20,SW2的F0/20为指定端口

5.接下来在SW2-F0/19、SW4-F0/19、SW4-F0/23、SW4-F0/24、SW3-F0/23、SW3-F0/24选择指定端口

6.六个端口中,到达根交换机cost最小的链路为SW2-F0/19、SW3-F0/23、SW3-F0/24,其他全部Block

image

如果SW4的F0/20宕了,选择F0/19;如果F0/19宕了,选择F0/23(端口号小),最后才会轮到F0/24

STP的端口状态

image

从初始到转发状态流程

  • Blocking状态:没有BPDU包,20s时间进行接收和恢复操作
  • Listening状态:监听BPDU包,监听15s
  • Learning状态:收到BPDU包后进行学习,花费15s
  • Forwarding状态:进行转发

如果从Block状态开始,则直接进入Listening状态

端口快速收敛

原本PC端接入交换机需要30s左右,在SW1上设定f0/2端口为快速端口后,接上就变成绿灯,不会出现橘红色的等待,可以直接通信。

SW1(config)interface f0/2
SW1(config-if)#spanning-tree portfast

一般这种企业用作专门的接入口,无法接入其他交换机,只能接终端设备

标签:F0,优先级,入门,选举,端口,交换机,STP,链路
From: https://www.cnblogs.com/icui4cu/p/16739530.html

相关文章

  • jmeter BeanShell PostProcessor 获取http请求的response出参,存入CSV
    importorg.json.*;Stringresponse=prev.getResponseDataAsString();JSONObjectdata_obj=newJSONObject(response);Stringdata_1=data_obj.get("data").toString()......
  • Qt入门学习——Qt 5 帮助文档的使用
    学习图形界面开发,肯定离不开帮助文档的使用,因为它不像C语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必要去记,用到什么......
  • GTK入门学习:glade的环境搭建
    1)Linux环境搭建在线安装即可,安装命令如下:测试是否安装成功,在终端敲glade即可:2)windows版本环境搭建下载一个windows版本双击后一直“下一步”安装即可。需要注意的是,如果......
  • GTK入门学习:布局练习之计算器
    接下来,我们做一个布局练习,如下图:我们用表格布局实现,表格布局参考坐标如下:这里我们用到行编辑控件(GtkEntry )。行编辑的创建:GtkWidget*gtk_entry_new(void);返回值:行编......
  • GTK入门学习:glade的介绍
    上面的学习中,我们是通过纯C语言代码来进行GTK编程的,这也是我们学习GTK的最佳方法,因为这样我们可以清楚地知道整个流程,大体流程如下:1)创建主窗口,根据需要设置窗口的相应属性2)......
  • protobuf入门教程(二):消息类型
    操作流程1)在.proto文件中定义消息格式2)使用protobuf编译器生成C++类3)使用C++API来读写消息C++编程指导:​​https://developers.google.com/protocol-buffers/docs/c......
  • protobuf入门教程(四):repeated限定修饰符
    限定修饰符说明repeated代表可重复,我们可以理解为数组:syntax="proto3";//指定版本信息,不指定会报错messagePerson//message为关键字,作用为定义一种消息类型{string......
  • protobuf入门教程(六):导入定义(import)
    消息格式info.proto文件内容如下:syntax="proto3";//指定版本信息,不指定会报错packageinfopack;//package声明符messageinfo//message为关键字,作用为定义一种消息类型{......
  • day04 --> (JDBC基本概念、快速入门、对JDBC中各个接口和类详解)
    一、JDBC:1、概念:JavaDataBaseConnectivity -->Java数据库连接,Java语言操作数据库本质:官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实......
  • Python 基础入门(六)
    Python基础入门(六)目录Python基础入门(六)一、while循环补充说明1、死循环2、嵌套及全局标志位二、流程控制之for循环for循环特点不同取值类型结果三、range方法一、while......