网工最常犯的9大错误,越早知道越吃香

下午好,我的网工朋友

我们常说,人要学会避免错误,尤其是对在职场生活的打工人来说,更是如此。

学生时代,我们通过错题本收集错误,提高刷题正确率和分数,但到了职场,因为没有量化的分数标准,很多人就已经遗忘了这个操作。

但其实,总结和复盘在工作中依然十分重要。

老杨总之前发过一篇关于网工错误的总结,是错误提示方向的,不知道你是否看过?

《网工5年,至今搞不懂这些错误提示》

今天我想给你分享的,就是关于另一方向的“错误总结”,是关于STP生成树的“错题本”,并给出了详细解法,欢迎收藏一波。

今日文章阅读福利:《 华为网络交换机设备巡检手册 (网工必备)》

作为总结和方法论依托,怎么能少得了这份能让你的工作事半功倍的资料?私信我,发送暗号“手册”,前20名私信的小友即可获得此份巡检文档

01 什么是生成树协议?

IEEE 802.1D生成树协议(STP)由Radia Pearlman在1985年发明,当时他还供职于数字设备公司(DEC)。

STP是一种第2层协议,在网桥之间运行,旨在帮助建立无环路(loop-free)的网络拓扑结构。

网桥协议数据单元(BPDU)是以太网交换机(实际上就是多端口网桥)之间发送的数据包,负责搭建根网桥(root bridge)、计算通向根的最佳路径以及阻止形成环路的任何端口。

因而生成的树(根在顶端)覆盖局域网中的所有网桥,生成树这个名称由此得来。

生成树在以默认的配置设置防止环路方面很有效。因而,许多人忘了调整任何参数,仅仅接受默认设置了事。

这导致好多人忽视了网络设计中的STP;多年后,许多企业组织惊讶地发现存储的网络问题居然与生成树有关。

有许多方法可以优化STP,但是如果STP没有配置好,那么网络无法得益于这些新的功能特性。

02 在生成树里,网工最常见的9种错误

这张图显示了通常错误配置的生成树环境,表明了本文探讨的许多常见错误。

01 没有配置根网桥

许多企业组织对生成树习以为常,仅仅接受默认的配置设置了事。

这使得网络环境中的所有交换机都使用32678这一默认的根网桥优先级值。

如果所有交换机都有同一个根网桥优先级,那么MAC地址最低的那只交换机将被建立为根网桥。

许多网络并没有配置成单只交换机有一个较低的根网桥优先级,这会迫使那只核心交换机被建立为任何或所有虚拟局域网(VLAN)的STP根。

在这种情况下,MAC地址偏低的小型接入层交换机就有可能是STP根。这种情况势必会增加一些性能开销,导致会聚时间较长(由于根网桥重新建立)。

如上图所示,作为STP根的交换机实际上是核心交换机2,因为它拥有的MAC地址恰好低于核心交换机1。

一条最佳实践就是为“主”(核心)交换机配置较低的STP优先级,那样一只交换机将是根网桥,其他任何核心交换机会有高一点的优先级值。

万一主核心网桥失效,它们就会自动接过重任。万一出现网桥故障,在交换机上配置“不同层次”的STP优先级将查明哪只交换机应该是根网桥。

这样一来,STP网络运行起来就更具有确定性了。

在核心思科交换机上,你应该用这个命令配置主根交换机:

Core-Sw1(config)# spanning-tree vlan 1-4096 root primary

在核心思科交换机上,你应该用这个命令配置次根交换机:

Core-Sw2(config)# spanning-tree vlan 1-4096 root secondary

这两个命令的最终效果会将主交换机端口的网桥优先级设为8192,将次交换机的根网桥优先级设为16384。

02 使用IEEE 802.1D,而未使用Rapid-STP

典型的IEEE 802.1D协议有下列默认计时器:15秒用于侦听,15秒用于学习,20秒用于最长生存时间超时。

生成树中的所有交换机都应该认同这些计时器,不鼓励你修改这些计时器。

这些较旧的计时器对一二十年前的网络来说也许够用了,而如今,这些30秒至50秒的会聚时间实在太慢了。

如今,许多交换机能够支持快速生成树协议(IEEE 802.1w),可是很少有网络管理员启用该功能。快速生成树协议(RSTP)大大缩短了会聚时间,其秘诀在于使用端口角色,使用通过指定端口在网桥之间发送消息这种方法,计算备用路径,以及使用更快速的计时器。

因而,如果可以使用RSTP,企业组织应该尽量使用。如果贵企业仍拥有无法使用RSTP的交换机,也别担心:针对通向老式STP交换机的那些接口,RSTP交换机会切回到传统的802.1D操作方式。

03 阻塞的上行链路

生成树的任务就是防止环路形成。

为此,它学习了解通向根的次最优路径,让这些不太理想的链路处于阻塞模式。

如果交换机之间有多条并行路径,那么其中一条路径将被选择进入阻塞模式,防止两只交换机之间出现环路。这样一来,拥有多条上行链路只适用于主链路故障切换,而不是为这条路径提供更高的带宽。

在上图中,你可以看到交换机D的这种情况。

通向交换机2的链路是通向根网桥的最优路径,而通向交换机1的次最优路径处于STP阻塞状态。

因此,只有一条链路的带宽可供上行通信使用。

我们希望能够利用这两条上行链路来转发流量、增加带宽,那样我们可以使用某种链路聚合技术,比如端口信道/以太网信道(LACP (IEEE 802.3ad),PAgP),或者某种多机箱端口信道(MC-LAG IEEE 802.3AX/AY),或者使用拥有虚拟端口信道(vPC)的思科Nexus交换机。

另一种选择就是使用可堆叠交换机,并配置每个上行链路端口,连接至堆叠交换机中的不同交换机。

由于堆叠交换机可以配置成它就是一只交换机,那样可以使用端口信道;从生成树的角度来看可以将两条链路当成一条链路,这两条链路都可以用来转发流量。

其他选择能够取得同样这个效果,比如思科的6500虚拟交换系统(VSS)。

04 超过STP的最大规模

我们都生活在这样的城市:缺少统一协调的城市规划,道路总是拥挤不堪、无法顺畅通行。同样,网络常常像白杨树那样生长。

网络当中出现新增的设备,但是网络很少重新设计架构,除非购置了一套全新的网络。

随着新的交换机添加到局域网环境中,生成树不断随之变化。

一些大型网络环境支持的应用程序依赖整个网络上的第2层连接,这类网络环境应该意识到这种生长。

要是网络拓扑超过STP的最大规格,这些企业会遇到问题。802.1D规范建议,生成树的网桥跳数(bridge hop)不超过7段。

如果有许多“雏菊链式”交换机,很可能出现这种情况。参阅上图,就会发现连一种简单的网络拓扑也会超过生成树的这一最大规模。

像医院和大学校园这些组织的网络拥有庞大的局域网环境,跨整个网络延伸单一的VLAN。

它们应该认识到其生成树的规模。这些组织应该将局域网交换环境的情况记入文档,并且寻找过于频繁的拓扑变更通知(TCN),从而定期检查生成树的规模。

05 VTP域

企业组织面临的困难常常牵涉VLAN隧道协议(VTP)以及它与STP有怎样的关系。

VTP这种机制可以帮助在单一局域网交换环境中建立和维护VLAN。

VTP服务器可以建立新的VLAN,然后自动为VTP客户机配置那些新的VLAN。

随后,那些VTP客户端交换机上的端口被分配到这个新的VLAN。

VTP有助于让VLAN编号在局域网交换环境中保持一致性。很早以来就存在与VTP有关的问题,许多人建议将VTP配置成透明模式。

一些企业组织抽时间来配置VTP域,并配置VTP服务器和客户机。一些企业组织还在所有交换机上使用同一个VTP域名,即便在所有地方都是如此。

如果使用第2层城域以太网服务,并将其配置成802.1Q干线,这就会开始引起问题。

上图描述了这个问题。该例子中的交换机都有同样的VTP域名。

数据中心与灾难恢复站点之间的连接使用了802.1Q干线,但是只允许三个VLAN接入这条干线。

因此,灾难恢复站点的交换机了解所有的VLAN,使用生成树来确定城域以太网链路是VLAN 10、20和30通向根的路径。

然而,灾难恢复站点的交换机认为,它是该干线上未使用的其他VLAN的STP根。

这可能会引起问题,因为现在环境有两只交换机认为自己是VLAN 40、50和60的STP根。

使用VTP的企业应该慎重使用,知道哪些交换机是VTP服务器或客户机,使用VTP密码,删除不再提供服务的交换机上的配置和VTP信息,并且在不需要VTP的场合下考虑禁用VTP。

06 STP与HSRP不一致

许多企业组织拥有冗余核心交换机,它们还为所连接局域网上的计算机充当第3层默认网关。

像HSRP、VRRP、GLBP及其他这些首跳冗余协议为只配置一个单一默认网关IP地址的主机提供了默认网关冗余机制。

如果HSRP活动默认网关不是为该VLAN充当STP根的同一只第2层/第3层交换机,问题就会随之而来。

上图表示,交换机1是HSRP活动路由器,但它不是任何VLAN的STP根。

交换机2是STP根,但它配置成HSRP备用路由器。这就形成了非最佳流量路径,可能会导致核心交换机间的干线上出现更严重的拥塞状况。

使用首跳冗余协议的企业应该确保,活动默认网关与STP根相一致。

07 没有控制STP

由于那么多的企业组织只是接受交换机厂商在生成树方面的默认设置,它们并没有最优化控制STP。

企业可能没有配置生成树,以防止无意中添加的未授权交换机形成环路。

许多企业使用思科的PortFast接口设置,帮助为连接到我们知道不运行STP的计算机的端口迅速调出交换机端口。激活端口之前,让端口连接至等待侦听和学习状态的计算机毫无意义。

结合使用PortFast和BPDU-Guard是最佳实践,那样如果通过该接口收到BPDU,它可以防御性地关闭端口。

激活这项功能的思科IOS全局命令如下:

Core-Sw1(config)# spanning-tree portfast edge bpduguard

激活这项功能的思科IOS接口配置命令如下:

Core-Sw1(config-if)# spanning-tree bpduguard enable

如果交换机已配置好了任何端口信道,那么配置以太网信道保护机制(EtherChannel guard)是个好主意。

激活这项功能的思科IOS全局命令如下:

Core-Sw1(config)# spanning-tree etherchannel guard misconfig

企业还应该在连接至服务器的所有接入交换机端口上使用根保护机制(Root Guard)。

激活这项功能的思科IOS接口配置命令如下:

Core-Sw1(config-if)# spanning-tree guard root

有时候,刀片服务器嵌入了以太网交换机,这类服务器也应该考虑到STP设计和配置当中。应该将这些交换机的配置与其他任何STP设备一视同仁,其配置应该补充网络环境中的其他交换机。

08 不一致的生成树度量指标

在过去,生成树使用16位值作为网桥使用的链路成本,以计算通向根的最短路径。若使用这些较老的16位度量指标,10Mbps链路的成本为100,1Gbps链路的成本为4。

然而,这些度量指标已跟不上链路速度的需要,现在有了32位长路径成本。若使用较新的32位度量指标,1Gbps链路的成本为20000,10Gbps链路的成本为2000,而100Gbps链路的成本为200。

想在思科交换机上启用长路径成本,只要输入这个全局配置命令:

Core-Sw1(config)# spanning-tree pathcost method long

如果网络里面既有使用16位路径成本值的交换机,又有使用32位路径成本值的交换机,就会出现问题。因此,配置方面做到一致很重要,力求让你的所有网络设备都使用32位长路径成本这一较新的度量指标。

09 禁用生成树

我们偶尔会碰到这种网络:生成树协议故意被禁用,也许是网络管理员觉得,不需要STP,因为网络没有任何的线缆环路。

也许是网络管理员觉得,禁用STP可以缩短第3层会聚时间。

然而,我本人亲眼目睹过这一幕:有人擅自添加了一条线缆后,STP被禁用的网络出现了全面瘫痪。这导致了“致命的特大数据包风暴”,原因是数据包在环路中不断转发。

不像第3层环路:IP数据包的TTL值会减小,直至为零,随后数据包被丢弃,第2层环路则允许数据包不断转发,而不减小TTL。

让STP处于启用状态是个最佳实践,即便可能不需要它。其道理在于,这是一种成本低廉的保险机制,可以防止环路。在现代交换机上运行STP并不会带来任何明显的开销。

每秒只有几个配置BPDU并不会大大增加带宽使用量。STP瘫痪的风险实在太高了。因此,禁用了STP的企业应该重新启用它。

03 其他常见问题

企业在局域网交换机方面还会常犯另外几个配置错误。

许多企业使用VLAN编号1,这给思科交换机的安全带来了一些影响。

如果VLAN 1用作思科交换机上的“原生VLAN”,问题也会出现。

思科交换机上的其他常见问题与网络管理员没有标记原生VLAN有关。还有无数的交换机间链路没有经过配置,以限制干线上允许VLAN。

我们在评估网络状况时,经常会在客户的网络中遇到这些问题。

有时候,上述九大问题会全部集中出现在一个环境中。

如果企业组织纠正这些生成树问题,可以改善应用程序性能、缩短会聚时间、提高弹性以及减少网络停运时间。

建议每位网工都应该好好阅读本篇文章,确定本企业的设备有没有存在这些错误。

审查网络、查找这几类问题,并且主动采取措施来解决这些问题,这很重要。

STP方面的这些改进有望提升网络的稳定性、性能、弹性以及会聚速度。

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/73360.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WebAPIs 第四天

1.日期对象 2.节点操作 3.M端事件 4.JS插件 一.日期对象 实例化时间对象方法时间戳 日期对象:用来表示时间的对象 作用:可以得到当前系统时间 1.1 实例化 ① 概念:在代码中发现了new关键字时,一般将这个操作称为实例化 …

九、多态(2)

本章概要 构造器和多态 构造器调用顺序继承和清理构造器内部多态方法的行为 协变返回类型使用继承设计 替代 vs 扩展向下转型与运行时类型信息 构造器和多态 通常,构造器不同于其他类型的方法。在涉及多态时也是如此。尽管构造器不具有多态性(事实上…

DoIP学习笔记系列:(五)“安全认证”的.dll从何而来?

文章目录 1. “安全认证”的.dll从何而来?1.1 .dll文件base1.2 增加客户需求算法传送门 DoIP学习笔记系列:导航篇 1. “安全认证”的.dll从何而来? 无论是用CANoe还是VFlash,亦或是编辑cdd文件,都需要加载一个与$27服务相关的.dll(Windows的动态库文件),这个文件是从哪…

vscode配置vue用户代码片段

打开vscode软件 选中左下角的设置按钮,再点击用户代码片段(如图) 再选择vue.json文件/新建全局代码片段(如图) 进行相关配置(如下代码) {"Vue2 quickly build template": {&q…

Unity UI.Image 六边形+流光 Shader

效果图 参考代码 Shader"Custom/HexFlowImage" {Properties{[PerRendererData] _MainTex ("Sprite Texture", 2D) "white" {}_Color ("Tint", Color) (1,1,1,1)_StencilComp ("Stencil Comparison", Float) 8_Stencil (…

SQL | 注释

2-注释 2.1-单行注释 select prod_name -- 这是一条行内注释 from products; 使用两个连字符(-- ) 放在行内,两个连字符后的内容即为注释内容。 # 这是一条注释 select prod_name from products; 这种注释方式可能有些数据库不支持,所以使用前应该…

shiro框架基本概念介绍

目录 什么是Shiro: Shiro的核心功能包括: Shiro主要组件及相互作用: Shiro 认证过程: Shiro 授权过程: 资料获取方法 什么是Shiro: Shiro 是一个强大灵活的开源安全框架,可以完全处理身份验证、授权、加密和会话…

funbox3靶场渗透笔记

funbox3靶场渗透笔记 靶机地址 https://download.vulnhub.com/funbox/Funbox3.ova 信息收集 fscan找主机ip192.168.177.199 .\fscan64.exe -h 192.168.177.0/24___ _/ _ \ ___ ___ _ __ __ _ ___| | __/ /_\/____/ __|/ __| __/ _ |/ …

单源最短路的扩展应用

选择最佳线路 有一天,琪琪想乘坐公交车去拜访她的一位朋友。 由于琪琪非常容易晕车,所以她想尽快到达朋友家。 现在给定你一张城市交通路线图,上面包含城市的公交站台以及公交线路的具体分布。 已知城市中共包含 n 个车站(编号…

Azure概念介绍

云计算定义 云计算是一种使用网络进行存储和处理数据的计算方式。它通过将数据和应用程序存储在云端服务器上,使用户能够通过互联网访问和使用这些资源,而无需依赖于本地硬件和软件。 发展历史 云计算的概念最早可以追溯到20世纪60年代的时候&#x…

Stable Diffusion WebUI安装和使用教程(Windows)

目录 下载Stable Diffusion WebUI运行安装程序,双击webui.bat界面启动插件安装(github)模型下载(有些需要魔法)安装过程遇到的大坑总结参考的博客 整个过程坑巨多,我花了一个晚上的时间才全部搞定,本教程针对有编程基础…

网络设备(防火墙、路由器、交换机)日志分析监控

外围网络设备(如防火墙、路由器、交换机等)是关键组件,因为它们控制进出公司网络的流量。因此,监视这些设备的活动有助于 IT 管理员解决操作问题,并保护网络免受攻击者的攻击。通过收集和分析这些设备的日志来监控这些…

苹果Mac像Windows一样使用

一、将磁盘访问设置的像Windows一样: 1.1、点击任务栏第一个按钮打开“访达”,点击菜单栏上的访达-偏好设置: 1.2、勾选“硬盘”,这样macOS的桌面上就会显示一个本地磁盘,之后重命名为磁盘根,相当于window…

部署Springboot项目注意事项

步骤 步骤 1:将数据库内容在云服务器上的数据库部署一份 我使用mariadb;会出现一些不兼容现象;我们需要把默认值删掉 2:配置文件你得修改地方 a:linux是磁盘区分(像我自己项目用来储存验证码的文件我们得换这个配置;…

Spring_AOP

一、AOP简介 AOP,Aspect Oriented Programming,面向切面编程,是对面向对象编程0OP的升华。OOP是纵向对一个事物的抽象,一个对象包括静态的属性信息,包括动态的方法信息等。而AOP是横向的对不同事物的抽象,属性与属性、方法与方法、对象与对象…

cs231n assignment2 q5 PyTorch on CIFAR-10

文章目录 嫌啰嗦直接看源码Q5 :PyTorch on CIFAR-10three_layer_convnet题面解析代码输出 Training a ConvNet题面解析代码输出 ThreeLayerConvNet题面解析代码输出 Train a Three-Layer ConvNet题面解析代码输出 Sequential API: Three-Layer ConvNet题面解析代码输出 CIFAR-1…

【MongoDB】解决ProxmoxVE下CentOS7虚拟机安装MongoDB6后启动失败的问题

目录 安装步骤: 2.1 配置yum源 2.2 安装MongoDB 2.3 启 动MongoDB ProxmoxVE上新装的CentOS7.4虚拟机,安装MongoDB6。 安装步骤: 2.1 配置yum源 # 创建mongodb yum源(https://www.mongodb.com/docs/manual/tutorial/insta…

27岁了学plc还来得及吗?

如果你是学电气或者自控,完全没问题,PLC其实只是你的理解力的问题,真正底层的,都帮你打包了,你直接用就是。问题只是:你要能透彻理解 如果你从一个完全陌生的行业转过来,完全没必要。如果本身就…

[数据分析与可视化] Python绘制数据地图5-MovingPandas绘图实例

MovingPandas是一个基于Python和GeoPandas的开源地理时空数据处理库,用于处理移动物体的轨迹数据。关于MovingPandas的使用见文章:MovingPandas入门指北,本文主要介绍三个MovingPandas的绘图实例。 MovingPandas官方仓库地址为:mo…

自定义批量修改图像位深度

什么是图像位深度??? 图像位深度(Bit Depth)是指图像中每个像素所占的比特数,它决定了图像能够表示的颜色数量和亮度层级。 简单来说: 位深度越高,每个像素所能表示的颜色数和亮度等级越多。位深度越低,每个像素所能表示的颜色数和亮度等级…