问题解决工具及要点

来源:互联网 发布:ubuntu 16.04 lts中文 编辑:程序博客网 时间:2024/05/19 19:34
下载
第40章问题解决工具及要点
作者:Bernard McCarg o
本章内容包括:
• 监视网络行为
• 标准应用程序
• 解决网络接口问题
• 解决网络层( I P )问题
• 解决T C P和U D P问题
• 解决应用层问题
引起大多数问题的原因非常简单,因此准确的定义它是解决问题的关键。但是事情并非
总是如此,因此本章首先讨论帮助用户解决疑难问题的工具。这些工具既有价值上万美元的
商业软硬件产品,也有互联网上发布的免费软件。本章主要讨论免费的诊断工具。
主要有以下几点原因:首先,商业系统的价格昂贵;其次许多管理员不能购买商业软件,
但任何人都可获得免费的诊断工具。最后一点是大多数问题都可以使用免费的诊断工具解决。
大型的网络可能需要商业软件如T D R,但对于系较小的网络,免费的诊断工具足够使用。
本章使用的工具在R F C 11 4 7中有详细的描述。
40.1 监视网络行为
为了发现问题,用户必须对监视网络有基本的了解。如果没有第三方或嵌入式网络监视
系统,解决网络问题将花费大量的时间。
监视网络行为可使用户在问题发生前对网络进行预防性维护。当发生问题时,它可以为
用户搜集问题的细节信息。因此,当报告有问题发生时,用户可以检查网络监视系统的记录,
寻找哪项服务失败。远程主机名和I P地址是什么?用户的主机名和I P地址是什么?显示了什
么错误消息?如果可能,让用户再次运行应用以确认问题,或在测试系统中复制问题。
40.2 标准应用程序
本章及全书使用的标准应用程序包括:
• i f c o n f i g—提供网卡的基本配置信息。通常用来检查错误的I P地址、不正确的子网掩码
或错误的广播地址。U n i x系统均提供该应用, Windows NT 操作系统的类似工具为
ipconfig, Windows 95下为Wi n i p c f g。
• arp—以太网地址/ I P地址的转换工具。通常用来检测局域网I P地址配置错误。
• netstat—提供多种信息。通常用于显示网络接口、网络s o c k e t及网络路由表的统计信息。
• p i n g—检测远程主机是否可达。该工具也可用来显示报文丢失的统计信息及报文传送
时间。
• nslookup—提供D N S名字服务的信息。
• d i g—提供名字服务的信息,与n s l o o k u p类似。它可从匿名F T P服务器v e n e r a . i s i . e d u的
/ p u b / d i g . 2 . 0 . t a r. z获得。
• r i p q u e r y—提供系统接收或发送r i p更新报文的信息。它是g a t e d软件包的一部分。但用
户不需要运行g a t e d守护进程,当系统运行R I P时,就可以使用此程序。
• t r a c e r o u t e—提供从本地系统到远程节点的路由信息。每一跳的信息均被显示。它可从
匿名F T P服务器f t p . e e . l b l . g o v的t r a c e r o u t e . t a r. z中获得。
• e t h e r f i n d—分析主机与网络交换的报文的信息。e t h e r f i n d实际上是T C P / I P协议分析工具,
它可以检查报文的内容,包括包头。在分析协议问题时,此应用程序非常有用。在S u n O S
操作系统中,该程序称为t c p d u m p,t c p d u m p可在匿名F T P站点f t p . e e . l b l . g o v上获得。
本章将使用到上述所有应用程序。其p i n g在所有工具中使用频率最高。
40.2.1 测试基本连接
p i n g命令可用于测试远程节点是否可达。这个简单的功能在测试网络连接时非常有用。
p i n g命令使用户决定是否需要对网络作进一步测试(低层或高层)。如果p i n g显示报文可到达远
程主机并返回,则问题可能出在高层。如果报文不能完成往返过程,可能是低层协议出错。
通常,用户报告网络问题时,只指出他(她)不能t e l n e t ( f t p或s e n d m a i l等)到远程主机,然后
指出这些服务以前都是可用的。诸如此类的情况,首先要确定是否可以连接远程主机,此时
p i n g是最佳工具。
使用p i n g测试用户提供的主机是否可达。如果你可以p i n g到远程主机,让用户p i n g远程主
机。如果用户也可以p i n g到远程主机,则需要对发生问题的应用做进一步的分析。或许是因
为用户试图t e l n e t到只提供匿名f t p服务的主机;或许当用户登录时,主机已经关闭了。使用户
再试一次,并且了解他所做的每一个细节,如果所有步骤都正确而服务依然失败,使用
e t h e r f i n d对应用进行详细分析,必要时联系远程服务的管理员。
如果你可以p i n g成功,而用户p i n g失败,则需要检查用户系统的配置是否正确。及用户所
使用的网络路径与你使用的路径是否相同。
如果你与用户的p i n g都失败了,则注意显示的错误信息。p i n g所显示的错误消息可以指导
进一步的测试。错误消息因具体情况不同而变化。其中基本类型如下:
• 不知名主机—不能将主机名解析为对应的I P地址。名字服务器可能失效(本地服务器或
远程域名服务器)、名字不正确或用户系统与远程主机间的网络出错。如果知道远程主机
的I P地址,直接p i n g远程主机的I P地址。如果使用I P地址可达,则可确定问题出在名字
服务器。使用n s l o o k u p或d i g测试本地或远程服务器,同时注意使用的主机名的正确性。
• 网络不可达—本地系统没有到达远程系统的网络路径。如果使用I P地址也不正确,使
用主机名作为p i n g的参数。这样可减小I P地址出错的可能性。如果使用了路由协议,确
定它正确运行并且使用n e t s t a t检查路由表。如果使用R I P协议,运行rip query检查接收的
r i p更新报文的内容。如果使用缺省静态路由,重新安装它。如果没有发现问题,则需检
查网关是否存在问题。
• 无应答—远程系统不响应。许多网络应用都有此类错误消息。某些p i n g命令还显示
1 0 0 %报文丢失消息。t e l n e t显示Connection timed out消息,s e n d m a i l返回c a n n o t c o n n e c t
错误。所有这些消息的意思相同。本地系统有路由可到达远程主机,但没有接收到远程
第4 0章问题解决工具及要点使用441
下载
主机的响应。
引起这一错误的原因有多种。远程主机可能关闭,或本地主机或远程主机配置不正确,
网关或本地主机与远程主机之间的线路出错,远程主机可能有路由错误等;只有进行进一步
的测试方可能得到具体的原因。使用n e t s t a t和i f c o n f i g命令仔细检查本地主机的配置。使用
t r a c e r o u t e检查本地系统到远程节点的路由。与远程系统的管理员联系,报告问题。
上面提到的所有工具将在本章后面讨论。下面我们讨论p i n g命令的参数及其输出形式。
40.2.2 ping命令
p i n g命令的基本格式如下:
p i n g host [packetsize] [count]
h o s t:为需要测试的远程主机的主机名或I P地址。使用用户在错误报告中提供的主机名或
地址进行测试。
报文长度( p a c k e t s i z e )定义了测试报文的字节尺寸。只有使用数量字段时才需要使用该字
段。它的缺省值为5 6。
数量( c o u n t )指明进行测试时发送的报文数量。使用该字段时,值不要太大。否则p i n g命令
将一直发送报文,直到用户使用C o n t r o l - c ( ^ C )中断为止。发送连续测试报文将消耗网络带宽
和系统资源。通常5个报文比较合适。
在名为b e r n a r d的工作站上测试远程节点u u n e t . u u . n e t是否可达,下面的命令发送5个长度为
5 6的报文:
命令中包含- s开关是因为b e r n a r d为S u n工作站,当需要显示每个报文的情况时,需要- s开
关。否则将只显示“ uunet.uu.net is alive”消息。其他系统上的p i n g不需要- s开关就可显示详
细信息。
测试说明到u u n e t . u u . n e t的广域网连接性能良好,没有报文丢失并且响应速度较快。
b e r n a r d到u u n e t . u u . n e t的往返平均了仅用1 3毫秒。在广域网中少量的报文丢失及较大的往返时
间都是正常的。p i n g命令的统计信息,可以显示较低层次的网络问题。关键的统计数据有:
• 报文抵达序列,由I C M P序列号( I C M P - s e q )显示。
• 每个报文往返所用时间,单位为m s(毫秒),在t i m e =后显示。
• 报文丢失百分比,它在p i n g命令输出的总结行显示。
如果报文丢失较多而响应时间低或报文乱序抵达,说明网络硬件出错。如果在广域网上
进行测试,则上述现象属于正常范围。T C P / I P适用于不可靠网络,某些广域网的报文丢失率
442使用第九部分使用与管理T C P / I P网络
下载
较高,但是若对于局域网,上述现象表明出现网络故障。
在局域网中,往返时间趋近于0,报文丢失很少或没有,并且报文按序抵达。如果出现异
常,说明网络硬件故障。在以太网中,可能是线缆终结器故障,或线缆分段故障或中继器故
障。首先检查线缆终结器。检查终结器非常简单,或者系统没有安装终结器,它很容易出故
障,尤其是终端器放在用户可碰到的工作区中。
检查线缆硬件故障的最佳工具是时域反射表(time domain reflectometer TDR),T D R在线
缆中发送信号并监听信号的回应。这些回应显示在测试工具前端的显示器上。如果线缆没有
终结,信号将跳到显示器上顶端,正常的显示中仅有少量跳跃,使用T D R可以很容易发现线
缆问题。
p i n g测试的结果无论成功与否都可以帮助用户进一步查找故障。其他诊断工具用来进一
步检查故障并发现较明确的起因。
40.2.3 解决网络访问故障
没有响应或不能连接等错误消息表明网络故障出现在协议的底层。如果测试指出此类网
络故障则集中测试路由与网络接口。使用i f c o n f i g、n e t s t a t及a r p命令测试网络层访问。
1. 使用i f c o n f i g命令
i f c o n f i g检查网络接口的配置。当用户重新配置网络接口或仅有某个用户系统不能登录远
程主机而其他主机可以,则使用此命令检查用户的网络接口配置。
当i f c o n f i g的参数只有网络接口名时,它显示分配给接口的当前值。例如检测bernard le0
接口,输出如下:
f c o n f i g的输出仅两行,第一行显示接口名称及其特征。检查以下特征:
• U P—接口是否启动。如果接口没启动,让系统管理员使用i f c o n f i g重启接口( i f c o n f i g
le0 up)。如果仍未启动,替换接口线路并重试。如果仍然失败,检查接口硬件(网卡)。
• R U N N I N G—表明接口可使用,如果接口没有运行,接口的驱动程序可能不正确。系
统管理员需要检查安装接口的所有步骤是否有错误或遗漏。
第二行显示I P地址、子网掩码(以1 6进制显示)、广播地址。检查此三项以确保网络接口配
置正确。
2. 使用a r p命令
a r p命令用于分析I P地址到以太网地址的转换问题, a r p命令有三个开关可用于解决网络故
障。
- a—显示表中所有的A R P项。
-d h o s t n a m e—从A R P表中删除对应的项。
-s hostname ether- a d d re s s—在表中增加新的项。
使用这三个开关,用户可以查看A R P表的内容,删除有问题的项并添加正确的项。添加
正确的项在解决问题时非常有用。
如果怀疑地址表中有不正确的项,可以使用a r p命令。a r p表中的错误表现为某些命令对应
第4 0章问题解决工具及要点使用443
下载
错误的I P地址(如f t p或t e l n e t )。仅影响到特定主机的错误也可能表明a r p表遭到破坏。a r p表的问
题通常源于两个系统使用同一个I P地址。此类问题的间歇性源于表中的地址与最先响应的
A R P请求一致,有时正确的主机响应较快。
如果用户怀疑两个系统使用相同的I P地址,可用arp -a命令显示地址解析表。示例如下:
如果每个主机的I P对应正确的以太网地址,用户很容易检查I P地址与以太网地址的正确
性。因此,当网络中添加主机时,应记录主机的I P地址与以太网地址。如果保存了此类记录,
很容易发现表中的任何异常。
如果用户没有此类记录,以太网地址的前三个字节也可以帮助解决问题。以太网地址的
前三个字节标识设备的生产商。这些前缀标识可以从相应的R F C文档中的“以太网卡厂商地
址部分”找到。
表4 0 - 1列出了一些设备生产厂商及其前缀。使用这些信息,我们可以得到示例中前两项
为S u n系统( 8 : 0 : 2 0 )。如果b e r n a d e t t e也为S u n,则0:0:93 Proteon前缀表明P r o t e o n路由器的I P地
址配置错误。
表40-1 以太网厂商前缀
444使用第九部分使用与管理T C P / I P网络
下载
前缀厂商前缀厂商
如果检查配置情况及厂商的前缀都不能帮助你标识A R P源,则使用t e l n e t连接A R P项的I P
地址。如果设备支持t e l n e t,则登录界面或许可以帮助你标识错误配置的主机。
3. 使用n e t s t a t检查接口
如果前面的测试说明主机到局域网的连接可能不可靠,则netstat -i命令可以提供更有用的
信息,下面为netstat -i的示例:
输出中的l o 0行为本地接口可以忽略。只需注意网络接口,其中,每行的后五项对解决网
络问题非常有用。
首先让我我们看最后一个字段,它说明没有一个接受查询的报文不能发送出去。如果接
口启动并且运行,但是系统不能将报文发送到网络上,则可能是网络接口或线缆故障。如果
更换线缆后,问题仍然存在,则需要硬件厂商维修接口硬件设备。
输入错误( I e r r s )及输出错误O e e r s应当趋近于0。无论通过接口的报文有多少,若这些字
段的值超过1 0 0都不正常。输出错误高说明局域网过于饱和或主机与网络的物理连接出错。
输入错误高说明网络过于饱和或本地主机负载过重,也可能由于网络物理连接的问题。使用
工具如p i n g或T D R可以确定是否出现网络物理连接故障。网络碰撞率可以判定以太网是否过
于饱和。
冲突字段的值较高( C o l l i s )是正常现象,但是如果输出报文与冲突报文的比率过高,则说
明网络过于饱和。冲突率应控制在5 %以内。如果网络主机的冲突率持续高于5 %,则用户需要
将网络划分为多个子网以减小流量负载。
冲突率为输出报文与冲突报文的比值。不要使用输入输出报文作比较,只需使用O p k t s和
C o l l i s两个字段的值之比获得冲突率。例如,上例中,发出的报文数为633 424,冲突报文数
为50 679,可得冲突率为8 %,说明局域网负载过重,检查网络中的其他主机,如果其他主机
的冲突率较高,则需考虑划分局域网。
4. 检查路由
网络不可达消息说明路由有问题。如果仅本地主机的路由表出错,则很容易发现并解决。
首先使用n e t s t a t - n r及g r e p命令检查路由表中是否有到达目地主机的有效路由:例如检查到网络
1 2 8 . 8 . 0 . 0的路由:
如果主机中没有到达网络1 2 8 . 8 . 0 . 0的路由,则主机无响应。例如,某用户报告网络故障,
他不能t e l n e t登录到n i c . d d n . m i l,并且p i n g该主机返回以下结果:
第4 0章问题解决工具及要点使用445
下载
因为出现网络不可达消息,所以需要检查用户的路由表。本例中,检查到n i l . d d n . m i l的路
由。假设n i l . d d n . m i l的I P地址为1 9 2 . 11 2 . 3 6 . 5,这是一个C类地址,注意路由是面向网络的。因
此,我们检查到网络1 9 2 . 11 2 . 3 6 . 0的路由:
检查结果说明没有到网络1 9 2 . 11 2 . 3 6 . 0的路由。如果找到对应的路由, g r e p命令将显示出
在屏幕上。如果没有到指定地点的路由,需要检查缺省路由。检查缺省路由示例如下:
如果n e t s t a t命令说明有正确的路由或有缺省路由,则说明问题不在路由表。此时,使用
t r a c e r o u t e,跟踪到达目的地的整个路径, t r a c e r o u t e命令将在本章后面详细介绍。
如果n e t s t a t没有返回路由信息,说明本地路由表出错。根据系统采用静态路由还是动态路
由决定解决方法。如果系统采用静态路由,使用route add命令添加所需路由,大多数系统的
静态路由基本上都使用缺省路由。因此,丢失的可能是缺省路由。使系统每次启动时添加所
需的路由是彻底解决问题的好方法。
如果使用动态路由,确定路由程序正确运行,例如,使用以下命令判断g a t e d是否运行:
如果没有运行正确的路由守护进程,重新启动它并指出正确的路径。路径可以使用户发
现导致守护进程异常终止的原因。
5. 检查R I P更新
如果路由守护进程正确运行,并且本地系统通过R I P路由信息协议接收路由更新技术,则
使用r i p q u e r y检查由R I P提供者接收的路由更新报文。例如,检查从a n n e t t e及b e r n a d e t t e发送的
路由更新报文,b e r n a r d的管理员可使用如下命令:
显示输出的第一行标识网关,其余各行显示接收的R I P报文的内容。第一行说明r i p q u e r y
接收到来自a n n e t t e的R I P报文。接下来两行说明a n n e t t e发出的路由信息。a n n e t t e说明它到缺省
446使用第九部分使用与管理T C P / I P网络
下载
路由的距离为3,路由到M i l n e t ( 2 6 . 0 . 0 . 0 )的距离为0。然后,r i p q u e r y显示b e r n a d e t t e广播的路由
信息。这些路由信息路由到其他子网。
本例中使用了r i p q u e r y的两个开关:
- n—使r i p q u e r y显示所有输出。r i p q u e r y将把所有的I P地址解析为域名,如果不使用- n开
关。使用- n开关,可以获得更清楚的输出结果,用户不必自己将域名解析为I P地址。
- r—使r i p q u e r y直接使用rip Request 命令而不是RIP POLL 命令查询R I P提供者。R I P
D O L L没有得到广泛的支持。在r i p q u e r y命令中使用- r开关,更有可能得到需要的结果。
显示输出的路由器必须与参数中给出的一致;否则,检查R I P提供者的配置。R I P提供者
的错误配置可能使它广播不应广播的路由。而应当广播的路由信息又被忽略。用户需要根据
自己对网络配置知识的了解检查这些问题。
6、跟踪路由
如果本地路由表及R I P提供者都正确,则问题有可能出在距本地机较远的主机上。远程路
由问题可导致“无响应”及“网络不可达”错误。但是“网络不可达”并不说明一定是路由
问题。也有可能是本地主机与远程主机间的其他错误导致网络不可达。t r a c e r o u t e命令可以帮
助用户定位这些错误。
t r a c e r o u t e命令跟踪从本地主机到远程节点的U D P路由报文。它显示从本地主机到远程节
点间的每一个网关的名字及I P地址。
t r a c e r o u t e使用两种技术,较小的生存期( t t l )及无效的端口来跟踪到达目的地的报文。
t r a c e r o u t e发送t t l值较小的U D P报文搜索网关。t t l初始值为1,每发送三个U D P报文,t t l值增1。
当某个网关接收到报文,它将t t l值减1。如果t t l的值为0,则报文不向前发送, I C M P超时消息
将发送给报文的源地址。t r a c e r o u t e显示发送I C M P超时报文的网关的信息,每一行显示一个
网关。
当目的主机接收到来自t r a c e r o u t e报文时,它返回“ I C M P端口不可达”消息,这是因为
t r a c e r o u t e使用无效端口3 3 4 3 4来人为产生该错误。如果t r a c e r o u t e接收到端口不可达消息,则
表明它到达目的主机,于是中止t r a c e r o u t e跟踪。采用这种方法, t r a c e r o u t e列出一系列网关,
从第一跳的网关开始,相邻网关相差一跳,直到目的主机。
以下示例说明在S U R A n e t网中的某台主机上运行traceroute nic.ddn.mil的情况。t r a c e r o u t e
每发送三个报文, t t l值增1。如果没有收到报文响应,显示*。如果收到报文响应,显示响应
网关的名字及地址,报文的往返时间单位为m s (毫秒)。
路径显示8个网关,每个网关都有响应报文,报文从本地主机到n i c . d d n . m i l的往返时间平
第4 0章问题解决工具及要点使用447
下载
448使用第九部分使用与管理T C P / I P网络
下载
均为3 3 m s。
I C M P在不同类型网关上具体实现时的b u g及通过网络的报文路径的随机性可能会导致一
些奇怪的显示输出。因此,用户不需仔细察看t r a c e r o u t e的输出。t r a c e r o u t e输出中重要的部分
为:
• 报文是否到达目的主机?
• 如果没有,在哪儿停止?
下面列出了到达n i c . d d n . m i l的另一条路径,示例中,报文并没有到达目的主机。
当t r a c e r o u t e没有获得远程节点的响应,路径跟踪失败,它将连续显示三颗*直到3 0。如果
碰到此类情况,需要与远程主机的管理员路径中最后到达的网关的管理员联系。向他们说明
碰到的问题。本例中,最后到达的网关为G S I . N S N . N A S A . G O V。我们需要与该系统的管理员
及n i c . d d n . m i l的管理员联系,以获得帮助。
7. 检查名字服务
当用户应用返回“ unknown host(不可知主机)”消息,说明存在名字服务器问题。名字服
务器故障通常使用n s l o o k u p或d i g等工具诊断。d i g的功能与n s l o o k u p类似。在使用d i g之前,让
我们首先学习n s l o o k u p并了解如何使用n s l o o k u p解决名字服务问题。
n s l o o k u p三个重要特性可以帮助我们解决远程域名服务器故障。这三个功能特性为:
• 使用N S查询定位远程域的主服务器。
• 使用A N Y查询获取远程主机的所有记录。
• 使用n s l o o k u p的l s及v i e w命令浏览远程域的所有项。
当解决远程服务器故障时,直接使用N S查询主服务器,不要查询非主服务器。如果问题
有间歇性,查询所有的主域名服务器并比较所得结果。对于同一个查询返回不同的结果会引
起间歇式名字服务器问题。
A N Y查询返回主机的所有记录。仅知道简单信息就可以解决许多问题。例如:如果查询
返回M X记录但没有A记录,则很容易理解用户为什么不能t e l n e t到远程主机。大多数主机可用
m a i l访问,但不支持其他服务。许多用户不了解这一点,而使用不恰当的方式访问远程主机。
如果管理员不能获得用户提供的主机名的任何信息,很有可能主机名出错。如果是主机
名的问题,纠正它和大海捞针一样困难。然而n s l o o k u p可以解决这一问题。使用n s l o o k u p的l s
命令显示远程域的文件,并将它重定向到某个文件中。然后使用n s l o o k u p的v i e w命令浏览该
文件,寻找与用户提供的主机名类似的域名。许多问题都是由错误的主机名引起的。
d i g是与n s l o o k u p类似的工具。d i g通常为单行命令,而n s l o o k u p为交互行会话应用。但是
d i g可完成与n s l o o k u p相同的功能。具体选择哪一个工具依个人喜好而定。
例如,我们使用d i g向根服务器a g g i e . n c a & t . e d u查询j h u . e d u的N S记录,命令如下:
% dig @ aggie.nca&t.edu jhu.edu ns
在本例中, @ aggie.nca&t.edu为被查询的服务器。可采用名字或I P地址标识服务器。
如果要解决远程域的问题,需指定对应域的主服务器。本例中查询顶级域( j h u . e d u )的服务
器名,因此需要询问根服务器。
40.3 解决网络接口层问题
虽然在这一层很简单,但底层的栈也可能发生故障。在这一层的问题可分为以下四类:
• 物理连接问题。与所有网络一样, T C P / I P必须互连才能正常工作。所有的网络都要求系
统连入网络,因此,首先需要检查物理连接。
• D H C P客户端没有分配I P地址。因为可能返回给用户大量的消息所以比较明显。用户可
以通过两种方式获得I P地址。第一种是静态分配I P地址,另一种是通过D H C P (动态主机
配置协议)动态获取I P地址。在U n i x中,用户需要使用I f c o n f i g确信获得了I P地址,在
Windows 95下可用Wi n I P C F G,Windows NT下可用I P C O N F I G命令完成相同的功能。
• A R P问题。如果地址解析协议工作不正常,用户就不能将I P地址解析为M A C地址。A R P
应用,可以帮助用户检查地址解析是否正确。
• 网络中I P地址冲突。用户可能碰到的另一个问题是两个系统使用相同的I P地址。如果发
生此类情况,系统在把I P地址解析为M A C地址时发生错误。
如果采用静态地址解析,可以避免此类问题。但是当系统更换网络适配器时,必须要修
改地址解析表。用户可以使用A R P命令解决此类问题。
40.4 解决网络层问题
网络层负责报文的路由。因此,在网络层,我们需要仔细检查I P地址、子网掩码及缺省
网关是否正确。除了配置外,问题还可能出在路由表或本地主机远程节点间的路由器上。
40.4.1 TCP/IP配置参数
T C P / I P配置主要包括三个参数: I P地址、子网掩码及缺省网关。缺省网关通常是用户主
机所在网段的路由器地址。在Wi n d o w s系统中,可以在“网络”对话框的“协议”标签页中
配置,在U n i x系统中,需要使用i f c o n f i g命令在命令行方式下进行配置。虽然I P地址可通过
D H C P服务器动态配置,但本节主要讨论静态I P地址的配置。
T C P / I P的三个参数必须配置正确,否则将不能进入T C P / I P网络。不正确的配置可能由于
拓扑图错误造成。如果敲入错误的I P地址、子网掩码或默认网关,用户可能不能正确连入网
络或根本连接不上。
如果T C P / I P配置参数的错误是由于拓扑或错误的数字,则不正确的配置将影响通信。配
置错误的类型不同,可能导致不同的故障。后续章节将详细讨论问题的类型及解决方法。
第4 0章问题解决工具及要点使用449
下载
450使用第九部分使用与管理T C P / I P网络
下载
40.4.2 IP地址配置问题
错误的I P地址配置可能引起许多问题。如果I P地址处在正确的子网且没有发生冲突,但
使用了错误的主机I D,客户通信将不能很好地进行。如果与主机名对应的正确的I P地址存放
在静态文本或数据库中,正如L M H O S T S文件或D N S数据库文件中,将发生通信故障。因此,
不正确的I P地址将引发若干问题。
T C P / I P参数的配置问题可以引起多种不同的症状。下面几小节将分别讨论它们对I P通信
的影响。
1. IP 地址
I P地址拥有两个或三个部分惟一标识地址分配到的主机。I P地址分为两部分,一部分标
识网络地址;另一部分标识主机地址。同时,如果用户划分子网, I P地址的第三部分还可标
识主机所在的子网地址。
图4 0 - 1显示不正确的网络地址的情况。在示例中,客户方的T C P / I P地址设置不正确。其
他地址设置为1 4 3 . 1 6 8 . 3 . 9,正确的地址应为1 3 3 . 1 6 8 . 3 . 9。因此,不正确的I P地址所对应的网络
I D为1 4 3 . 1 6 8 . x . x,而正确的I P所对应的网络I D为1 3 3 . 1 6 8 . x . x。
使用不正确的地址( 1 4 3 . 1 6 8 . 3 . 9 ),客户端不能与其他任何T C P / I P主机进行通信。因为网络
地址不正确,客户方发送的任何报文都将路由到错误的地址。
如果错误配置的主机( 1 4 3 . 1 6 8 . 3 . 9 )向本地客户( 1 3 3 . 1 6 8 . 3 . 2 0 )发送消息,发送主机T C P / I P配
置表明它是一台远程主机,因为其网络地址与接收消息的主机的网络地址不同。报文不能到
达本地客户端,因为接收消息的主机认为消息来自远程地址。
图40-1 错误IP地址示例
如果本地主机( 1 3 3 . 1 6 8 . 3 . 6 )向不正确的主机( 1 4 3 . 1 6 8 . 3 . 9 )发送消息,消息将不能到达目的
主机。消息将路由到远程域(如果使用I P地址发送)或留在子网内(使用名字发送,其对应的I P
为1 3 3 . 1 6 8 . 3 . 9 )。如果消息被路由,错误主机将不能接收到消息,因为它位于本地子网内。如
果消息没有被路由,消息仍然不能到达错误主机,因为目的主机的I P地址为1 3 3 . 1 6 8 . 3 . 9与错
误配置的主机I P地址1 4 3 . 1 6 8 . 3 . 9不匹配。
图4 0 - 2给出了另外一个错误配置I P地址的例子。在本例中,使用A类地址( 3 3 . x . x . x ),子网
掩码( 2 5 5 . 2 5 5 . 0 . 0 )表明后第二个字节用于创建子网。本示例中,即使客户端与其他主机有相同
1 3 3 . 1 6 8 . 3 . 9
1 3 3 . 1 6 8 . 3 . 1
1 3 3 . 1 6 8 . 3 . 8
1 3 3 . 1 6 8 . 3 . 1 0
不能建立连接,因
为网络I D不匹配
不能建立连接,因为本地
路由器不能找到客户端
R e m o t e
H o s t
R o u t e r
第4 0章问题解决工具及要点使用451
下载
的网络地址,但由于子网地址不同仍然会产生错误。
本例中,错误的原因是指定了不正确的子网I D。主机3 3 . 5 . 8 . 4在子网5而其他主机的子网
I D为4。因此,如果主机3 3 . 5 . 8 . 4试图与同一个子网的其他主机通信,消息将被路由,因为子
网I D与源主机子网I D不匹配。如果主机3 3 . 5 . 8 . 4试图向远程主机发送消息,消息将被路由。但
是,返回给主机的消息不能到达主机,因为路由器不能处理到达子网5的消息,而只处理到达
子网4的报文。
如果本地客户向主机3 3 . 5 . 8 . 4发送消息,消息将不能到达主机。如果本地客户使用I P地址,
消息将被路由,从而不可能到达对应主机,因为它在子网之内。如果本地客户使用了正确的
I P地址,报文仍然不能被正确接收,因为I P地址不匹配。
I P地址的最后一个组成部分为主机地址,如果主机地址配置错误也可能会导致通信错误。
不正确的主机地址不总是引起错误。如图4 0 - 3所示,本地客户使用了错误的I P地址,但仅只
有主机地址不正确,网络地址及子网地址与其他客户相同。
图40-2 不正确的子网地址
图40-3 不正确的主机ID
在本例中,如果客户向I P地址不正确的主机发送消息,消息可以到达主机。然而如果某
R e m o t e
H o s t
R o u t e r
3 3 . 4 . 8 . 1
3 3 . 4 . 8 . 3
3 3 . 4 . 8 . 5
不能连接,因为子网不
同,报文将路由
不能连接,因为路由器不
能处理到3 3 . 5 . x . x的报文
3 3 . 5 . 8 . 4
R e m o t e
H o s t
R o u t e r
3 3 . 4 . 8 . 1
3 3 . 4 . 8 . 3
3 3 . 4 . 8 . 5
不能连接,因为子网不
同,报文将路由
不能连接,因为路由器不能
处理返回到3 3 . 5 . x . x的报文
3 3 . 5 . 8 . 4
子网3 3 . x . x . x使用不正确的
子网掩码2 5 5 . 2 5 5 . 0 . 0
用户使用正确的I P地址进行通信,将不能建立连接。实际上,他将与另一台主机建立连接,
并认为此主机为他试图建立连接的主机。
如果两台主机的I P地址相同,首先启动的主机将正确运行,而后启动的主机将显示地址
冲突,并且不加载T C P / I P协议栈。此时要启动的主机不能使用T C P / I P建立通信。
此外,当正确的主机地址被记录在静态文本中时,将引发其他问题。如L M H O S T S文件或
D N S数据库文件中。此时,使用名字不能与正确的主机建立连接,因为服务器总是返回正确
的I P地址。
通常,主机地址不正确引发的问题具有间歇性。然而,当主机是W I N S客户端时(使用
Wi n d o w s操作系统),主机名将随I P地址一起注册。其他W I N S客户端试图与配置不正确的主机
连接时,总可以获得主机名与I P地址的准确映射。
2. 子网掩码
子网掩码表明I P地址中哪一部分表明网络地址。哪一部分表明主机地址。同时,子网掩
码可以将主机地址分成多个子网。如果子网掩码设置不正确,客户主机将不能通信,或会引
发通信故障。
图4 0 - 4显示使用B类网络地址1 3 8 . 1 3 . x . x的T C P / I P网络的子网、I P地址的第三个字节用于
划分子网,图中所有客户主机的子网I D为4,表明其子网地址为1 3 8 . 1 3 . 4。
不幸的是,其中一个主机的子网掩码设置为2 5 5 . 2 5 5 . 0 . 0。当该主机试图与同一子网其他
主机建立通信时,因为子网掩码表明它们在同一子网,所以可以建立连接。然而,当该主机
试图与其他子网的主机建立连接时,如1 3 8 . 1 3 . 3 . x,连接失败。
在这种情况下,子网掩码仍认为目的主机与本地主机在同一子网下,消息将不被路由。
因为目的主机在别的子网,消息将永远到达不了目的主机。子网掩码只决定出去的报文是否
需要路由。因此,子网掩码配置错误的主机仍可以接收消息,然而当它发送返回消息时,消
息将只在本子网内,而不会通过路由器到达其他子网。
所以,客户端只能建立单向通信。与其他网络的通信仍可正常进行,因为这些报文都将
路由。
图40-4 即使IP地址正确,错误的子网ID仍会引发问题
452使用第九部分使用与管理T C P / I P网络
下载
I P地址1 3 8 . 1 3 . 4 . 6
子网掩码2 5 5 . 2 5 5 . 2 5 5 . 0
子网掩码表明处在
同一个子网
子网掩码表明处在同一子网,报文
不被路由,不能到达目的主机
I P地址1 3 8 . 1 3 . 4 . 5
子网掩码2 5 5 . 2 5 5 . 0 . 0
I P地址1 3 8 . 1 3 . 4 . 4
子网掩码2 5 5 . 2 5 5 . 2 5 5 . 0
1 3 8 . 1 3 . 3 . 2 6
1 3 8 . 1 3 . 4 . 1
R o u t e r
R e m o t e
O K . H o s t
第4 0章问题解决工具及要点使用453
下载
图4 0 - 5显示子网掩码位太多的错误。一般情况下,子网掩码为2 5 5 . 2 5 5 . 2 5 5 . 0,然而网络设
计者试图使用子网掩码2 5 5 . 2 5 5 . 2 4 0 . 0,第三个字节的前四位用于子网,后四位用于主机地址。
如果正确配置的客户端向本地主机发送消息,并且I P地址第三个字节相同,消息将不被
路由,可正确建立连接。然而如果本地客户端的地址第三个字节的后四位不同,消息将被路
由,从而无法到达目的主机。如果错误配置的主机试图与同子网内的其他主机建立联系,消
息将路由,因为第三个字节不同。
由于子网掩码错误导致的问题有间歇性,有时连接工作正常,有时发生错误。当目的主
机的I P地址引起该路由的报文未路由或不该路由的包却路由了,将会引发通信故障。
图40-5 子网掩码位太多而导致的通信故障
3. 默认网关
默认网关的地址为路由器的地址—处在子网交界处的网关。如果客户主机的默认网关配
置错误,它只可与本地主机通信,而不能连接远程节点。当默认网关配置错误时,主机可以
接收来自子网以外的报文,因为默认网关只影响报文的发送。然而,当主机试图响应远程节
点的报文时,由于网关配置错误,将不能正确发送响应报文,导致网络连接错。
40.5 解决TCP和UDP问题
传输层很少出现问题。如果用户可以使用p i n g命令,说明传输层工作正确。在这一层惟
一可能发现的问题与第9章中讨论的T C P窗口尺寸有关。
该问题将导致通信速度缓慢(与7 0年代到8 0年代使用的11 0波特类似)。如果用户确认无其
他问题,在Windows NT中检查T C P窗口尺寸只需打开注册表查找Windows Size项即可。如果
发现该项,记住其值,并将该项删除,系统将自动重设窗口尺寸。
1. Socket问题
如果用户正确配置了I P地址及协议,并且到远程节点的路由正确,仍需要在正确的端口
运行需要的服务。如果想要提供服务或连接网络上提供的服务,用户必须了解服务使用的端
口号。I n t e r n e t编号管理局( I A N A )分配了通用端口号( s o c k e t )。然而在某些情况下,服务需要
使用不同端口。下一节描述的文件列出服务所对应的端口,如果用户确认端口正确,可以使
子网1 3 8 . 1 3 . 1 6 - 3 1 . x
I P地址1 3 8 . 1 3 . 1 9 . 1
子网掩码2 5 5 . 2 5 5 . 2 4 0 . 0
子网掩码认为地址
处于不同子网
报文被路由I P地址1 3 8 . 1 3 . 1 8 . 1
子网掩码2 5 5 . 2 5 5 . 2 5 5 . 0
I P地址1 3 8 . 1 7 . 1
子网掩码2 5 5 . 2 5 5 . 2 4 0 . 0
1 3 8 . 1 3 . 3 2 . 1
1 3 8 . 1 3 . 1 6 . 1
路由器
远程
主机
O K .
用n e t s t a t命令检查端口接收的数据。
2. Service文件
Windows NT中s y s t e m 3 2 / d r i v e r s / e t c目录下的s e r v i c e文件中列出了大部分服务使用的端口
号,以供系统初始时使用。下面是该服务文件的一小部分:
454使用第九部分使用与管理T C P / I P网络
下载
如果某个服务有问题,用户应首先检查此文件中服务是否使用正确的端口。如果服务未
列出,用户必须手工加入,使系统知道使用哪个端口提供此项服务( s e r v i c e文件是普通的文本
文件,可使用E d i t或写字板查看和修改)。
40.6 解决应用层问题
在应用层中,用户可能会碰到两类问题: N e t B I O S问题和名字解析问题。其中最常见的是
名字解析问题,它影响S o c k e t应用及N e t B I O S应用。在4 0 . 6 . 1节,我们将讨论名字解析问题。
名字解析问题
若用户正确配置T C P / I P并且协议安装正确且可正常工作,如果连接中仍有问题则很可能
是名字解析问题。当管理员使用T C P / I P地址测试连接时,可能只测试了底层连接。
当用户想要连接网络资源—如映射某服务器的网络驱动器—他们通常使用域名而不是
I P地址。实际上,用户也不知道服务器的I P地址。但是,当使用域名建立连接时,必须首先
将域名解析为I P地址。
当检测完I P地址后,下一步是检查名字解析的I P地址是否正确。如果名字不能解析为I P地
址或解析不正确,用户就不能使用名字建立连接,除非他们使用I P地址。
用于建立连接的主机名有两类:分配给N e t B I O S主机的N e t B I O S名字,如Windows NT或
Windows 95 系统;分配给非N e t B I O S主机的名字,如U n i x服务器。总的来说,当使用
M i c r o s o f t网络连接网络共享、文件打印或应用服务器时,使用N E T B I O S名。当执行T C P / I P应
用时,如使用F T P或We b浏览器时,使用主机名。
40.7 小结
由T C P / I P配置引起的问题远远超过T C P / I P协议实现时引起的问题。用户碰到的大多数问
题都可以使用本章讲解的工具解决。但是,在某些情况下,用户需要分析两个系统协议交互
的情况;甚至有时需逐位分析报文中的数据。
第4 0章问题解决工具及要点使用455
下载 
原创粉丝点击