当前,怎样建立局域网的文章在各大报章杂志上多有介绍,而对网络的维护和故障检修较少提及。现以一个建立在TCP/IP上的网络为例,说说网络故障的检修。
网络问题往往是很独特的,且有时是难以解决的。故障检修要对付一些不希望出现的事情,通常需要的只是掌握概念性的知识,而不是为配置网络所需的细节的知识。要想正确、顺利地解决问题,就需要清楚的了解整个局域网,了解网络的布线、电气环境、TCP/IP如何在网络上、在单个主机、在协议栈的各层之间为数据选择路由等。对于检修网络,这些是非常重要的。
在检修网络故障的工作中,下面的一些提示是很有用的:
1. 不要忽略显而易见的东西。网络电缆松动是很常见的问题,应检查插头、连接器、电缆、集线器和开关等,小事情可能引起大问题。
2. 大多数问题是由人为因素(错误)造成的,通过提供网络配置和作用信息或提供这方面的培训,可以杜绝其中的大部分错误。
3. 要注意解决问题的方式方法,应利用每次测试时收集到的信息去指导你的测试,如果不能确保你所选择的原始测试环境,就千万不要根据主观臆断转移到另一个测试环境中。
4. 应广开思路、灵活变通,不要认为问题的原因太多,不要认为在应用程序级发现的问题就不是下一级引起的。有些人总认为网络有故障,而另一些人总认为远程端有问题,某些人如此肯定他们知道问题的原因,以致不管测试的结果。千万不要重蹈这些覆辙,应测试每一种可能的情况,根据测试结果决定你的行动。
5. 采用几种简单的故障检修工具。对于大多数的TCP/IP软件问题,用几种简单的工具就足以解决问题,花些时间学习如何使用新的检修工具是值得的。
由于很多网络问题的原因都很简单,因而对问题有一个清晰的了解往往就可能找到答案。遗憾的是情况并不总这这样!下面介绍几种简单的工具,可以帮助你去攻克最难解决的问题。
Ping:这个命令工具在Linux/Unix、Dos、Windows 9x、Windows NT等系统下都可以找到。这一工具可以测试你的系统是否能到达一台远程的主机,这一简单的功能对于测试网络的连接是非常有用的,而与在其中检测到问题的应用程序无关。Ping允许你下一步是测试网络连接层(较低层)还是应用程序层(较高层)。如果ping显示分组报文可以到远程系统并返回,用户的问题就可能在较高层中;如果分组报文不能返回传送,那么故障可能在较低的协议层或物理层中。
利用用户的主机名或IP地址,可先对远程主机使用ping命令;如果执行成功,就由用户对该主机使用ping命令;如果也执行成功,那么就应集中精力去分析用户遇到问题的那个应用程序。
如果你的ping命令执行成功,而用户的ping命令却失败,就可以集中测试该用户的系统配置文件,以及将你和用户到该远程主机的路径进行比较,找到它们的不同之处。
如果你和用户的ping命令都失败了,ping命令显示的出错信息是很有帮助的,可以指导你进行下一步的测试计划。以下是几种基本的出错类型: unknow host 该远程主机的名字不能被DNS(域名服务器)转换成IP地址,DNS可能出故障、该名字可能是不正确的、你的系统和远程服务器之间的网络可能出毛病。如果你知道该远程主机的IP地址,可以再试一试ping命令。如果利用它的IP地址能达到该主机,问题就可能出在DNS上。
Network unreachable 本地系统没有到达该远程系统的路由。如果在ping命令中使用IP地址,则利用主机名重新输入ping命令,这就消除了输入不正确IP地址的可能性。如果使用路由选择协议,一定要确保它正在运行,并使用nestat 去检查其路由表。
no answer 远程系统没有响应。大多网络实用程序都有不同形式的类似信息,某些系统的ping命令可打印成100% packet loss, telnet 打印成connection timeout。所有的这些错误信息都说明同一个问题:本地系统有一条到达远程系统的路由,但它却接收不到它发给该远程系统的任何分组报文响应。这种问题的原因有很多,远程主机可能没有工作、本地或远程主机可能配置不当、本地和远程主机之间的线路不正常等等。只有用其它的方法才可以隔离该问题的原因。
废了一大堆口舌,终于“UNPING”的原因道出个头绪来了,更加高深的我也不懂了,请多多包涵。下面我们继续看看ping上了后它所显示的内容说明了什么。
ping命令的基本格式是:ping host [packetsize][count](不同的系统,格式略有不同) host 是被测试远程主机的主机名或IP地址。Packetsize是可选项,定义测试分组报文的长度(Byte),只有在使用count字段是才使用。却省的分组长度是56Byte,count是测试时发送的分组数。Count一般设置为较低值,一般设为4或5就可以了。
测试从Link 上能否到达ly,用以下命令:
C:\WIN98>ping ly Pinging ly [222.222.222.15] with 32 bytes of data:
Reply from 222.222.222.15:bytes=32 time=1ms TTL=128
Reply from 222.222.222.15:bytes=32 time=1ms TTL=128
Reply from 222.222.222.15:bytes=32 time=1ms TTL=128
Reply from 222.222.222.15:bytes=32 time=1ms TTL=128
Ping statistics for 222.222.222.15:
Packets:Sent = 4, Received = 4, Lost = 0(0% loss),
Approximate round trip times in milli-seconds:
Minimun = 1ms, Maximum = 1ms, Average = 1ms
该测试表明link 到ly的连接非常正常,没有丢失分组,响应很快。在link 到ly之间的往返平均只需1毫秒。对于局域网的连接,分组丢失越少和往返时间越小则越正常。TTL(Time To Live)=128。该ping命令显示的统计信息可以指出下一级的网络问题。其关键的统计信息是:
* 一个分组往返传送需要多长时间,它显示在time=之后。
* 分组丢失的百分比。它显示在ping输出结束处的总统计行中。
* 分组到达的次序。如每个分组的ICMP序号(icmp_seq)。
如果分组丢失率高、响应时间非常慢,或者各分组不按次序到达,那么就有可能是硬件有毛病;当然,如果这些情况发生广域网上就不必担心太多。
在本地网络中,其往返时间约等于1毫秒,几乎或完全没有分组丢失,各分组应按次序到达。如果不是这样,那么网络硬件就有问题。在以太网中可能是由于:不合适的电缆端接(终端电阻)、不良电缆、不良的有源硬件(Hub等)。首先要检查电缆的端接,It's so easy,看看有没有终端电阻。这是一个最常见最简单的检测电缆的方法是用一个万用表测量某一端口的电阻值。如果测得端口电阻为零,说明电缆短路,为无穷大则断路,50欧左右说明有一个终端电阻脱落,正常应在25欧左右。
一个简单的ping测试的结果,即使该测试顺利通过,也能指导你做进一步的测试,帮助你找到最可能发生问题的地方。但是要深入检查问题,并找到潜在的原因,还需要其它的诊断工具。最后再简单介绍几个有用的工具:
netstat 可提供各种各样的信息,通常用来显示每个网络接口、网络插口、网络路由表等的详细统计资料。
arp 提供有关以太网IP地址转换的信息,它可以用来检测本地网络中,用错误的IP地址配置的系统。
Ifconfig 提供接口的基本配置信息。它对于检测不正确的IP地址、子网掩码和广播地址是很有用的。