说到网络排错,很多人都会头疼。

网络排错,它并不仅仅是停留在某一个小小命令的使用上,而是要有一个完整的思路和逻辑在,你才可以以不变应万变。

那么,作为一个网络工程师,想要拥有一个不错的网络排错能力,首先要具备什么基础?本篇文章会写到。

这些基础,在思科华为的CCNP/HCIP等初中级认证课程里都有详细且系统的讲解说明,从0开始,手把手教你。

有兴趣提升你的排障能力、系统学习的粉丝小友,欢迎私聊老杨咨询。


01 网络排错,你必须要get到这些点


(1)熟悉OSI与TCP/IP

这应该是网络排错必须知道的基本理论。

无论是OSI七层模型还是DoD模型,都是用来描述网络通信的一个过程,掌握它,能让你对网络数据的发送和接收有一个大致的认识。

OSI七层模型对应OSI七层模型的协议,DoD模型对应DoD模型的协议,也就是TCP/IP协议栈。

网络排错没思路?这2021最全总结,别说你还没看过_ip地址

TCP/IP协议栈里面的协议,比如DNS、TCP、UDP、IP、ICMP、ARP,这些最基本的应该得知道。

不需要事无巨细,但至少对于这些协议的基本功能你是必须得要知道的。


(2)掌握网络通信的基础设备

基础设备,就包括交换机、三层交换机、路由器、防火墙这些玩意儿,还没搞懂,请先出门右拐去百度。

作为网工你不仅要懂,而且你还必须知道它们对应的OSI层次以及作用。

网络排错没思路?这2021最全总结,别说你还没看过_数据_02

比如:普通的二层交换机对应OSI七层模型中的数据链路层,它可以隔绝冲突域。

同时,它可以通过虚拟局域网技术(VLAN)来隔绝广播域,二层交换机通过二层地址即MAC地址来实现数据帧的转发。

再比如:路由器对应网络层,可以提供路由寻址的功能等。

熟悉熟悉再熟悉,你才好提高你的工作效率。


(3)了解中小型企业网络的基本架构

一般中小型企业网络的基本架构都是这样的:接入层--汇聚层--核心层--网络出口。

网络排错没思路?这2021最全总结,别说你还没看过_链路_03

如果网络环境比较庞大,汇聚层和核心层都会有,而我们这个张图,就没有汇聚层。

但是排错的底层逻辑都是一样,别担心。

本篇文章讲到的排错,其实都是针对用户PC来说明,数据中心中的网络排错也类似。

不管网络环境多么复杂,其实简化下来和这个是差不多的。


(4)掌握常用的网络排错命令

如果用户使用的是Windows操作系统,图中涉及到的这些命令就很重要,如果使用的是Linux操作系统,那么也有对应的相关命令。

网络排错没思路?这2021最全总结,别说你还没看过_网络工程师_04

说到底,你就是得熟悉你所使用的设备。当然,在实际网络排错的过程中,如果只是为了测试网络通信是否正常,你可以换上你熟悉的设备操作。


(5)网络排错原则:关注数据的走向

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

我讲的网络排错思路,其实就是通过追踪数据的走向来一步步缩小网络故障点的。

所以,这也是为什么我需要让你了解中小型企业网络基本架构的原因。


02 网络排错 得有细节化的思路


其实网上这样的思路很多,而且大致都是对的,自己想不出来,完全可以多看看别人的精华:

  • 检查物理链路是否有问题
  • 查看本机IP地址、路由、DNS的设置是否有问题
  • 测试网关或路由器的通畅情况。先测网关然后再测路由器,一级一级地测试
  • 测试ping公网ip的通畅情况(平时要记几个外部IP)
  • 测试DNS的通畅情况,可以直接ping网站地址


03 网络怎么排错?手把手教你


为了更好的讲述网络排错的过程和思路,假设我们有下图这样的一个网络环境。

网络排错没思路?这2021最全总结,别说你还没看过_链路_05

虽然是假设,但实际上该网络环境是通过GNS3联动虚拟机和真实网络架设起来的,所以是可以真实参考的。

接下来的内容,我以上面这个网络环境为例子,详细带你过一遍网络排错思路:

每一步要怎么做?

每一步为什么要这样做?

这样做之后我们可以得到什么信息?

希望你能好好深入去思考这几个问题的意义,并尝试套用在工作中。


(1)检查物理链路

这一步,是在做网络排错时必须要做的第一步。

经常会听朋友说,领导的电脑上不了网,需要过去排错,搞了老半天,还发现不了问题,最后在几经绝望之时,竟然发现网线都没接上电脑……这就真的是悲剧了。

浪费了很多时间不说,这样的网络排错思路本来就是有错误的。

在这一步,你首先要有一个大致的检查方向:

  • 确认电脑本身的网卡有没有问题
  • 确认接的网线有没有问题
  • 本机所连接的交换机(如果可以去机房查看的话)

如果上面这几点排查都没有问题了,那么就是该网络环境中的其他设备问题了。这一范围的排查相对比较简单,因为只涉及到物理链路的连接问题。

对于这种测试,可以考虑使用测线器,但个人的建议是,拿一台配置正确的笔记本来做测试也未尝不可。


(2) 检查本机IP地址/路由/DNS的设置

上面第一步,物理链路的排查没有问题了,也就是说,电脑接上网线之后,电脑有反应了,可以识别,但是网络还是不通,来到这一步,就应该先把注意的范围放在电脑的设置上面了。

这一步,你要关注的重点是:

  • IP地址设置

如果采用的是DHCP自动获取的方法,那么这时候只需要看自己本机的设置上有没有开启自动获取IP的设置以及有没有开启相关的服务;

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

一般可以用下面的命令查看:

网络排错没思路?这2021最全总结,别说你还没看过_网络工程师_06

  • 路由设置

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


  • DNS设置

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

网络排错没思路?这2021最全总结,别说你还没看过_链路_07

(3) 测试网关或路由器的通畅情况

先测网关然后再测路由器,一级一级地测试。

在上面的网络环境中,在网络通的情况下,我们在电脑上使用命令tracert -d命令,会得到下面的结果:

网络排错没思路?这2021最全总结,别说你还没看过_ip地址_08

通过这个测试结果,我们可以清楚地知道电脑在访问互联网时,数据的走向情况:

网络排错没思路?这2021最全总结,别说你还没看过_数据_09

根据这个数据走向,我们就可以得到一个重要的思路,就是根据数据走向来检测网络的通畅情况!因此,我们可以分两步:

  • 先测试电脑到网关192.168.2.254的通畅情况。

网络排错没思路?这2021最全总结,别说你还没看过_网络工程师_10

我们可以在自己的电脑上自己ping网关的地址,看是否有响应。

网络排错没思路?这2021最全总结,别说你还没看过_ip地址_11

一般这样的判断方法是比较快的,但有时候,无论怎样ping都不能,那么则可能有以下的几种情况:

  • 网关设备做了禁止ping的设置
  • 网关接口或网关设备出现故障

对于第一种情况,一般很少会在这些设备在做ping的限制操作,实在是没有太大的必要这样做。

当然,网络安全等要求十分严格的除外。ping通192.168.2.254网关后,再ping一下172.16.13.1以确认电脑到整个网关设备都没有问题。

对于ping不通的时候,我个人还建议在电脑上执行如下操作:

网络排错没思路?这2021最全总结,别说你还没看过_链路_12

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


  • 测试到其它路由器的通畅情况

前面一步没有问题了,也就是电脑到网关通信正常了,再测试网关到出口路由器的通畅情况:

网络排错没思路?这2021最全总结,别说你还没看过_网络工程师_13

这里,我们使用tracert -d命令就可以了:

网络排错没思路?这2021最全总结,别说你还没看过_ip地址_14

当然,如果发现不通,那么则可能是下面的情况:


  • 网关设备与路由器之间的物理链路问题
  • 网关设备与路由器之间的设置问题,比如路由协议、接口配置之类的


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

上面的步骤完成了,假设你的出口路由器设置是没有问题的,比如NAT与默认路由等的设置,就可以大致知道:内网的一个基本通信是正常的(至少你的电脑和出口路由器的通信没问题)。

这时,就要看电脑到底能不能访问互联网了。


(4) 测试ping公网ip的通畅情况

来到这一步的时候,就说明前面三步是没有问题的,也就是说,本地局域网络的通信是正常的。

这时,你要做的就是判断本地局域网络与外网(公网)之间的通信有没有问题了:

网络排错没思路?这2021最全总结,别说你还没看过_链路_15

这里采取的是直接ping公网地址的方法,是为了排除DNS的影响(万一你的DNS设置又有问题)。

至于要ping什么样的公网地址,我的个人建议是:可以ping一些没有禁止ping的公共DNS服务器地址,比如114.114.114.114和8.8.8.8的。

网络排错没思路?这2021最全总结,别说你还没看过_网络工程师_16

这样之后,基本上就可以确定网络是没有问题的了。

当然,这里并没有提到出口放置防火墙的情况,实际上,思路是一致的。

但是,你需要考虑的是:你的访问数据有没有被防火墙给过滤掉,是数据出去的时候过滤了,还是数据回来的时候过滤了?由于还要涉及到防火墙的设置,这里就不再提及了,只是仍要注意这一点就是了。


(5)测试DNS的通畅情况

你可以直接ping网站地址,看有没有回显IP地址,至于通不通是另外一回事,只要可以回显IP地址,那么DNS就没有问题。

不过这里仍然要说一下nslookup这个命令,这是一个非常好用的命令,我平常自己在网络排错时,基本上都会用到:

网络排错没思路?这2021最全总结,别说你还没看过_链路_17

当然也可以像下面这样使用:

网络排错没思路?这2021最全总结,别说你还没看过_ip地址_18

能看到这里的一定是真爱。咱们干网络这行的啊,其实做久了就知道,排错最重要的就是思路。

乍一看好像排错很难,但只要一步步缩小范围、层次、节点,就能定位到故障点。

面试的时候,很多面试官也很爱考这个问题,大多数情况不会要求你写具体要用什么命令之类的,但一定会问你的排障思路。

千人千面,每个人的排障思路不同,但最要紧的是有自己的思考和思路,去开展你的每日工作。

这样的话,提升就不止一点点。


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