前文我们了解了STP选举规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15131999.html;今天我们来聊一聊STP的端口状态、计时器、端口状态转换以及拓扑变化相关话题;

  STP端口状态

  提示:STP的端口有5个状态,分别是disabled、blocking、listening、learning、forwarding;默认情况下,一个物理的交换机上的同VLAN下的所有端口都参与STP;其中Disabled是指未接线的端口;我们可以理解未激活的端口,它不接收和转发BPDU,也不学习mac地址和转发数据,是一种稳定的状态;Blocking状态是指端口激活了,通过STP选举以后未被选举成为根端口或指定端口的端口状态;该状态下的端口只接收BPDU,不转发BPDU,同时也不学习mac和转发数据,是一种稳定的状态;listening状态是disabled或blocking状态的端口向forwarding状态转换的一个过渡状态;该状态的端口只接收和转发BPDU,并不学习mac和转发数据,是一种非稳定状态;learning是从listening状态的端口向forward状态过渡的状态;该状态端口会接收和转发BPDU,同时也会学习mac,但不转发数据,是一种非稳定状态;Forwarding是STP稳定以后,除开预备端口和未激活的端口的状态;该状态下的端口可以正常接收和转发BPDU,同时也可以正常学习mac和转发数据,是稳定状态;

  实验:如下实验拓扑,更改交换机stp模式为stp,然后看看交换机的各端口状态变化

  验证:在s1上查看各端口状态

  提示:在华为的交换机上我们是看不到blocking和listening这两种状态,其原因是华为交换机显示是以rstp和mstp为主,对于stp来说disabled、blocking、listening这三种状态被打包为discarding状态;

  STP计时器

  从上面的拓扑中,我们任意链路上抓一个STP包

  提示:hello time字段用来表示根桥多久发送一次BPDU,默认情况是2秒一次;forward delay用来表示从learning状态到forwarding状态的延迟时长,默认15秒;max age表示预备端口最长多久没收到BPDU包的存活时长,默认20秒;

  提示:预备端口从阻塞状态到转发状态,首先预备端口要等待max age超时以后,才会进入到listening,从listening到learning中间会间隔15秒;从learning到forwarding中间会间隔15秒,所以一个预备端口从阻塞状态转变为转发状态,最长时间需要50秒;

  message age:该字段用于表示BPDU消息年龄,默认从根桥发送出来的BPDU为0,当BPDU没经过一个交换机,maessage age会加1,当交换机收到的BPDU中message age大于max age时,该交换机会丢弃该BPDU;

  验证:在根桥上转包,看看message age是否为0?

  提示:可以看到,从上述的实验拓扑中,s1(根桥)上抓包抓到的BPDU中message age为0;

  验证:如下拓扑,在非根桥(s6)抓包,看看对应message age是多少呢?

  分析:从s1发送的BPDU中message age 为0,当BPUD从S1的eth0/0/2口发送出来,经过S3从eth0/0/3转发出去,对应的message age会加1,所以从s3转发出去的BPUD,message age为1;同样的道理当s3的eth0/0/3转发出来的BPDU,在s4接收以后再从s4口的eth0/0/2转发出去,对应的message age也会再加1,所以从s4转发出去的BPDU中message age就为2,依次类推到达s6的BPDU中message age 的值就应该为3;

  验证:在s6上转包,看看对应的BPDU中message age是否是3呢?

  提示:其实这个message age我们可以理解为从根出发,中间经历多少个交换机;从上面的实验可以看到一般二层链路上的交换机不宜串联太多,超过20个会导致stp无法正常工作;

  STP端口状态转换

  提示:当端口初始化或从开启时,对应端口的状态会从disabled状态转换为blocking状态;如果端口被选举成为根端口或指定端口时,对应状态会从blocking开始转换--->listening,经过15秒---->learning,经过15秒----->forwarding;如果端口不再是根端口或指定端口,对应端口会从当前状态立刻转变为blocking状态;如果forward delay计时器超时,对应端口会从当前状态转换为下一个状态,比如从listening转换为learning;从learning转换为forwarding状态;如果端口被禁用或链路失效,则对应端口会从当前端口状态立刻变为disabled状态;

  验证交换机端口状态

  提示:默认情况下,只会显示两种稳定状态,第一种是forwarding状态,一种是预备端口的阻塞状态;disabled这种稳定状态需要手动去看对应端口才会显示;

  查看disabled状态的端口

  提示:只要显示锁disabled port,说明该端口为激活,或者我们可以理解为参与stp,但状态为disabled状态;

  STP拓扑变化

  1、根桥故障

  提示:根桥故障会导致直连根桥的交换机对应的链路挂掉,此时对于非根桥就会收不到根桥的BPDU,理论上来讲,非根交换机对应的端口收不到BPDU,最大等待20秒(默认max age为20秒),然后就会触发对应端口发送自己的BPDU,进行根桥的选举;根桥选举各交换机上的端口都会转变为discarding状态,然后持续15秒从discarding状态转变为learning状态,这个状态也会持续15秒;然后从learning状态转变为forwarding状态;这个状态对于stp来说是一个稳定状态,对应端口才可以正常转发数据包;通过上述的描述,如果根桥故障最长需要50秒对应二层网络才能恢复;

  2、直连链路故障

  提示:直连故障是相对于有预备端口的交换机来说的;对应的交换机是能够感知到故障的发生,此时对应的端口会从forwarding状态转换为discarding状态;然后持续15秒,再从discarding状态转变为learning状态;此状态也会持续15秒,最后从lerarning状态转变为forwarding状态,开始转发数据;这也就告诉我们直连故障最短也需要等待30秒对应网络才能正常使用;

  3、非直连链路故障

  提示:非直连链路故障也是相对于有预备端口的交换机来说的,这种故障对于有预备端口的交换机是感知不到的,所以理论上来讲,预备端口需要等待20秒的时间,然后才从blocking转变为discarding状态,然后持续15秒,再转换为learnging,然后再持续15秒,再从learning状态转变为forwarding状态;也就是说非直连链路故障最长也需要等待50秒;

  从上述的描述不难想象,不管是根桥故障还是直连链路或非直连链路故障,对于stp来说只要有故障,最短需要等待30秒,对应网络才能正常使用;

  拓扑变化导致mac地址表错误

  如上图所示,主机A和主机B通讯,在链路都正常的情况下主机A和主机B通讯,对于交换机B来说,它学习到的mac地址表示aa在3口,bb在一口;如果此时交换机c的g0/0/1口坏了;那么对于主机A和主机B的通讯最长也需要等待50秒,最短需要等待30秒对应stp链路才会正常被切换成功;此时我们想一个问题,但stp链路切换成功以后,对于交换机B来说,它的mac地址表并没有老化(默认老化时间是300秒),当它收到aa向bb通信的数据包,此时他还是会将数据包从1口转发出去;这也就造成了,stp链路切换成共,但对应交换机mac地址表并没有更新,导致mac地址表错误的指向;这会直接影响主机A和主机B通讯;为了解决这个问题,stp里加入了另一种类型BPDU,TCN;

  提示:TCN是(topology change notification)拓扑变化通知;下游交换机一旦检测到拓扑变化,向上游发送的拓扑变化通知,上游交换机收到TCN后回应TCA(topology change acknowledgment)进行确认,然后下游交换机停止发送TCN;上游交换机通过根端口发送TCN直到根桥收到,根桥通过指定端口发送TC通知所有下游交换机把MAC地址表记录老化时间从300秒变为15秒;以便让交换机的mac地址表更快的老化,实现对应stp链路切换,对应mac地址表也随之更新;

HCNA Routing&Switching之STP端口状态、计时器以及拓扑变化的更多相关文章

  1. HCNA Routing&Switching之STP基础

    前文我们了解了VLAN动态注册协议GVRP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15113770.html:今天我们来讨论下二层环路和STP相 ...

  2. HCNA Routing&Switching之STP选举规则

    前文我们了解了二层环路对网络带来的影响,以及STP工作流程和BPDU数据包结构和相关字段的说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15121317. ...

  3. HCNA Routing&Switching之DHCP服务

    前文我们了解了STP的端口状态.计时器以及端口状态切换和网络拓扑变化相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15140672.html:今天我们 ...

  4. HCNA Routing&Switching之动态路由协议OSPF基础(一)

    前文我们了解了基于路径矢量算法的动态路由协议RIP防环以及度量值的修改相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15012895.html:今天我 ...

  5. HCNA Routing&Switching之动态路由协议RIP

    前文我们了解了动态路由的基本概念,以及动态路由和静态路由的区别,优缺点,动态路由的分类,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14995317.html ...

  6. HCNA Routing&Switching之静态路由

    前文我们聊到了路由的相关概念和路由基础方面的话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14947897.html:今天我们聊聊静态路由相关话题: 回顾 ...

  7. HCNA Routing&Switching之路由基础

    在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表.路由器以及网关的相关术语:路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据:路由表就是多 ...

  8. HCNA Routing&Switching之RIP防环机制

    前文我们了解了RIP的基础概念.RIP的特点.RIP报文格式.RIP度量以及RIP配置认证等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/150085 ...

  9. HCNA Routing&Switching之交换技术基础

    什么是交换机?顾名思义,交换机就是用来数据包交换的:广泛用于终端接入:它的前身是hub(集线器),hub是一个古老的设备,它的作用也是用于终端接入,但hub有一个最大的缺点是它不能隔离冲突域:所谓冲突 ...

随机推荐

  1. 24、Keepalived高可用介绍

    24.1.什么是keepalived: Keepalived 软件起初是专为 LVS 负载均衡软件设计的,用来管理并监控 LVS 集群系统中各个服务节点的状态,后来又加入了可以实现高可用的 VRRP ...

  2. FlowNet:simple / correlation 与 相关联操作

    Flow Net : simple / correlation 与 相关联操作 ​ 上一篇文章中(还没来得及写),已经简单的讲解了光流是什么以及光流是如何求得的.同时介绍了几个光流领域的经典传统算法. ...

  3. Vue $emit

    案例演示 需求:点击子组件触发一个事件改变父组件的字体大小. <div id="app"> <p :style="{fontSize: fontSize ...

  4. 18 shell 重定向以及文件描述符

    1.对重定向的理解 2.硬件设备和文件描述符 文件描述符到底是什么 3.Linux Shell 输出重定向 4.Linux Shell 输入重定向 5.结合Linux文件描述符谈重定向 6.Shell ...

  5. robotframework安装robotframework-requests库遇到的几种问题

    robotframework-requests库依赖于requests库,所以如果安装robotframework-requests库后,在RF中的RequestsLibrary不能使用或者使用pyt ...

  6. UFT对于PDF 文档的操作方法 VBS代码

    1.首先需要安装Adobe Acrobat,而不是Adobe Reader 2.理解AcroExch.App .AcroExch.AVDoc.AcroExch.PODoc App 主要管理应用级别的对 ...

  7. DEV C++ CPU窗口

    push rbp#push实现压入操作的指令,将指定内存地址或操作数压入堆栈(先进后出)mov rbp,rsp# 将rsp所保存的地址或操作数送到目的操作数rbp(修改rbp内容)sub rsp,0x ...

  8. linux相关的常用站点

    1  http://cdimage.ubuntu.com/ ubuntu各个发行版的总集服务器 2 http://www.rpmfind.net/ 各种RPM包

  9. SQL慢查询排查思路

    前言 平时在工作中每天都会做巡检,将前一天所有超过500ms的慢SQL排查出来 查找原因,是否能进行优化.慢慢中,在形成了一套思路方法论. 我个人认为对于排查慢SQL还是有一定的帮助 (一).是否是S ...

  10. P4168-蒲公英-分块

    蒲公英 暴力分块思想.分块的思想与莫队相同.它能将时间和空间复杂度均摊XD belong表示所属区块,num维护区间颜色出现次数,maxx维护区间max值.查询时只需要比较两端的区块即可. #incl ...