当前位置:文档之家› 网络排错讲解

网络排错讲解

网络排错大讲解
时间:2015-08-29 00:59:59 阅读:99 评论:0 收藏:0 [点我收藏+]
标签:网络排错 网络问题 网络不通 说明: 首先,真心希望本文可以给需要进行网络排错的朋友带来实际性的帮助, 也希望可以 耐心看下去。 网络排错对于网络工程师或运维人员甚至对很多人(搞 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 ipconfig/all ping nslookup tarcert -d 查看计算机的 IP 地址、子网掩码和网关 查看计算机的 IP 地址、子网掩码、网关和 DNS 地址 测试主机之间的网络连通性 请求域名对应的 IP 地址,并以此测试 DNS 地址是否可用 路由追踪,并且不做反向解析
如果使用的是 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 https://www.doczj.com/doc/c36188442.html,
通过最多 30 个跃点跟踪 到 https://www.doczj.com/doc/c36188442.html, [180.97.33.108] 的路由:
1 2 3
12 ms
27 ms
16 ms 192.168.2.254
76 ms 107 ms 126 ms 172.16.13.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 192.168.2.255 224.0.0.22 224.0.0.252 239.255.255.250 物理地址 类型 动态
cc-03-0a-1c-00-00 ff-ff-ff-ff-ff-ff 静态
01-00-5e-00-00-16 01-00-5e-00-00-fc 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 2 3
7 ms 92 ms 62 ms
9 ms 79 ms 47 ms
20 ms 192.168.2.254 89 ms 172.16.12.2 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 默认服务器: https://www.doczj.com/doc/c36188442.html, Address: 202.116.145.145

> https://www.doczj.com/doc/c36188442.html, 服务器: https://www.doczj.com/doc/c36188442.html, Address: 202.116.145.145
非权威应答: 名称: https://www.doczj.com/doc/c36188442.html,
Addresses: 180.97.33.107 180.97.33.108 Aliases: https://www.doczj.com/doc/c36188442.html,
> https://www.doczj.com/doc/c36188442.html, 服务器: https://www.doczj.com/doc/c36188442.html, Address: 202.116.145.145
非权威应答: 名称: https://www.doczj.com/doc/c36188442.html,
Address: 119.147.70.1 Aliases: https://www.doczj.com/doc/c36188442.html,
> https://www.doczj.com/doc/c36188442.html, 服务器: https://www.doczj.com/doc/c36188442.html, Address: 202.116.145.145
非权威应答: 名称: https://www.doczj.com/doc/c36188442.html,
Address: 183.56.147.1 Aliases: https://www.doczj.com/doc/c36188442.html,
当然也可以像下面这样使用:

C:\Users\XpLeaf>nslookup https://www.doczj.com/doc/c36188442.html, 服务器: https://www.doczj.com/doc/c36188442.html, Address: 202.116.145.145
非权威应答: 名称: https://www.doczj.com/doc/c36188442.html,
Addresses: 180.97.33.108 180.97.33.107 Aliases: C:\Users\XpLeaf>nslookup https://www.doczj.com/doc/c36188442.html, 服务器: https://www.doczj.com/doc/c36188442.html, Address: 202.116.145.145
非权威应答: 名称: https://www.doczj.com/doc/c36188442.html,
Address: 119.147.70.1 Aliases: https://www.doczj.com/doc/c36188442.html,
使用 nslookup 命令,作用有二:
1.帮你测试你设置的 DNS 服务器有没有问题 2.在不考虑 DNS 服务器是否智能的前提下, 你可以根据回显 IP 地址速度的快慢来大致判断 DNS 服务器的优劣情况
所以可以充分利用 nslookup 命令了。

相关主题
文本预览
相关文档 最新文档