乐趣区

关于devops:运维工程师必备技能网络排错思路讲解

首先,真心心愿本文能够给须要进行网络排错的敌人带来实际性的帮忙,也心愿能够急躁看上来。

网络排错对于网络工程师或运维人员甚至对很多人 (搞 IT 的敌人们) 都非常重要,因而晓得网络排错的一个具体流程以及流程中每一步的原理就显得十分重要了,当网络呈现问题时,咱们就能够迅速排查出网络问题所在,从而疾速解决网络问题。

这 里要说的网络排错,应该是适宜大部分对网络有肯定理解的人员的,其实对于网络排错的办法,网络上曾经有大部分的材料,但我集体感觉太多都只是停留在文字层 面上的,对其中波及的一些基本原理并没有提及,因而实用性并不大,这里心愿写出一篇图文并茂并有肯定技术性的网络排错文章给大家,让大家真正把握一套零碎 的网络排错办法。

本文的一个思路:

一、网络排错的必备条件
二、网络排错的基本思路
三、网络排错具体步骤
四、最初重要阐明

一、网络排错的必备条件

为什么还要必备条件? 因为这里所讲的网络排错并不仅仅是停留在某一个小小命令的应用上,而是一套零碎的办法,如果没有这些条件,我真的不能保障上面讲的这些你能够听得懂,并且能使用到理论当中,所以还是先看看这些根底的条件吧。

1. 相熟 OSI 七层模型与 TCP/IP 协定栈

这应该是网络排错要晓得的最根本的常识了。

无论是 OSI 七层模型还是 DoD 模型,都是用来形容网络通信的一个过程,以让咱们对网络数据的发送和接管有一个大抵的过程。OSI 七层模型对应 OSI 七层模型的协定,DoD 模型对应 DoD 模型的协定,也就是 TCP/IP 协定栈。

TCP/IP 协定栈外面的协定就显得非常重要了,比方 DNS、TCP、UDP、IP、ICMP、ARP,这些最根本的应该得晓得吧,咱们不须要有像《TCP/IP 协定 栈》中说得的那么细,但至多,对于这些协定的基本功能咱们是必须得要晓得的,我想这些就不是我一两名能够说分明的了,还是那句话,本人百度一下吧。

2. 理解网络通信的根底设施和其对应的 OSI 档次

像 交换机、三层交换机、路由器、防火墙这些最根本的网络设备应该要有些理解,尤其是它们对应的 OSI 档次以及作用,比方一般的二层交换机对应 OSI 七层模型 中的数据链路层,它能够断绝抵触域,同时可能通过虚构局域网技术 (VLAN) 来断绝播送域,二层交换机通过二层地址即 MAC 地址来实现数据帧的转发; 再比 如路由器,它对应网络层,能够提供路由寻址的性能等等。

兴许并不需要理解得那么细,但大略的一个过程我想还是应该要晓得的。

3. 理解中小型企业网络的根本架构

其实就是要晓得下面所说的那些网络设备个别是怎么连接起来的,如果在理论环境中排错,应该就要晓得以后网络的一个根本架构状况。

这里简略提一下,个别中小型企业网络的根本架构都是这样的:接入层 – 汇聚层 – 核心层 – 网络进口。

上面给个图:

如果网络环境比拟宏大,汇聚层和核心层都会有,像这里的话,就间接没有汇聚层,不过思维是一样的。上面讲的排错其实都是针对用户 PC 来阐明的,事实上,数据中心中的网络排错也是相似的。不论网络环境如许简单,其实简化下来跟这个都是差不多的。
4. 晓得罕用的网络排错命令

如果用户应用的是 Windows 操作系统,那么上面的这些命令就很重要了:

如果应用的是 Linux 操作系统,那么也有对应的相干命令。其实说到底就是要相熟你所应用的设施,当然,在理论网络排错的过程中,如果只是为了测试网络通信是否失常,你能够把你本人相熟的设施换上操作。

5. 分明晓得网络排错的一个重要准则

网络排错,不就是要判断网络哪里出了问题,因而,你就必须要晓得数据的走向。

所以这个重要的准则是:关注数据的走向。

上面讲的网络排错思路其实就是通过追踪数据的走向来一步步放大网络故障点的,因而,时刻记住这一点十分十分重要! 这也是为什么下面须要让你理解中小型企业网络的根本架构了。

二、网络排错的基本思路

基本思路如下,这跟网上的大多数人写的应该是差不多的。

(1)查看物理链路是否有问题

(2)查看本机 IP 地址、路由、DNS 的设置是否有问题

(3)测试网关或路由器的通顺状况。先测网关而后再测路由器,一级一级地测试

(4)测试 ping 公网 ip 的通顺状况(平时要记几个内部 IP)

(5)测试 DNS 的通顺状况,能够间接 ping 网站地址

上面的第三局部,就针对下面的基本思路来进行具体的阐明。

三、网络排错具体步骤

为了更好的讲述网络排错的过程和思路,假如咱们有上面的一个网络环境:

(阐明:尽管是假如,但实际上该网络环境是博主通过 GNS3 联动虚拟机和实在网络架设起来的,所以是能够实在参考的)

上面,咱们就以下面这个网络环境为例子,具体介绍咱们的网络排错思路,每一步要怎么做,每一步为什么要这样做以及这样做之后咱们能够失去什么信息,都会做一个阐明。
(1)查看物理链路是否有问题

这一步是我集体认为在做网络排错时必须要做的第一步! 常常会听敌人说,领导的电脑上不了网,须要过来排错,搞了老半天,还发现不了问题,最初在几经失望之时,居然发现网线都没接上电脑。这就真的是喜剧了,节约了很多工夫不说,这样的网络排错思路原本就是有谬误的。

因为兴许不是每个人都能够去机房查看交换机的接线状况,所以这一步,咱们排查的重点范畴就应该放在如上面图所示的中央:

在这一步,上面几点是须要留神排查的:
1. 确认电脑自身的网卡有没有问题

2. 确认接的网线有没有问题

3. 本机所连贯的交换机(如果能够去机房查看的话)

如果下面这几点排查都没有问题了,那么就是该网络环境中的其余设施问题了。这一范畴的排查绝对比较简单,因为只波及到物理链路的连贯问题。

对于这种测试,能够思考应用测线器,但集体的倡议是,拿一台配置正确的笔记本来做测试也未尝不可。

(2)查看本机 IP 地址、路由、DNS 的设置是否有问题

下面第一步,物理链路的排查没有问题了,也就是说,电脑接上网线之后,电脑有有反馈了,能够辨认,然而网络还是不通,来到这一步,就应该先把留神的范畴放在电脑的设置下面了。

这上步,咱们关注的重点是:

1.IP 地址设置

如果采纳的是 DHCP 主动获取的办法,那么这时候只须要看本人本机的设置上有没有开启主动获取 IP 的设置以及有没有开启相干的服务;

如果用的是动态 IP,那么就必须要留神 IP 地址的填写有没有错(个别网络管理人员给的)、IP 地址的子网掩码有没有问题(这很重要,对于动态 IP,很多人在这里设置谬误,倡议是,最好把 IP 地址、VLSM 这方面的常识学一下)。

个别能够用上面的命令查看:

相干的设置能够在本人的计算机环境下面查看了。

2. 路由设置

对于服务器、PC,个别是指默认网关的设置了; 对于路由器自身或三层交换机,那就是动态路由或动静路由的设置问题了。

3.DNS 设置

次要是要确保所设置的 DNS 服务器地址到底有没有提供域名解析服务或者是否呈现了故障,至于如何判断,前面会给出办法,这里关注的是,你得设置一个正确的 DNS 服务器地址或能够主动获取。在 windows 下面你能够通过上面的命令查看:

(3)测试网关或路由器的通顺状况。先测网关而后再测路由器,一级一级地测试

在下面的网络环境中,在网络通的状况下,咱们在电脑上应用命令 tracert - d 命令,会失去上面的后果:

通过这个测试后果,咱们能够分明地晓得电脑在拜访互联网时,数据的走向状况:

依据这个数据走向,咱们就能够失去一个重要的思路,就是依据数据走向来检测网络的通顺状况! 因而,咱们能够分两步:
1. 先测试电脑到网关 192.168.2.254 的通顺状况

咱们能够在本人的电脑上本人 ping 网关的地址,看是否有响应:
个别这样的判断办法是比拟快的,但有时候,无论怎样 ping 都不能,那么则可能有以下的几种状况:

a. 网关设施做了禁止 ping 的设置

b. 网关接口或网关设施呈现故障

对于 a,个别很少会在这些设施在做 ping 的限度操作,因为目前很网络设备如路由器或交换机的监控,都是通过 ping 操作来实现的。ping 通 192.168.2.254 网关后,再 ping 一下 172.16.13.1 以确认电脑到整个网关设施都没有问题。

对于 ping 不通的时候,我集体还倡议在电脑上执行如下操作:

即查看电脑自身有没有获取到网关的 MAC 的地址,显然,如果没有网关的 MAC 地址,那也是不可能 ping 通网关的,在排除了后面电脑设置的问题后,你能够猜想是网关设施出了问题,这时就能够分割网络工程师对网关设施进行测试了。

2. 测试到其它路由器的通顺状况

后面一步没有问题了,也就是电脑到网关通信失常了,再测试网关到进口路由器的通顺状况:

这里,咱们应用 tracert - d 命令就能够了:
当然,如果发现不通,那么则可能是上面的状况:

a. 网关设施与路由器之间的物理链路问题

b. 网关设施与路由器之间的设置问题,比方路由协定、接口配置之类的

呈现下面的状况,那就是网络工程师的问题了,当然,如果你是网络工程师,应该要马上查看一下设施的状态,看是不是设施哪里呈现问题了。

下面的步骤实现了,假如你的进口路由器设置是没有问题的,比方 NAT 与默认路由等的设置,那么咱们大抵能够晓得,内网的一个根本通信是失常的(至多你的电脑和进口路由器的通信没问题),咱们就要看看电脑到底能不能拜访互联网了。

(4)测试 ping 公网 ip 的通顺状况(平时要记几个内部 IP)

来到这一步的时候,就阐明后面三步是没有问题的,也就是说,本地局域网络的通信是失常的,这时要做的就是判断本地局域网络与外网 (公网) 之间的通信有没有问题了:

这里采取的是间接 ping 公网地址的办法,是为了排除 DNS 的影响 (万一你的 DNS 设置又有问题),至于要 ping 什么样的公网地址,集体倡议是,能够 ping 一些没有禁止 ping 的公共 DNS 服务器地址,比方 114.114.114.114 和 8.8.8.8 的:
这 样之后,基本上就能够确定网络是没有问题的了。当然,这里并没有提到进口搁置防火墙的状况,实际上,思路是统一的,然而,你须要思考的是,你的拜访数据有 没有被防火墙给过滤掉,是数据进来的时候过滤了,还是数据回来的时候过滤了? 因为还要波及到防火墙的设置,这里就不再提及了,只是仍要留神这一点就是了。

当然,也不排除是 ISP 那边的问题了,打电话去问问吧。

(5)测试 DNS 的通顺状况,能够间接 ping 网站地址

如题,能够间接 ping 网站地址,看有没有回显 IP 地址,至于通不通是另外一回事,只有能够回显 IP 地址,那么 DNS 就没有问题了,不过这里依然要说一下 nslookup 这个命令,这是一个十分好用的命令,我平时本人在网络排错时,基本上都会用到:

当然也能够像上面这样应用:

应用 nslookup 命令,作用有二:

1. 帮你测试你设置的 DNS 服务器有没有问题

2. 在不思考 DNS 服务器是否智能的前提下,你能够依据回显 IP 地址速度的快慢来大抵判断 DNS 服务器的优劣状况

所以能够充分利用 nslookup 命令了。

四、最初重要阐明

其实基本上,一个绝对残缺的网络排错过程就应该如下面所说的了,不过,是基本上的,因为下面的解说,都简直是假设你是没有权限进入机房查看网络设备的状况的。

事实上,你是基本不须要照搬来进行下面的全副步骤的,在理论排错的过程中,可能你用到的只是其中的一小部分而已,毕竟,如果每次都这样下来,没有谁是不会疯掉的,因为一些很简略的问题也要这样折腾,那就是太浪费时间了! 然而,下面的办法,只是提出一种网络排错的思路,心愿依照这个思路能够判断出网络的问题呈现在哪里,至于如何去解决,这两头真的又波及到太多太多的教训问题(其实遇到问题能够百度),

其实整个下来,我集体感觉,最重要的依然不是技术自身,而是在网络排错过程当中的一个思路,思路决定前途,这能够让本人在网络排错的过程中时刻放弃苏醒的头脑,这一点很重要!

自己并非是专攻网络 (曾折腾了一段时间而已) 这一块的,也就是并非是网络工程师 (也不可能是啦),只是在理论过程当中要解决比拟多的网络故障,这一年多的工夫下来,也积攒了勉强可能称得上是教训的教训吧。去年,咱们公司引进了一个国内钻研人员开发的一款运维工具 – 猎报平安。自此咱们技术开发者从技术运维降级为服务运维。

猎报平安提供主机服务器近程运维和安全监控实时告警,有运维监控、威逼检测、自定义告警、订阅推送之类的性能,并且是无广告、有收益、运维监控 + 威逼检测集一体的运维产品。自此咱们公司遇到网络故障对业务简直不造成影响,所以还是想说不得业余的事还是要交给业余的人来做。
写此一文,即是本人作为一个总结,也心愿能够帮忙到有须要的敌人。

原文链接:https://www.tiejiang.org/2357…

退出移动版