今天跟大家分享如何全面详解网络排错,希望本文可以给需要进行网络排错的朋友带来实际性的帮助, 也希望可以耐心看下去。
网络排错对于网络工程师或运维人员甚至对很多人(搞IT的朋友们)都十分重要,因此知道网络排错的一个详细流程以及流程中每一步的原理就显得非常重要了,当网络出现问题时,我们就可以迅速排查出网络问题所在,从而快速解决网络问题。
这里要说的网络排错,应该是适合大部分对网络有一定了解的人员的,其实关于网络排错的方法,网络上已经有大部分的资料,但我个人觉得太多都只是停留在文字层面上的,对其中涉及的一些基本原理并没有提及,因此实用性并不大,这里希望写出一篇图文并茂并有一定技术性的网络排错文章给大家,让大家真正掌握一套系统的网络排错方法。
本文的一个思路:
一、网络排错的必备条件
二、网络排错的基本思路
三、网络排错详细步骤
四、最后重要说明
一、网络排错的必备条件
为什么还要必备条件?因为这里所讲的网络排错并不仅仅是停留在某一个小小命令的使用上,而是一套系统的方法,如果没有这些条件,我真的不能保证下面讲的这些你可以听得懂,并且能运用到实际当中,所以还是先看看这些基础的条件吧。
ISO七层模型由下至上为1至7层,分别为: 应用层(Application layer) 表示层(Presentation layer) 会话层(Session layer) 传输层(Transport layer) 网络层(Network layer) 数据链路层(Data link layer) 物理层(Physical layer) 其中上三层称之为高层,定义应用程序之间的通信和人机界面。什么意思呢,就是上三层负责把电脑能看懂的东西转化为你能看懂的东西,或把你能看懂的东西转化为电脑能看懂的东西。 下四层称之为底层,定义的是数据如何端到端的传输(end-to-end),物理规范以及数据与光电信号间的转换。
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 地址是否可用
tracert -d路由追踪,并且不做反向解析
arp -a查看计算机是否已获取到网关的MAC地址
如果使用的是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,一般是指默认网关的设置了;对于路由器本身或三层交换机,那就是静态路由或动态路由的设置问题了。
四、最后重要说明
其实基本上,一个相对完整的网络排错过程就应该如上面所说的了,不过,是基本上的,因为上面的讲解,都几乎是假定你是没有权限进入机房查看网络设备的情况的。
事实上,你是根本不需要照搬来进行上面的全部步骤的,在实际排错的过程中,可能你用到的只是其中的一小部分而已,毕竟,如果每次都这样下来,没有谁是不会疯掉的,因为一些很简单的问题也要这样折腾,那就是太浪费时间了!但是,上面的方法,只是提出一种网络排错的思路,希望按照这个思路可以判断出网络的问题出现在哪里,至于如何去解决,这中间真的又涉及到太多太多的经验问题(其实遇到问题可以网上查询),
其实整个下来,我个人觉得,最重要的仍然不是技术本身,而是在网络排错过程当中的一个思路,思路决定出路,这可以让自己在网络排错的过程中时刻保持清醒的头脑,这一点很重要!
今天就分享到这里,有相关的问题欢迎联系编程学习网!