2

懂事的网络工程师,早该学会处理这种故障了

 1 year ago
source link: https://network.51cto.com/article/713078.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

大家好,我是老杨。

​之前我说了很多次,故障排错,是每个网工的必修课。很多人一开始都是手残,但手残到引发严重的情况的还是比较少见的。

今天老杨的一位粉丝和我分享了关于他工作中亲眼见到的,排错时发生的“惨状”。

老杨通篇看下来,觉得很有借鉴意义,可供新手网工们多参考。

图片

他有一句话我觉得很认同:“由于设备本身的软件或者硬件出现问题而导致的故障,其实是比较少见的。”

“大部分都是人为的。”

排错排成这样,谁能比我更夸张?

这是我之前工作中遇见过的一次网络故障。

我觉得,排错最重要的点在于,你发现网络故障后,得对这个现网的网络环境有个基本的判断。

你要判断它的组网是什么样的,它的配置是什么样的,这些基本的信息你要收集到,你才能对故障进行分析。

所以我先讲下故障发生的背景,也给你们几条线索,一起判断下。

图片

这个故障的背景其实就是一个很简单的配置变更。

在中午休息的时间,我的同事对厂区的某一栋楼的汇聚交换机进行配置变更。

他实际上是要增加一台接入交换机,因为厂区人员变多了,终端也就变多了,所以现有的网络和接入设备不能满足需求,需要新增一台接入层的交换机。

大家都知道,在现网中新增一台接入交换机,这个配置是非常简单的。

一般只需要将接入交换机上到机架,两根光纤连到汇聚交换机就搞定了。

而通常你接入交换机连接汇聚交换机需要做什么配置?

一般来说,都是将这个接入交换机所需要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%以上都是人为的,基本上都是人为疏忽、配置变更导致的故障

由于设备本身的软件或者硬件出现问题而导致的故障是比较少见的。

大部分都是人为的,要么配置配的不合理,要么规划不合理,才会导致这样或那样的问题。

所以:认真+扎实的基本功=好网工。

在工作的早期,我想很多网络工程师应该都会出现类似情况,会发生这样或那样的不该出现的错误。

其实没关系,只要掌握好网络理论知识,认真执行每一个命令,很多问题都能迎刃而解。

像我这个网络环路,排查步骤其实很简单。

对于环路来说,如果你的网络设备没有办法登录,那你只能用最笨的办法一根根去拔线,因为设备无法查看,非常卡。

以上就是今天我分享的排错经历,希望能给你一些启发。​


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK