HCNA Routing&Switching之STP端口状态、计时器以及拓扑变化
前文我们了解了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端口状态、计时器以及拓扑变化的更多相关文章
- HCNA Routing&Switching之STP基础
前文我们了解了VLAN动态注册协议GVRP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15113770.html:今天我们来讨论下二层环路和STP相 ...
- HCNA Routing&Switching之STP选举规则
前文我们了解了二层环路对网络带来的影响,以及STP工作流程和BPDU数据包结构和相关字段的说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15121317. ...
- HCNA Routing&Switching之DHCP服务
前文我们了解了STP的端口状态.计时器以及端口状态切换和网络拓扑变化相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15140672.html:今天我们 ...
- HCNA Routing&Switching之动态路由协议OSPF基础(一)
前文我们了解了基于路径矢量算法的动态路由协议RIP防环以及度量值的修改相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15012895.html:今天我 ...
- HCNA Routing&Switching之动态路由协议RIP
前文我们了解了动态路由的基本概念,以及动态路由和静态路由的区别,优缺点,动态路由的分类,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14995317.html ...
- HCNA Routing&Switching之静态路由
前文我们聊到了路由的相关概念和路由基础方面的话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14947897.html:今天我们聊聊静态路由相关话题: 回顾 ...
- HCNA Routing&Switching之路由基础
在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表.路由器以及网关的相关术语:路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据:路由表就是多 ...
- HCNA Routing&Switching之RIP防环机制
前文我们了解了RIP的基础概念.RIP的特点.RIP报文格式.RIP度量以及RIP配置认证等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/150085 ...
- HCNA Routing&Switching之交换技术基础
什么是交换机?顾名思义,交换机就是用来数据包交换的:广泛用于终端接入:它的前身是hub(集线器),hub是一个古老的设备,它的作用也是用于终端接入,但hub有一个最大的缺点是它不能隔离冲突域:所谓冲突 ...
随机推荐
- 30、LNAP(php和nginx相关优化)
30.1.php-fpm.conf参数优化: [global] pid = run/php-fpm.pid #php后台运行pid路径 error_log = log/php-fpm.log #php ...
- 阿里P7大佬带你解密Sentinel
概述 在接连写了两篇关于限流的文章(<面试补习>- 你来说说什么是限流?, 限流神器Sentinel,不了解一下吗?)后,总感觉还差最后一点内容来闭环整个限流相关的内容,这两天在翻查相关文 ...
- 37.qt quick- 高仿微信实现局域网聊天V3版本(添加登录界面、UDP校验登录、皮肤更换、3D旋转)
1.版本介绍(已上传至群里) 版本说明: 添加登录界面. UDP校验登录. 皮肤更换. 3D旋转(主界面和登录界面之间切换) . 效果图如下所示: 如果效果图加载失败,可以去哔哩哔哩 https:// ...
- CentOS-自定义SFTP用户及目录
ftp功能说明:通过SSH启动CentOS的sftp功能 创建用户组及用户(sftp可变) $ groupadd sftp $ useradd -g sftp -s /sbin/nologin -d ...
- Springboot:SpringBoot2.0整合WebSocket,实现后端数据实时推送!
一.什么是WebSocket? B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议只支持请求响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度,因为服务器不 ...
- Go nuts
含义: to behave in a crazy, enthusiastic, or violent way. 发起狂来 详细讲解 go 在这里也不是"去"的意思,而是和 get. ...
- C语言常用函数笔记
strcmp 比较字符串: sscanf 读取格式化的字符串中的数据: memset 初始化内存的"万能函数",通常为新申请的内存进行初始化工作.对一段内存空间全部设置为某个字符, ...
- OSSBrowser windows使用
目录 1. 安装 2. 启动OSSBrowser并登录 1. 安装 下载地址:github或官方 2. 启动OSSBrowser并登录 ossbrowser安装包下载到本地解压之后,点击oss-bro ...
- 「CF85E」 Guard Towers
「CF85E」 Guard Towers 模拟赛考了这题的加强版 然后我因为初值问题直接炸飞 题目大意: 给你二维平面上的 \(n\) 个整点,你需要将它们平均分成两组,使得每组内任意两点间的曼哈顿距 ...
- CentOS 7 文件权限之访问控制列表(ACL)
Linux的ACL是文件权限访问的一种手段.当拥有者所属组其他人(own,group,other)不能满足给一个单独的用户设置单独的权限时,ACL的出现就很好的解决了该问题. 比如其他用户own,不属 ...