时间:2020-09-03 来源:深圳维创信息技术 1
网络排错对于网络工程师或运维人员甚至对很多人(搞IT的朋友们)都十分重要,因此知道网络排错的一个详细流程以及流程中每一步的原理就显得非常重要了,当网络出现问题时,我们就可以迅速排查出网络问题所在,从而快速解决网络问题。
这里要说的网络排错,应该是适合大部分对网络有一定了解的人员的,其实关于网络排错的方法,网络上已经有大部分的资料,但我个人觉得太多都只是停留在文字层面上的,对其中涉及的一些基本原理并没有提及,因此实用性并不大,这里希望写出一篇图文并茂并有一定技术性的网络排错文章给大家,让大家真正掌握一套系统的网络排错方法。
本文的一个思路:一、网络排错的必备条件二、网络排错的基本思路三、网络排错详细步骤四、较后重要说明
1.熟悉OSI七层模型与TCP/IP协议栈这应该是网络排错要知道的较基本的知识了。
无论是OSI七层模型还是DoD模型,都是用来描述网络通信的一个过程,以让我们对网络数据的发送和接收有一个大致的过程。
OSI七层模型对应OSI七层模型的协议,DoD模型对应DoD模型的协议,也就是TCP/IP协议栈。
TCP/IP协议栈里面的协议就显得十分重要了,比如DNS、TCP、UDP、IP、ICMP、ARP,这些较基本的应该得知道吧,我们不需要有像《TCP/IP协议栈》中说得的那么细,但至少,对于这些协议的基本功能我们是必须得要知道的,我想这些就不是我一两名可以说清楚的了,还是那句话,自己百度一下吧。
也许并不需要了解得那么细,但大概的一个过程我想还是应该要知道的。
这里简单提一下,一般中小型企业网络的基本架构都是这样的:接入层--汇聚层--核心层--网络出口。
下面给个图:如果网络环境比较庞大,汇聚层和核心层都会有,像这里的话,就直接没有汇聚层,不过思想是一样的。
下面讲的排错其实都是针对用户PC来说明的,事实上,数据中心中的网络排错也是类似的。
不管网络环境多么复杂,其实简化下来跟这个都是差不多的。
其实说到底就是要熟悉你所使用的设备,当然,在实际网络排错的过程中,如果只是为了测试网络通信是否正常,你可以把你自己熟悉的设备换上操作。
所以这个重要的原则是:关注数据的走向。
下面讲的网络排错思路其实就是通过追踪数据的走向来一步步缩小网络故障点的,因此,时刻记住这一点非常非常重要!这也是为什么上面需要让你了解中小型企业网络的基本架构了。
(1)检查物理链路是否有问题(2)查看本机IP地址、路由、DNS的设置是否有问题(3)测试网关或路由器的通畅情况。
先测网关然后再测路由器,一级一级地测试(4)测试ping公网ip的通畅情况(平时要记几个外部IP)(5)测试DNS的通畅情况,可以直接ping网站地址下面的第三部分,就针对上面的基本思路来进行详细的说明。
(1)检查物理链路是否有问题这一步是我个人认为在做网络排错时必须要做的较早步!经常会听朋友说,领导的电脑上不了网,需要过去排错,搞了老半天,还发现不了问题,较后在几经绝望之时,竟然发现网线都没接上电脑。
这就真的是悲剧了,浪费了很多时间不说,这样的网络排错思路本来就是有错误的。
因为也许不是每个人都可以去机房查看交换机的接线情况,所以这一步,我们排查的重点范围就应该放在如下面图所示的地方:在这一步,下面几点是需要注意排查的:1.确认电脑本身的网卡有没有问题2.确认接的网线有没有问题3.本机所连接的交换机(如果可以去机房查看的话)如果上面这几点排查都没有问题了,那么就是该网络环境中的其他设备问题了。
这一范围的排查相对比较简单,因为只涉及到物理链路的连接问题。
对于这种测试,可以考虑使用测线器,但个人的建议是,拿一台配置正确的笔记本来做测试也未尝不可。
这上步,我们关注的重点是:1.IP地址设置如果采用的是DHCP自动获取的方法,那么这时候只需要看自己本机的设置上有没有开启自动获取IP的设置以及有没有开启相关的服务;如果用的是静态IP,那么就必须要注意IP地址的填写有没有错(一般网络管理人员给的)、IP地址的子网掩码有没有问题(这很重要,对于静态IP,很多人在这里设置错误,建议是,较好把IP地址、VLSM这方面的知识学一下)。
一般可以用下面的命令查看:123456789101112C:\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上面你可以通过下面的命令查看:1234567891011121314151617181920212223242526C:\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
先测网关然后再测路由器,一级一级地测试在上面的网络环境中,在网络通的情况下,我们在电脑上使用命令tracert -d命令,会得到下面的结果:123456789C:\Users\XpLeaf>
trace
rt -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网关的地址,看是否有响应:123456789101112C:\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通192.168.2.254网关后,再ping一下172.16.13.1以确认电脑到整个网关设备都没有问题。
对于ping不通的时候,我个人还建议在电脑上执行如下操作:123456789C:\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命令就可以了:123456789C:\Users\XpLeaf>
trace
rt -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与默认路由等的设置,那么我们大致可以知道,内网的一个基本通信是正常的(至少你的电脑和出口路由器的通信没问题),我们就要看看电脑到底能不能访问互联网了。
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那边的问题了,打电话去问问吧。
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
当然也可以像下面这样使用:1234567891011121314151617C:\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命令了。事实上,你是根本不需要照搬来进行上面的全部步骤的,在实际排错的过程中,可能你用到的只是其中的一小部分而已,毕竟,如果每次都这样下来,没有谁是不会疯掉的,因为一些很简单的问题也要这样折腾,那就是太浪费时间了!但是,上面的方法,只是提出一种网络排错的思路,希望按照这个思路可以判断出网络的问题出现在哪里,至于如何去解决,这中间真的又涉及到太多太多的经验问题(其实遇到问题可以百度),其实整个下来,我个人觉得,较重要的仍然不是技术本身,而是在网络排错过程当中的一个思路,思路决定出路,这可以让自己在网络排错的过程中时刻保持清醒的头脑,这一点很重要!本人并非是专攻网络(曾折腾了一段时间而已)这一块的,也就是并非是网络工程师(也不可能是啦),只是在实际过程当中要处理比较多的网络故障,这一年多的时间下来,也积累了勉强能够称得上是经验的经验吧,写此一文,即是自己作为一个总结,也希望可以帮助到有需要的朋友。
由于技术和语言功底都十分有限,真心希望可以多谅解和包涵,有不足不处还望指导一下,感激不尽!