HCNA Routing&Switching之STP基础
前文我们了解了VLAN动态注册协议GVRP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15113770.html;今天我们来讨论下二层环路和STP相关话题;
我们知道网络设备之间产生环路是很正常的,但为了通信质量,通常我们也要避免环路;对于三层网络,产生环路并不是很严重,因为我们有动态的路由协议可以防止环路,当然即便管理员手动配置静态路由形成环路,但最终数据包会停下来(因为三层ip协议有TTL字段可以让数据包最终停下来);对于二层网络来说,一旦产生环路,那将是致命的(其原因是二层环路一旦产生,数据包在环路里停不下来),严重的话可以瞬间将整个二层网络的链路带宽跑满,从而导致整个网络不可用;所以二层环路我们无论如何都要避免;为了提高网络可靠性,通常情况交换网络中会使用冗余链路,然而冗余链路最最直接的后果就是给交换网络带来环路的风险,并导致广播风暴以及MAC地址表不稳定等问题,进而影响到用户的通信质量。为了解决二层环路所带来的风险,stp协议诞生了;stp主要作用就是通过阻断冗余链路来消除网络中可能存在的环路,同时当活动链路发生故障时,激活冗余链路及时恢复网络连通性,从而实现网络的可靠性;
二层网络设计需求和问题
提示:上图是一个小型网络的拓扑图,通常为了网络的可靠性,汇聚层,核心层都会放置两个及两个以上的交换机,并且两两相俩(主要作用就是做高可用检测对方是否存活);接入层上联汇聚层会有至少两条链路,这样一来接入层的交换机就和汇聚层的交换机可能形成环路;比如上图红色和蓝色链路就是环路;
二层环路问题--->广播风暴
实验:如下拓扑图,我们用pc发送一个arp广播,看看在二层环路里会发生什么?
提示:默认情况华为的交换机是开启了STP,为了演示出效果,我们需要先把各个交换机的STP关掉;
关掉各交换机的STP
命令:stp disable
提示:S2,S3,都是一样的操作;
用pc ping同网段任意地址然后抓arp的包,看看会发生什么?
提示:可以看到我们用pc发了5个icmp包,而我们在链路上瞬间抓到了几千个arp包;这就是因为二层有环路产生,导致arp广播一直在环路里打圈停不下来;要想让里面的数据包停下来,要么在开启任意一台设备的STP,或者断掉任意一条链路,破坏环路;
在S2上开启STP
提示:可以看到当我们在S2上开启STP以后,对应数据包就停了下来;这里需要注意这里开启STP是阻断了ARP广播数据一直在环路打转,是因为初始化STP时会将对应端口阻塞掉;但是并不意味着环路就此被破坏了;一旦当STP稳定以后,还有数据包进来,数据包还会在环路里打转;
验证:现在用pc再次发送arp广播,看看抓包是否还会抓到很多?
提示:可以看到现在pc发送一个arp广播,在链路上还是会抓到很多arp广播包,这说明开启S2单台设备的STP并不能破坏环路;
开启S1的STP,看看对应环路是否能被破坏呢?
现在再次用pc发送arp广播,看看对应是否还会抓到很多arp包呢?
提示:可以看到现在用pc发送arp广播,在链路上还是会有很多arp包,说明环路还是存在,并没有被破坏;
开启S3的STP,看看环路是否被破坏?
用pc发送arp广播,看看是否还会抓到很多arp广播包呢?
提示:可以看到当s3开启STP以后,再次使用pc发送arp广播,对应抓包就没有像之前那样几百个arp包,说明环路被破坏了;从上述的实验可以看到,一旦二层网络里发生环路,数据包是停不了的;我们只有认为手动破除环路,或者通过开启STP破除环路;通常情况下所有设备都开启STP才能真正有效的破环环路,所以二层网络里如果有不支持STP的交换机,我们在接线时一点要注意不要产生环路;
二层环路问题--->MAC地址表震荡
还是上述实验拓扑,我们把三个交换机的STP都关掉,然后用pc发送arp广播,然后查看S1或S2或S3的mac地址表,看看对应mac地址表会有什么变化?
用PC发送arp广播
查看S1的mac地址表
提示:可以看到同一个MAC在S1上一会在1口学习到,一会在2口学习到;这是因为pc发送的arp广播会从1口和2口泛洪出去,在S2和S3收到arp广播以后,又会从对应的其他接口泛洪出去,这样一来,从s1的1口泛洪出去的arp广播,最终会从s1的2口收到;2口泛洪出去的arp广播又会从1口收到,所以对于s1来说pc的mac就会一会从1口学习到,一会又从2口学习到;这样一来s1的mac地址表就很不稳定;对于s2和s3也是同样的现象;通过上述的实验,我们可以看到二层环路一旦产生,就会有广播风暴和mac地址震荡;
STP:Spanning Tree Protocol,生成树协议;主要通过构造“一棵树”来消除交换网络中的环路;同时当活动链路发生故障,激活备份链路,从而实现网络的可靠性;
BPDU:Bridge Protocol Data Unit -桥协议数据单元,STP工作协议;
提示:STP通过各交换机发送的BPDU来完成根桥,根端口,指定端口和阻塞端口的选举,从而实现破除环路;
BPDU数据包结构及各字段解释
提示:STP有三个模式,默认华为交换机使用的是mstp;我们可以通过stp mode stp更改stp模式为原生stp模式;对于STP来说,其bpdu结构如上;相信很多字段都能看懂;这里说一下bpdu的类型这个字段(BPDU Type)和BPDU flag字段;
在STP的BPDU中,BPDU的类型主要有两种,一种是configuration,一种是TCN(Topology Change Notification);configuration类型的BPDU主要用来选举根交换机以及确定每个交换机端口的角色和状态,在初始化STP过程中,每个交换机都会主动发送这种类型的BPDU;当网络拓扑稳定以后,只有根桥会主动发送这种类型的的BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。发送周期为Hello Time,默认是2秒发送一次;老化时间为Max Age,默认是20秒;TCN类型的BPDU,主要作用是当网络拓扑发生变化时,下游交换机向上游交换机发送拓扑变化通知;默认情况,在configuration类型的BPDU包里,BPDU flag字段中,TCA和TC都是0,只有TCN以后,对应标志为才会置为1;
提示:BID主要用来表示二层网络中的交换机,主要由两部分组成,优先级和mac地址;优先级取值范围为0-65535,步长4096,数字越低越优先;默认优先级为32768;
提示:PID主要用来标识端口的,也是由优先级和对应端口的编号组成(这个编号和端口名称没有直接的关系,默认都是一个顺序编号),优先级取值范围为0-255,步长为16,数字越小越优先,默认值为128;
提示:路径开销用来描述链路优劣,数字越小表示链路开销越低,即链路就越优;这个路径开销和链路带宽有直接的关系;上述是98年标准和更早的标准;不同的链路对应开销各不相同;
提示:根路径开销是指到达根桥的最短路径的开销;数字越小,表示链路越优;rpc的计算方式是沿途各链路pc总和;上图中假设sw1为根桥,那么sw2到达根桥的开销就需要看对应链路是多大带宽了,如果是100M根据98年标准,则开销为19;那么sw3到达sw1的开销就为sw2到达sw1的路径开销+sw3到达sw3的路径开销;sw3到达sw2的链路带宽为10M,所以对应的开销为19,所以sw3到达sw1的开销就为19+100=119;
附图:各速率链路开销标准
提示:华为默认使用802.1t标准;
HCNA Routing&Switching之STP基础的更多相关文章
- HCNA Routing&Switching之路由基础
在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表.路由器以及网关的相关术语:路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据:路由表就是多 ...
- HCNA Routing&Switching之STP选举规则
前文我们了解了二层环路对网络带来的影响,以及STP工作流程和BPDU数据包结构和相关字段的说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15121317. ...
- HCNA Routing&Switching之STP端口状态、计时器以及拓扑变化
前文我们了解了STP选举规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15131999.html:今天我们来聊一聊STP的端口状态.计时器.端口状 ...
- HCNA Routing&Switching之OSPF度量值和基础配置命令总结
前文我们了解了OSPF的网络类型,OSPF中的DR和BDR的选举规则.作用等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15054938.html: ...
- HCNA Routing&Switching之交换技术基础
什么是交换机?顾名思义,交换机就是用来数据包交换的:广泛用于终端接入:它的前身是hub(集线器),hub是一个古老的设备,它的作用也是用于终端接入,但hub有一个最大的缺点是它不能隔离冲突域:所谓冲突 ...
- HCNA Routing&Switching之动态路由协议OSPF基础(二)
前文我们主要了解了OSPF的区域.区域分类.路由器类型.OSPF的核心工作流程,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/15025533.html:今天 ...
- HCNA Routing&Switching之动态路由协议OSPF基础(一)
前文我们了解了基于路径矢量算法的动态路由协议RIP防环以及度量值的修改相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15012895.html:今天我 ...
- HCNA Routing&Switching之二层交换技术VLAN基础
前文我们主要聊了下交换机的工作原理和以太网接口的速率和双工相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15088183.html:今天我们主要来聊一 ...
- HCNA Routing&Switching之静态路由
前文我们聊到了路由的相关概念和路由基础方面的话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14947897.html:今天我们聊聊静态路由相关话题: 回顾 ...
随机推荐
- 大型情感类技术连续剧-徒手撸一个 uTools(二)
前言 上篇手把手教你实现一个支持插件化的 uTools 工具箱我们介绍过了如何通过 electron 实现 utools 的插件功能体系,并按照 utools 的交互和设计做出了一套可以支持插件化的桌 ...
- ECS实例中的应用偶尔出现丢包现象并且内核日志(dmesg)存在“kernel: nf_conntrack: table full, dropping packet”的报错信息
问题描述 连接ECS实例中的应用时偶尔出现丢包现象.经排查,ECS实例的外围网络正常,但内核日志(dmesg)中存在"kernel: nf_conntrack: table full, dr ...
- Vue 两个字段联合校验典型例子--修改密码
1.前言 本文是前文<Vue Element-ui表单校验规则,你掌握了哪些?>针对多字段联合校验的典型应用. 在修改密码时,一般需要确认两次密码一致,涉及2个属性字段.类似的涉及 ...
- 《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)
1.简介 从这篇文章开始,要介绍web自动化核心的内容,也是最困难的部分了,就是:定位元素,并去对定位到的元素进行一系列相关的操作.想要对元素进行操作,第一步,也是最重要的一步,就是要找到这个元素,如 ...
- python使用笔记10--os,sy模块
os操作文件,可以输入绝对路径,也可以输入相对路径 windows使用路径用\连接 Linux使用路径用/连接 但是我的电脑是windows 用/也没问题 1.os常用方法 1 import os 2 ...
- Java基础00-Java概述1
1. Java语言发展史 1.1 Java语言 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Univers ...
- Git初始化本地已有项目
1.初始化仓库 git init 2.remote git remote add origin 仓库地址 3.从远程分支拉取master分支并与本地master分支合并 git pull origin ...
- WSL2:Windows 亲生的 Linux 子系统
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- Windows内核驱动--实现修改线程优先级demo
在User下修改优先级比较麻烦,该驱动可以直接用线程ID,和优先级级数两个参数直接修改线程的优先级: Client代码: #include <Windows.h> #include < ...
- github在不同电脑上协同开发
当我换了电脑后,开发自己的github项目遇到了一些问题. 首先,git clone 'repository url'拉取下来项目,开始开发项目发.修改了一些文件后,当要git commit, git ...