大家好,我是老杨。
之前我说了很多次,故障排错,是每个网工的必修课。很多人一开始都是手残,但手残到引发严重的情况的还是比较少见的。
今天老杨的一位粉丝和我分享了关于他工作中亲眼见到的,排错时发生的“惨状”。
老杨通篇看下来,觉得很有借鉴意义,可供新手网工们多参考。
他有一句话我觉得很认同:“由于设备本身的软件或者硬件出现问题而导致的故障,其实是比较少见的。”
“大部分都是人为的。”
排错排成这样,谁能比我更夸张?
这是我之前工作中遇见过的一次网络故障。
我觉得,排错最重要的点在于,你发现网络故障后,得对这个现网的网络环境有个基本的判断。
你要判断它的组网是什么样的,它的配置是什么样的,这些基本的信息你要收集到,你才能对故障进行分析。
所以我先讲下故障发生的背景,也给你们几条线索,一起判断下。
这个故障的背景其实就是一个很简单的配置变更。
在中午休息的时间,我的同事对厂区的某一栋楼的汇聚交换机进行配置变更。
他实际上是要增加一台接入交换机,因为厂区人员变多了,终端也就变多了,所以现有的网络和接入设备不能满足需求,需要新增一台接入层的交换机。
大家都知道,在现网中新增一台接入交换机,这个配置是非常简单的。
一般只需要将接入交换机上到机架,两根光纤连到汇聚交换机就搞定了。
而通常你接入交换机连接汇聚交换机需要做什么配置?
一般来说,都是将这个接入交换机所需要VLAN配上,再将接入交换机连接汇聚交换机的两个接口,或者一个接口配置成Trunk,搞定就好了。
交换机之间互联的链路需要配置成trunk,这是CCNA学习中很基础的内容,这里我就不多复述了。
然后为了保证这个链路的可靠性,需要从接入交换机到汇聚交换机配置一个链路聚合,这一块也是比较基础的网络学习内容,配置也很简单。
本来,按照工作的进展,我同事刷完配置之后就回到了工位休息,而这个故障并没有马上出现。
因为当时午休,没人办公,所以也就没人会发现有这样的问题。
而等到了下午2点钟,上班的人使用网络的时候才发觉,“啊?楼层交换机出现了故障!”,或者说才发觉当时“不能上网了!”
因为对于终端用户来说,最直观的体验就是电脑上不了网。
那上不了网怎么办?投诉呗。
所以就打电话给技术支持。
其实技术他的配置变更非常简单,只是新增了一台设备,新增了一些配置,可这时候网络却出现了故障。
如果是你遇到了这种情况,你会怎么分析这个故障?
展开来看下它的网络架构,网络架构其实就是传统的三层架构,核心连接汇聚,汇聚连接楼层接入交换机,简单吧?
只是说它的网络架构会用到堆叠这个技术。
它的核心交换机连接汇聚的时候,汇聚是两台做了堆叠,这边抛开核心交换机不看,两台汇聚交换机做堆叠,堆叠完成后,接入交换机上行两条链路,分别连到2台汇聚交换机。
虽然这边有2台汇聚交换机,但汇聚交换机在逻辑上是一台设备,因为他这两条链路上做了链路捆绑。
链路捆绑也是堆叠的基本技术。
逻辑拓扑如图所示,这个拓扑是个无环网络把?因为用了堆叠这个技术,这样的一个拓扑,它其实就是一个无环的网络。
而汇聚是两台设备,那接入交换机只需要在连接下行的接口配上VLAN,连接下行终端——PC,只要做个VLAN划分,然后我们的上行接口,配置链路聚合,同时将这个上行的链路聚合口配置成trunk口,就这么简单的三个配置。
那这么简单的三个配置,为什么会导致这个网络出现环路?
当然,当时还不知道是环路。
因为我同事当时觉得,这个网络是没有环路的,而且他用了堆叠,而且配置了链路聚合,这样的网络,它是不存在环路的啊……
所以当时他的第一反应不是怀疑环路的问题。
此时再看我们的第一个线索:无环网络。
以及第二线索:配置及其简单,只配了vlan,trunk、链路聚合这三个。
你分析出什么了吗?
往下看第三个线索:设备无法远程登录。这该怎么理解?
实际上一般出现网络故障之后,一般人会采取应对做的第一步动作是什么?
肯定是要远程登录到网络设备,进行配置查看,要看下配置对不对。
因为都是刷上去的配置,所以第一步就是远程登录这台设备,可以登录汇聚交换机也可以登录接入交换机。
但是试图登录的时候发现,上不去。没有办法登录到这两台设备上……
登不上怎么办?
设备无法远程登录,通常会是什么情况?
它无法被ping通,无法对它talent,这应该有同学在工作中遇到过吧?
通常发生这种情况,如果设备没有办法ping通,你只要保证被路由没有问题,而设备却无法ping通,无法远程管理,这就说明它的CPU已经满了。
因为所有需要ping这台设备,需要直接访问这台设备的IP地址的所有报文,都是需要CPU来处理的。
ping或者talent这台设备,所有的远程报文都是需要CPU来处理的,这时候如果CPU飙到100%了,就会造成无法远程登录和管理。
这时候我同事,终于开始怀疑是不是网络环路了……
因为在二层网络里面,能够导致CPU 100%的情况,大概率是由环路导致的,所以基本上可以判断是一个环路。
但是为什么?为什么会出现环路?我命名配置的无环的!哪来的环路?
这时候要怎么办?只能跑现场了。
当时正好我在现场,由于当天中午临时突发了这个问题,我同事也叫我过去帮忙。
所以我就跟他们一起去现场看了下这个问题到底什么情况。
去现场一般来说你需要带上console和笔记本。
去设备的现场,一般通过console线远程或者直接连接到这个设备上,登录这个设备查看配置。
但是大家也知道,由于设备CPU 100%爆掉了,你如果通过console线登录设备,也会非常的卡,基本上你敲命令,过几秒钟才会有反应。
所以一般遇到环路这种问题,设备本身CPU满了,因为你很难对这个设备进行配置查看,也就很难排查。
所以当时用了个最笨的办法——拔线。
在汇聚交换机上,汇聚交换机所有连接接入交换机的这个口,一条条去拔线。
最后拔到新增的这台设备时发现网络恢复了,这时候基本上就可以定位到新增的这台交换机设备,它是存在问题的。
可配置明明这么简单,却出现环路了,离谱。
这个地方唯一有可能出现环路的是什么场景?
这里我直接告诉你,这是因为这里链路聚合的配置不对。他们在配置链路聚合的时候,只配了一端,只在汇聚交换机上刷了链路聚合的配置。
这里可以看出,汇聚交换机这两个口是捆绑在一起的,但下行的这台接入交换机,他的链路聚合没有配,也就是说,它是2个独立的口。
所以当时拔线拔到了网络恢复,我就登录进了设备查看配置。
这一查看让我哭笑不得,发现非常简单,只是漏了两条配置而已,在物理接口下漏配了两条链路聚合的命令,就这么简单。
而就是这么简单的一个问题,就导致了这次的网络环路,这时候生成树是不生效的。
其实它也开了生成树,他就非常纳闷,“我开了生成树为什么还会有环路?是不是你设备有BUG,你设备是不是有问题?”
那为什么生成树不起作用?
因为对于汇聚交换机来说,只有一个口;
而对于接入交换机来说,却存在独立的2个口。
只是从接入交换机发出的生成树BPDU报文,发到上行接口之后,汇聚交换机不会再从接口发出来。
因为只有一个口,它是不会从这个接口再发出来的,所以这时候设备本身就不会认为网络有环路。
于是就导致了,生成树这时候是没有作用的,即使你开了生成树也检测不到环路的。
后来我把链路聚合的配置重新配上了,网络就恢复了。
其实就是一个非常简单的一个小的疏忽,就在刷配置的时候漏刷了2条命令,从而导致的网络故障。
实际上在现网中的网络故障里,50%以上都是人为的,基本上都是人为疏忽、配置变更导致的故障
由于设备本身的软件或者硬件出现问题而导致的故障是比较少见的。
大部分都是人为的,要么配置配的不合理,要么规划不合理,才会导致这样或那样的问题。
所以:认真+扎实的基本功=好网工。
在工作的早期,我想很多网络工程师应该都会出现类似情况,会发生这样或那样的不该出现的错误。
其实没关系,只要掌握好网络理论知识,认真执行每一个命令,很多问题都能迎刃而解。
像我这个网络环路,排查步骤其实很简单。
对于环路来说,如果你的网络设备没有办法登录,那你只能用最笨的办法一根根去拔线,因为设备无法查看,非常卡。
以上就是今天我分享的排错经历,希望能给你一些启发。