网络排错大讲解

说明:

首先,真心希望本文可以给需要进行网络排错的朋友带来实际性的帮助, 也希望可以耐心看下去。

网络排错对于网络工程师或运维人员甚至对很多人(搞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操作系统,那么下面的这些命令就很重要了:

ipconfig 查看计算机的IP 地址、子网掩码和网关
ipconfig/all 查看计算机的IP 地址、子网掩码、网关和DNS 地址
ping 测试主机之间的网络连通性
nslookup 请求域名对应的IP 地址,并以此测试DNS 地址是否可用
tarcert -d 路由追踪,并且不做反向解析

如果使用的是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这方面的知识学一下)。

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

C:\Users\XpLeaf>ipconfig

Windows IP 配置

以太网适配器 本地连接:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::4cf8:896f
   IPv4 地址 . . . . . . . . . . . . : 192.168.2.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.2.254

相关的设置可以在自己的计算机环境上面查看了。


2.路由设置

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


3.DNS设置

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

C:\Users\XpLeaf>ipconfig/all

Windows IP 配置

   主机名  . . . . . . . . . . . . . : XpLeaf-PC
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否

以太网适配器 本地连接:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection
   物理地址. . . . . . . . . . . . . : 00-0C-29-7D-41-E5
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::4cf8:896f:7d55:1432%11(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.2.1(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.2.254
   DHCPv6 IAID . . . . . . . . . . . : 234884137
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-1C-13-6E-0D-00-0C-29-7D-41-E5

   DNS 服务器  . . . . . . . . . . . : 202.116.145.145
                                       202.96.128.86


(3)测试网关或路由器的通畅情况。先测网关然后再测路由器,一级一级地测试

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

C:\Users\XpLeaf>tracert -d www.baidu.com

通过最多 30 个跃点跟踪
到 www.a.shifen.com [180.97.33.108] 的路由:

  1    12 ms    27 ms    16 ms  192.168.2.254
  2    76 ms   107 ms   126 ms  172.16.13.3
  3    59 ms    95 ms    93 ms  192.168.137.1
  ……这里就省略输出了

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

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

1.先测试电脑到网关192.168.2.254的通畅情况

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

C:\Users\XpLeaf>ping 192.168.2.254

正在 Ping 192.168.2.254 具有 32 字节的数据:
来自 192.168.2.254 的回复: 字节=32 时间=7ms TTL=255
来自 192.168.2.254 的回复: 字节=32 时间=18ms TTL=255
来自 192.168.2.254 的回复: 字节=32 时间=15ms TTL=255
来自 192.168.2.254 的回复: 字节=32 时间=16ms TTL=255

192.168.2.254 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 7ms,最长 = 18ms,平均 = 14ms

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

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

b.网关接口或网关设备出现故障

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

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

C:\Users\XpLeaf>arp -a

接口: 192.168.2.1 --- 0xb
  Internet 地址         物理地址              类型
  192.168.2.254         cc-03-0a-1c-00-00     动态
  192.168.2.255         ff-ff-ff-ff-ff-ff     静态
  224.0.0.22            01-00-5e-00-00-16     静态
  224.0.0.252           01-00-5e-00-00-fc     静态
  239.255.255.250       01-00-5e-7f-ff-fa     静态

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

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

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

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

C:\Users\XpLeaf>tracert -d 172.16.23.3

通过最多 30 个跃点跟踪到 172.16.23.3 的路由

  1     7 ms     9 ms    20 ms  192.168.2.254
  2    92 ms    79 ms    89 ms  172.16.12.2
  3    62 ms    47 ms    46 ms  172.16.23.3

跟踪完成。

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

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

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


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

上面的步骤完成了,假设你的出口路由器设置是没有问题的,比如NAT与默认路由等的设置,那么我们大致可以知道,内网的一个基本通信是正常的(至少你的电脑和出口路由器的通信没问题),我们就要看看电脑到底能不能访问互联网了。



(4)测试ping公网ip的通畅情况(平时要记几个外部IP)

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

这里采取的是直接ping公网地址的方法,是为了排除DNS的影响(万一你的DNS设置又有问题),至于要ping什么样的公网地址,个人建议是,可以ping一些没有禁止ping的公共DNS服务器地址,比如114.114.114.114和8.8.8.8的:

C:\Users\XpLeaf>ping 114.114.114.114

正在 Ping 114.114.114.114 具有 32 字节的数据:
来自 114.114.114.114 的回复: 字节=32 时间=52ms TTL=61
来自 114.114.114.114 的回复: 字节=32 时间=127ms TTL=87
来自 114.114.114.114 的回复: 字节=32 时间=96ms TTL=82
来自 114.114.114.114 的回复: 字节=32 时间=100ms TTL=74

114.114.114.114 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 52ms,最长 = 127ms,平均 = 93ms

这样之后,基本上就可以确定网络是没有问题的了。当然,这里并没有提到出口放置防火墙的情况,实际上,思路是一致的,但是,你需要考虑的是,你的访问数据有没有被防火墙给过滤掉,是数据出去的时候过滤了,还是数据回来的时候过滤了?由于还要涉及到防火墙的设置,这里就不再提及了,只是仍要注意这一点就是了。

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



(5)测试DNS的通畅情况,可以直接ping网站地址

如题,可以直接ping网站地址,看有没有回显IP地址,至于通不通是另外一回事,只要可以回显IP地址,那么DNS就没有问题了,不过这里仍然要说一下nslookup这个命令,这是一个非常好用的命令,我平常自己在网络排错时,基本上都会用到:

C:\Users\XpLeaf>nslookup
默认服务器:  server1.gdut-dns.edu.cn
Address:  202.116.145.145

> www.baidu.com
服务器:  server1.gdut-dns.edu.cn
Address:  202.116.145.145

非权威应答:
名称:    www.a.shifen.com
Addresses:  180.97.33.107
          180.97.33.108
Aliases:  www.baidu.com

> www.taobao.com
服务器:  server1.gdut-dns.edu.cn
Address:  202.116.145.145

非权威应答:
名称:    www.taobao.com.danuoyi.tbcache.com
Address:  119.147.70.1
Aliases:  www.taobao.com

> www.jd.com
服务器:  server1.gdut-dns.edu.cn
Address:  202.116.145.145

非权威应答:
名称:    www.jdcdn.com
Address:  183.56.147.1
Aliases:  www.jd.com

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

C:\Users\XpLeaf>nslookup www.baidu.com
服务器:  server1.gdut-dns.edu.cn
Address:  202.116.145.145

非权威应答:
名称:    www.a.shifen.com
Addresses:  180.97.33.108
          180.97.33.107
Aliases:  
C:\Users\XpLeaf>nslookup www.taobao.com
服务器:  server1.gdut-dns.edu.cn
Address:  202.116.145.145

非权威应答:
名称:    www.taobao.com.danuoyi.tbcache.com
Address:  119.147.70.1
Aliases:  www.taobao.com

使用nslookup命令,作用有二:

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

2.在不考虑DNS服务器是否智能的前提下,你可以根据回显IP地址速度的快慢来大致判断DNS服务器的优劣情况

所以可以充分利用nslookup命令了。




四、最后重要说明

其实基本上,一个相对完整的网络排错过程就应该如上面所说的了,不过,是基本上的,因为上面的讲解,都几乎是假定你是没有权限进入机房查看网络设备的情况的。

事实上,你是根本不需要照搬来进行上面的全部步骤的,在实际排错的过程中,可能你用到的只是其中的一小部分而已,毕竟,如果每次都这样下来,没有谁是不会疯掉的,因为一些很简单的问题也要这样折腾,那就是太浪费时间了!但是,上面的方法,只是提出一种网络排错的思路,希望按照这个思路可以判断出网络的问题出现在哪里,至于如何去解决,这中间真的又涉及到太多太多的经验问题(其实遇到问题可以百度),

其实整个下来,我个人觉得,最重要的仍然不是技术本身,而是在网络排错过程当中的一个思路,思路决定出路,这可以让自己在网络排错的过程中时刻保持清醒的头脑,这一点很重要!

本人并非是专攻网络(曾折腾了一段时间而已)这一块的,也就是并非是网络工程师(也不可能是啦),只是在实际过程当中要处理比较多的网络故障,这一年多的时间下来,也积累了勉强能够称得上是经验的经验吧,写此一文,即是自己作为一个总结,也希望可以帮助到有需要的朋友。

由于技术和语言功底都十分有限,真心希望可以多谅解和包涵,有不足不处还望指导一下,感激不尽!

时间: 2024-12-17 20:49:53

网络排错大讲解的相关文章

网络排错

关于网络排错的几点看法 今天下午公司网络出现了全体断网的情况,经过排查是路由器接口上的RJ45网线出现了松动,指示灯也不闪烁,从而使整个公司内网出现了异常. 经过此次事件,我对网络排错做了如下总结: 一,如果公司只有一个网段,那么就需要了解是单个客户端出现问题还是整个网段有问题.如果是单个客户端有问题则通常是物理层和数据链路层有问题,如计算机RJ45接口是否松动.网卡问题.连接计算机的交换机端口出现异常.像以上的情况,在右下角的网络图标会有一个红叉,并且网卡指示灯不亮.如果实在无法确定,就只有借

贝叶斯公式由浅入深大讲解—AI基础算法入门

1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定的值.比如如果问那时的人们一个问题:"有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?"他们会想都不用想,会立马告诉你,取出白球的概率就是1/2,要么取到白球,要么取不到白球,即θ只能有一个值,而且不论你取了多少次,取得白球的概率θ始终都是1/2,即不随观察结果X

网络排错简记

说明:网络故障是生产过程中非常常见的问题,如何快速定位故障并解决问题是十分重要的.本文针对网络故障的排错问题,总结一过往经验以及来自网络或者书籍的知识简单整理一些排障过程.(好记性不如烂笔头,本文主要目的为梳理终结,如有雷同,联系必删) 阅读目录: 一.网络排错的必备条件 二.网络排错的基本思路 三.网络排错的详细步骤 四.最后说明 一.网络排错的必备条件 网络排错并不仅仅是停留在某一个小小的命令的使用上,而是一套系统的方法,需要我们掌握一定的基础知识,并且能运用到实际当中,所以还是先看看这些基

网络排错小思路

本文的一个思路:一.网络排错的必备条件二.网络排错的基本思路三.网络排错详细步骤四.最后重要说明 一.网络排错的必备条件为什么还要必备条件?因为这里所讲的网络排错并不仅仅是停留在某一个小小命令的使用上,而是一套系统的方法,如果没有这些条件,我真的不能保证下面讲的这些你可以听得懂,并且能运用到实际当中,所以还是先看看这些基础的条件吧. 1.熟悉OSI七层模型与TCP/IP协议栈这应该是网络排错要知道的最基本的知识了.无论是OSI七层模型还是DoD模型,都是用来描述网络通信的一个过程,以让我们对网络

网络空间大搜索技术

由于泛在网络空间.网络应用模式和大数据的发展,国内研究人员对网络空间搜索技术有了新的认识,逐渐形成了网络空间智慧搜索暨网络空间大搜索技术. 国家自然科学基金委员会第120期双清论坛于9月28日-29日在北京召开.本次论坛主题为网络空间智慧搜索基础研究,共邀请了国内外25所大学和科研机构的41位著名专家参会.本次论坛由信息科学部.管理科学部.地球科学部.数理科学部和政策局联合主办,论坛主席由方滨兴院士.吴曼青院士.贾焰教授和陈熙霖研究员共同担任. 论坛开幕式由信息二处刘克处长主持,信息科学部常务副

Python中的网络扫描大杀器Scapy初探

Python中的网络扫描大杀器Scapy初探     最近经历了Twisted的打击,这个网络编程实在看不懂,都摸不透它的内在逻辑,看来网络编程不是那么好弄的.还好,看到了scapy,这种网络的大杀器,让我一看就爱不释手,这才是我需要的网络工具啊.Scapy的功能如此之多,以至于...我到现在还是没看懂.在官方网站也介绍的不多,后来搜了一下,有一本书Security Power Tools一书中,第六章介绍了Scapy,虽然简单,但是还是不明白,这两天一直在忙活着看Scapy.看了几个应用,比较

2、自学——计算机网络学习任务与进度(OSI参考模型对网络排错指导)

OSI参考模型对网络排错指导 OSI参考模型的基础知识: 1.OSI模型每一层都为上一层提供服务 2.网络出现故障从底层往高层一项项的逐步检查 演示排除故障: 1.物理层故障的演示 网络故障演示图 如果打开浏览器输入网站的网址,访问不了网站,网页打不开,我们应该从物理层入手进行查找 物理层故障:网线没有接上(断开) 具体查询故障的操作: 点击网络标志的右键--打开网络和共享中心--更改适配器设置--双击图标(查看此时连接的网络状态) 此时我的电脑的网络状态 通过此时的网络状态逐步分析故障及提出解

linux下网络排错以及查看网络信息命令

ping命令利用icmp协议(echorequest----echo reply包)来实现 选项 -c 次数  指定ping几次后退出 -W 时间  指定最大等待时间 注:如有大量ping请求发到本主机,会影响本机其他网络服务. ping输出详解 rtt:请求报文的响应时间 报错信息:timeout关键字:原因有2种:1,无此主机 2,对方主机不响应 目标主机不可达:这个去查rfc文档(学习网络协议的好方法就是看rfc文档),有中文版的! 判断主机是否在线的脚本: 1) for .. in ..

Linux网络排错

网络排错对于运维人员十分重要,因此知道网络排错的详细流程以及每一步的原理就显得非常重要,当网络出现问题时,我们就可以迅速排查出网络问题所在,从而快速解决网络问题. 例如网络无法连接,原因一般分为硬件问题和软件问题,以下是总结的原因和排查流程: 常用网络命令: 测试网络连通性: ping 192.168.1.1 ping www.baidu.com 测试DNS解析: host www.baidu.com dig www.baidu.com 显示路由表: ip route 追踪到达目标地址的网络路径