资深网络工程师的网络排障全过程,太强了!【附工具下载】

下午好,我的网工朋友

我们知道,交换机是局域网中一种很重要的网络设备,它的工作状态与客户端系统的上网状态息息相关。

可是,在实际工作过程中,交换机的状态很容易受到外界的干扰,那样一来局域网中就会出现各种各样的网络故障。

为了保证网络运行稳定,我们必须在平时对交换机进行妥善管理、维护,避免交换机发生故障。

企业网络设备之间使用多种物理链路连接,同时为了准确的完成数据包的转发,设备之间还运行了多种网络协议。

网络设备,线缆、以及网络协议都有可能产生网络故障,如何快速完成故障处理是一个高级网络工程师的基本素养。

你有遇到过物理连接不当,无法ping通的情况吗?这时你一般会怎么处理?

关于网络排障,今天一篇文章帮助你一网打尽!

今日文章阅读福利:《网络排障好用工具合集》

需要的小友,私信我,发送暗号“排障”,前20名无偿送出工具资源合集

01 什么程度才算是网络故障?

网络故障是指由于某种原因而使网络丧失规定功能并影响业务的现象。

从用户的角度出发,凡是影响业务的现象都可以定义为故障。

常见的故障现象和分类如下:

02 网络故障排除流程

如果采取非结构化的网络故障排除流程,就只是凭直觉在这些步骤之间重复执行,虽然最终也可能找到解决故障的方法,但没有办法保证效率。

在复杂的网络环境中,有可能会由于非结构化的网络故障排除流程而导致新的故障,从而使网络故障的排除变得更加困难。

所以咱们应该要按照结构化的网络故障排除流程来定位对位故障点,并加以改正。

企业中存在多个部门,例如财务、人事、后勤、市场、研发等,这些部门之间的网络有互联互访均需求。为了保障网络的正常运行,企业可能存在如下情况:

1. 大中型企业成立网络维护部门,构建专业的网络团队。

2. 小型企业为了节省成本,一般不存在单独的网络维护部门,而是将网络托管给专业的网络维护公司。

3. 求助设备生产商,拨打厂商的售后服务电话。

一般情况下网络故障的第一感知人员并非网络维护人员,而是其他业务相关的各个部门人员。

网络工程师经常接到各种求助电话,例如“电脑突然无法上网” 、“网页无法正常显示”、“游戏没法玩了”……

在电话里询问用户上面的内容,并记录在排障报告中。

为什么需要了解用户的职位级别、工作内容等信息?因为在企业环境中,不同级别的用户可能会有不同的网络访问权限。

为什么要确认故障?

用户的描述可能是含糊不清的,报告的故障也不一定是真实的故障点,所以需要有经验的工程师进行确认故障的工作。

确认故障的四个要素:

  • 故障的主体:哪个网络业务出现了故障。
  • 故障的表现:故障的现象是什么样的。
  • 故障的时间:用户是什么时间发现的故障,以及专业人员推测的故障出现的真实时间。
  • 故障的位置:哪个网络组件出现了故障。对故障现象进行准确的描述。

最后应确认该故障是否属于自己的负责范围,即自己是否被赋予了相应的权限来处理该故障。

需要收集哪些信息:收集信息阶段主要是收集与故障相关的信息,如文档、网络变更情况等。

如何收集这些信息:

  • 使用设备自身的操作命令;使用信息收集工具,如抓包工具、网管软件等。获取授权:
  • 在对信息安全要求较高的网络环境中,对信息的收集是需要得到授权的,有时需要签署书面的授权文件。收集信息阶段的风险评估:
  • 有些收集信息的操作,如对路由器或交换机执行”debug”命令,会导致设备的CPU占用率过高,严重的情况下甚至会使设备停止响应用户的操作指令,从而引入额外的故障现象。
  • 所以在收集信息的时候应评估这些风险,平衡引入新故障的风险与解决现有故障的紧迫性之间的关系,并明确的告知用户这些风险,由用户来决定是否进行风险较大的信息收集工作。

如果通过逐一排查找到了故障的根本原因,并排除了故障,网络故障排除的流程就可以结束了。

复杂的网络环境中,故障现象消失后仍然需要观察一段时间,一方面确认用户报告的故障已经得到了解决,另一方面确认故障排除的过程中没有引入新的故障。

收尾工作包括相关文档的整理、信息的通告等。需要对之前网络故障排除流程中所有进行了变更的配置或软件进行备份,并做好故障排除文档的整理和移交工作。

为了避免同样的故障再次发生,在此阶段应该向用户提出改进建议。

03 一个经典网工网络排障全过程,值得收藏!

我当时所负责的写字大楼包含若干个公司,为了保证每个公司都能独立上网,并且要求它们的上网状态不受其他公司的影响,我选用了路由交换机作为大楼网络的核心交换机。

同时在交换机上对每个单位设置了不同的虚拟工作子网。

由于每家单位分布在不同的楼层,每个楼层分布的公司数量也不完全相同,有的楼层有两、三家单位,有的楼层多达五、六家单位。

不同楼层的单位工作子网全部通过对应楼层的交换机,连接到大楼局域网中,并通过大楼网络中的硬件防火墙访问Internet网络。

为了提高网络管理效率,网络管理员平时都会通过远程连接方式对交换机进行管理、维护。

可是,那天早上一上班,我在扫描诊断局域网核心交换机各个交换端口的工作状态时,发现其中某个交换端口处于down状态。

于是我查看了网络管理档案,找到连接该端口的是五楼某二层交换机。

远程登录该楼层交换机时,发现迟迟无法登录成功,使用 ping 命令测试该交换机的 IP 地址时,返回的结果为“Request time out ”;

就在我纳闷为什么没有人报故障时,电话铃声如期而至,果然来自五楼的用户开始接二连三地报修网络故障了。

根据上述故障现象,我估计可能是楼层交换机的工作状态出现了意外。

于是跑到该故障交换机现场,切断该设备的电源,过一段时间后再次接通电源,进行重新启动。

等到启动操作完毕后,我又使用了 ping 命令测试该交换机的 IP 地址。

此时返回的结果已经正常,而且远程登录操作也能够很顺利地进行。

然而,半个小时之后,该故障交换机又出现了相同的故障现象,并且进行 ping 命令测试时,又返回了不正常的测试结果。

后来我不放心,又重新经过反复启动测试,发现故障交换机始终无法正常 ping 通。

01 深入排查

刚刚有说,DNS就相当于电话簿。

既然经过反复重启不能解决问题,我估计引起该故障的原因比较复杂,考虑到这种故障现象在网络管理过程中经常会碰到。

于是我按照下面的思路进行了深入排查:

考虑到整个大楼网络中,只有五楼的某个楼层交换机出现这种现象,所以,我初步判断可能是该楼层交换机自身问题引起的。

为了能够确保可以准确定位故障原因,我准备利用一台工作状态正常的交换机来替换故障交换机,看看故障现象是否仍然存在。

同时,将那台被怀疑可能存在问题的交换机连接到一个独立的网络工作环境。

经过半个小时的测试、观察,我看到那台被连接到独立网络环境的故障交换机工作状态是正常的,而且在该网络环境下可以ping通它的 IP地址。

而那台新替换的交换机连接到大楼网络后,却不能正常 ping通了。

依照这些现象,我认为五楼的交换机自身出现问题的可能性几乎没有。在排除了故障交换机自身状态因素后,我对整个大楼网络的组网结构和网络状态重新进行了回顾。

由于大楼中其他楼层的用户都能正常上网,唯独五楼的一部分用户不能上网。

查阅五楼的组网资料,我看到五楼分布了五家单位,当时网络管理员在五楼布置了两台楼层交换机,将它们通过级联方式连接在一起;

同时在这两台交换机中划分了五个虚拟工作子网,保证了每家单位都能独立地工作于自己的虚拟工作子网中。

既然核心交换机上的对应端口已经被down掉,那么整个五楼的所有单位都不能上网才对,为什么现在只有一部分用户上报故障现象呢?

等到上班时间一到,我立即电话联系了其他几家没有报修网络故障的公司。得到的答复是说:他们刚刚才发现网络访问不正常,正准备向大楼网络管理员求救。

如此说来,整个五楼的所有单位都是不能正常上网的,那么引起该故障的原因应该在这几家单位的虚拟工作子网中。

在将故障排查范围锁定在位于五楼的五家单位之后,我认为既然重新启动五楼某个交换机的设备,能够暂时地将网络故障恢复。

只是在半个小时之后,相同的网络故障现象才会再次现象。

对照这种特殊的现象,我怀疑可能是网络广播风暴,造成了交换机在一定时间内发生了堵塞现象,最终堵死了核心交换机的对应交换端口。

为了便于分析故障,我利用网络监听工具对五楼交换机的级联端口进行了网络传输数据包分析。

结果发现无论是输入数据包流量,还是输出数据包流量,都非常地大,几乎超过了正常数值的100倍左右,这说明四楼的网络中出现了网络堵塞现象。

那么究竟是网络病毒引起的网络堵塞?

还是网络环路引起的网络堵塞呢?

我打算观察一下故障交换机级联端口的状态信息变化,特别是输出广播包的变化。如果输出广播包每秒钟都在不停增大的话,那十有八九就能证明五楼网络中存在网络环路现象。

基于这样的分析思路,我使用 Console控制线直接连接到故障交换机上,以系统管理员身份登录进入该系统后台。

同时使用 display 命令查看了该交换机级联端口的输出广播包的变化,并且每隔一秒钟查看一次,之后比较每次查看的结果。

经过反复测试,我发现故障交换机的输出广播包大小果然在不断地增大着。

这说明五楼的五家单位中,肯定存在网络环路现象。

仔细查看了五楼的两台交换机,我发现它们之间的物理连接是正常的。

此外,这两台交换机的各个交换端口直接与五楼各个房间的墙上上网插口相连。

按理来说,只要各个房间不随意使用交换机进行级联, 应该不会出现网络环路现象的。

现在,既然证明五楼网络中存在网络环路现象,这说明肯定有人在随意使用交换机进行扩展上网,我们只要找到扩展交换机,并对它的物理连接进行检查,就能迅速找到具体的故障节点了。

于是我电话联系了五楼各家单位的网络管理员,要求他们对各个办公房间进行检查,并上报使用下级交换机的房间。

没有多长时间,检查结果就反馈给了我,竟然有10个左右的房间使用了下级交换机进行扩展上网。

这时我知道这10个房间的网络连接,最有可能出现网络环路现象,那究竟是哪一个房间呢?

难道我要依次到各个房间的现场,查看他们的网络连接吗?

经过认真考虑,我找来了组网资料,将这10个房间使用的交换端口号码一一找了出来。

之后使用网络线缆直接插入到这些交换端口中,并在这些端口的视图模式状态下,依次ping故障交换机的IP地址。

结果ping到第六个交换端口时,我发现从该端口无法正常ping通。

为了判断该交换端口是否真的存在问题,我又在该交换端口视图模式状态下,使用 display 命令查看了该交换端口的状态信息。

经过查看分析,我发现该交换端口的输入、输出数据包大小明显不正常。于是,我估计该交换端口肯定是造成故障交换机工作状态不正常的原因。

查阅档案资料后,我迅速根据那个交换端口号码,找到了对应的那个上网房间。

到了现场后,我发现该房间中仅有的两个上网端口,都连接了小集线器,而这两台集线器下面都连接有几台计算机。

更要命的是还有一条网络线将它们直接连接在了一起,这样一来这两个集线器之间就形成了一个网络环路。

该环路造成的广播风暴最终堵塞了故障交换机的级联端口,从而造成了整个楼网络都不能正常上网。

02 故障解决

将该多余的网络线缆拔除之后,我重新查看了该交换端口的状态信息。结果发现输入、输出数据包大小都恢复了正常。

再次查看核心交换机上对应的交换端口状态时,发现原因的“down”状态已经变成了“up”状态,而且此时我也能正常ping通四楼的故障交换机了。

这说明,问题果然是由五楼某个房间的用户非法扩展使用交换机或集线器引起的。后来,我经过进一步询问上网用户了解到,他们的房间在前天晚上进行了打扫除,当时所有的网络线全部被拔了下来。

当清洁工作结束之后,上网用户由于对连接知识了解不多,就随意进行了插接,最终造成了网络环路现象。

对于大多数普通用户来说,你能感受到的是畅爽的网络体验,但网络的稳定运行不是一朝一夕就能达成的,需要一线网工的不断努力和坚守。

向他们致敬!

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java单元测试 JUnit 5 快速上手

一、背景 什么是 JUnit 5?首先就得聊下 Java 单元测试框架 JUnit,它与另一个框架 TestNG 占据了 Java领域里单元测试框架的主要市场,其中 JUnit 有着较长的发展历史和不断演进的丰富功能,备受大多数 Java 开发者的青睐。 而说到…

MES管理系统如何实现数据采集和过程控制

随着工业4.0的到来,MES管理系统解决方案已成为企业实现生产过程数字化和智能化的关键工具。MES生产管理系统不仅提供生产计划、调度、质量管理和设备维护等功能,还在数据采集和过程控制方面发挥着重要作用。本文将探讨MES生产管理系统如何实现数据采集和…

【Hello Network】DNS协议 NAT技术 代理服务器

本篇博客简介:介绍DNS协议 NAT技术和代理服务器 网络各协议补充 DNSDNS背景DNS介绍DNS总结域名简介 NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术缺陷NAT和代理服务器 网络协议总结应用层传输层网络层数据链路层 DNS DNS是一整套从域名映射到IP的系统 DNS背景 为…

Unity怎么制作魔法火焰特效?Unity制作魔法火焰特效方法

Unity制作魔法火焰特效方法: 在第一次玩Supergiant Games的RPG游戏《Hades》时,游戏的美术和视觉效果让人非常吃惊。受此启发,希望能够尝试制作类似风格的作品。 工作流程 整个工作从制作简单的火焰贴图开始。首先,我使用PhotoS…

springboot整合rabbitmq发布确认高级

在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们如何才能进行 RabbitMQ 的消息可靠投递。 发布确认 发布确认方案 架构 配置…

npm install 安装依赖,报错 Host key verification failed

设置 git 的身份和邮箱 git config --global user.name "你的名字" > 用户名 git config --global user.email “你的邮箱" > 邮箱进入 > 用户 > [你的用户名] > .ssh文件夹下,删除 known_hosts 文件即可 进入之后有可能会看到 known_hosts…

知识图谱Neo4j安装到实践全过程

前言: Hello大家好,我是Dream。 在本次实战中,我们将一起完成知识图谱Neo4j安装到实践全过程,探索其中的关系和属性。知识图谱是一种以三元组形式存储的数据结构,由实体、关系和属性组成,能够帮助我们更好地…

SpringMVC之@RequestMapping注解

文章目录 前言一、RequestMapping介绍二、详解(末尾附源码,自行测试)1.RequestMapping注解的位置2.RequestMapping注解的value属性3.RequestMapping注解的method属性4.RequestMapping注解的params属性(了解)5.RequestM…

飞书小程序开发

1.tt.showModal后跳转页面 跳转路径要为绝对路径,相对路径跳转无响应。 2.手机息屏后将不再进入onload()生命周期,直接进入onshow()生命周期。 onLoad()在页面初始化的时候触发,一个页面只调用一次。 onShow()在切入前台时就会触发&#x…

网红景区游乐设备普乐蛙5d动感影院体验馆设备组成内容

一个5D7D动感影院体验馆的全套设备组成通常包括以下几个方面: 电影播放设备:包括主控制器、电影播放器、电影储存设备等,用于播放5D电影。 影院座椅:一般采用特殊设计的动感座椅,具备震动、摇晃、抖动等功能&#xff0…

免费的png打包plist工具CppTextu,一款把若干资源图片拼接为一张大图的免费工具

经常做游戏打包贴图的都知道,要把图片打包为一张或多张大图,要使用打包工具TexturePacker。 TexturePacker官方版可以直接导入PSD、SWF、PNG、BMP等常见的图片格式,主要用于网页、游戏和动画的制作,它可以将多个小图片汇聚成一个…

保研面试题复习

信源/信道编码的目的和种类? 这个图是每个人在学习通信原理的时候,都会遇到的图。包含了三要素:信源、信道和信宿。这个图直接可以回答最开始的问题,所谓信源编码就是针对信源编码,所谓信道编码就是针对信道编码。 有…

docker之DockerFile与网络

目录 DockerFile 构建步骤 基础知识 指令 实战:构建自己的centos 第一步:编写dockerfile文件 第二步:构建镜像文件 docker网络 原理 功能 网络模式 host模式 container模式 none模式 bridge模式 DockerFile dockerfile 是用来…

Java | IDEA中Netty运行多个client的方法

想要运行多个client但出现这种提示: 解决方法 1、打开IDEA,右上角找到下图,并点击 2、勾选

Node.js 的 Buffer 是什么?一站式了解指南

在 Node.js 中,Buffer 是一种用于处理二进制数据的机制。它允许你在不经过 JavaScript 垃圾回收机制的情况下直接操作原始内存,从而更高效地处理数据,特别是在处理网络流、文件系统操作和其他与 I/O 相关的任务时。Buffer 是一个全局对象&…

layui框架学习(37:学习laytpl基本语法)

layui中的模板引擎模块laytpl属于轻量的 JavaScript 模板引擎,支持在页面中将指定的数据按指定的模板进行展示或处理,此处的模板是指一段包含html和脚本的文本(感觉类似asp.net core中的razor标记语言,在网页中嵌入基于服务器的代…

Cent OS 中各个文件夹功能

目录 一、根目录简述 二、目录详细分级说明 (一)bin (二)sbin (三)lib (四)etc (五)dev (六)usr (七&#xff09…

vue组件的使用

一、首先要穿件组件构造器对象,或者导入组件 1..在本部分注册组件其中组件为子组件 2.在本部分注册组件 二、而后注册组件 1.在本部分注册组件其中组件为子组件 2.在本部分注册组件 三、 接着,使用组件。 1.在本部分注册组件其中组件为子组件 其中v-i…

开源硬件:下一个技术革命?

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

【Git游戏】提交的技巧

修改历史的提交 rebase 通过git rebase -i 将要修改的提交提到最前端, 然后修改,再通过git commit --amend提交该记录,最后通过git rebase -i 在替换会原始的位置 (该过程中有可能会产生rebase confict) cherry-pick …