第12章诊断工具和实用程序本章内容包括:• n s l o o k u p: n s l o o k u p工具包括在Windows NT和Windows 2000中并总是随同B I N D软件包一起提供。这个很有用的诊断工具可提供许多选项,并提供一种方法以便从头到尾地跟踪D N S查询。• d i g:d i g工具没有n s l o o k u p那么强大。它也随同B I N D一起提供,并能比n s l o o k u p提供更多的信息。• d n s c m d:Windows 2000的资源工具箱新提供了用来完成D N S服务器管理任务的命令行工具d n s c m d,没有该工具只能通过D N S服务器的管理界面完成D N S服务器管理任务。• p i n g:p i n g工具可以提供一种最简单的方法来验证网络上的另一台主机是否可以接通。它可能是T C P/I P最常用的诊断工具。• pathping:这个Windows 2000特有的命令在p i n g报文中提供了类似t r a c e r t的信息。• t r a c e r t:就如其名字中所隐含的意义, t r a c e r t工具可以指出分组从一台计算机到另一台计算机所经过的路由。该命令类似于U N I X下的t r a c e r o u t e命令。• N e t l a b:N e t l a b是网络工具中的“瑞士军刀”。这个共享软件可以免费下裁,并具有多种工具的功能,使用简单友好的图形界面。• H o s t:H o s t是本章选择的第二个自由软件工具。这个命令行工具提供了不少高级的查询功能,如使用n s l o o k u p则需一系列的命令才能完成。• i p c o n f i g:Windows NT和Windows 2000内置的命令行工具i p c o n g f i g可以提供关于每个T C P/I P网络接口如何配置的基本信息,并提供对D H C P客户端租借的控制。• w i n i p c f g:Windows 95和Windows 98内置的图形界面工具。w i n i p c f g也能提供每个T C P/I P网络接口是如何配置的基本信息。• n e t d i a g:Windows 2000的资源工具箱新提供了能用来完成各种网络配置任务的命令行工具n e t d r a g。在诊断活动目录支持方面的问题时它是最有用的,这些问题中有许多是由D N S引起的。• n e t s h:它是Windows 2000新提供的网络界面工具。该界面对上下文提供丰富的设置,并且允许上下文的扩展。尽管它并不提供D N S、网络接口、D H C P以及W I N S的上下文,但对初学者来说,它仍是进行Windows 2000网络管理时必须知道的工具。• n e t s t a t:Windows 95、Windows 98、Windows NT和Windows 2000内置的命令行工具。n e t s t a t不仅提供T C P/I P接口的配置信息,还可以提供关于路由、连接、端口和连接统计的信息。• n b t s t a t:Windows 95、Windows 98、Windows NT和Windows 2000内置的命令行工具。第三部分Wi n d o w s中对D N S服务的支持n b t s t a t提供N e t B I O S信息,包括连接和统计信息,并在某些平台中提供设置控制。• System Montor:这是Windows NT和2 0 0 0的标准工具。它有一个具有许多有用的计数器的D N S对象,这些计数器覆盖了D N S服务器操作性统计数据的许多重要方面。• netmon:这是Windows 2000和N T的标准的用于在报文级监测正在发生的通信的工具。12.1 nslookupn s l o o k u p是用来进行手动D N S查询的最常用工具。这个独特的工具具有一种特性:它既可以模拟标准的客户解析器,也可模拟服务器。作为客户解析器, n s l o o k u p可以直接向服务器查询信息。而用作服务器, n s l o o k u p可以实现从主服务器到辅服务器的域区传送。这个工具可以用于两种模式:非交互模式( 这时要从命令行输入完整的命令,如n s l o o k u pw w w. e x a m p l e . n e t )和交互模式(这时只键入n s l o o k u p和回车,不输入参数)。任何一种模式都可将参数传递给n s l o o k u p,但在域名服务器出现故障时更多地使用交互模式。在交互模式下,可以在提示符“>”下键入h e l p或“?”来获得帮助信息。执行h e l p命令将提供以下各节所涉及的命令的基本信息。注意本章中的多数命令的例子是在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 . w i n 2 0 0 0 d n s . c o m(注意w i n 2 0 0 0 d n s . c o m这个地址只是个例子)。注意“N o n -authoritative answer”行,这是唯一用于指示查询是否是从缓存中获得回答。如果服务器是该名字的授权服务器,这一行就不会出现。也可以这样使用:nslookup www.example.net venera.isi.edu,其中第二个主机名是用于取代缺省服务器的。可以看到现在的回答是授权的。如果正在使用命令行模式,并且想使用后续部分将讲到的一些参数,请记住将这些参数放在前面,并可以将这些参数省略到仍能保持独一无二,不会与其他参数混淆的程度。如果想看到解析过程中所有的通信,可以使用命令nslookup -d2 www.example.net venera.isi.edu,尽管大多数时候使用参数- d就足够了。在对n s l o o k u p所提供的选项做详细解释以前,先介绍一下使用这个工具时所需记住的几个要点。前面提到过, n s l o o k u p有自己的解析器。因为n s l o o k u p可以发送递归查询或迭代查询,所以需要指定解析器所使用的方式。当调试D N S服务器时,常需要从缺省的递归查询转换到迭代查询以检查该D N S服务器所知道的信息。通过选项set type=any限制所返回的资源记录的134第三部分Wi n d o w s中对D N S服务的支持
类型有时是十分有用的。如果不需要所有的类型,使用a n y以外的参数,缺省值是A记录。通过使用选项server Name和lserver Name,解析器将指向你的服务器或其他的服务器,两种选项下参数N a m e本身被解析的过程是不同的。如果已经使用选项server x.y. z使解析器指向一台非法的机器x . y. z,那么再使用server some.good.nameserver将会失败,因为x . y. z不能用来解析s o m e . g o o d . n a m e s e r v e r。在这种情况下,必须使用I P协议或使用lserver some.good.nameserver,假设本地服务器(即l s e r v e r)是一个合法的名字服务器。通过设置选项d e f n a m e、d o m a i n、s e a r c h和s r c h l i s t或者使用带句点后缀的全域名可以控制解析过程中对域名的补全。有疑问的时候,执行交互式的命令set all察看当前配置。最后,对Wi n d o w s使用者来说不易引起注意的一件事是C t r l + C可以用来终止命令的执行。如果用命令L S启动了一次域区传送并想在中途中止命令的执行,那么C t r l + C将使你返回到n s l o o k u p的命令提示符下。12.1.1 help( ? )命令h e l p或?命令显示帮助信息以及非常简略的命令小结。此命令的语法如下:或返回结果如下:第1 2章诊断工具和实用程序135
下面的选项列在Windows nslookup 的帮助信息的早期版本中,提供了该书出版时的Windows 2000版本中的n s l o o k u p所接收的深层选项的有关信息。12.1.2 exit命令e x i t命令用来退出n s l o o k u p应用程序。如果键入的是q u i t,则n s l o o k u p将认为它是一个主机名,并企图解析这个名字,因为q u i t不是一个有效的命令字符串。此外也可以在n s l o o k u p提示符下用C t r l + C退出。e x i t命令的语法如下:12.1.3 finger命令标准的f i n g e r命令只适用于当前主机。所谓当前主机就是最后一次成功查找的主机。如果最后一次的命令是对m a c h i n e . e x a m p l e . n e t的A记录查询,该查询将返回其I P地址。此后如使用的命令是finger <u s e r n a m e>,其结果与键入命令finger < u s e r n a m e>@ m a c h i n e . e x a m p l e . n e t基本相同。f i n g e r命令的语法如下:下面是一次n s l o o k u p 使用对话的一部分,其中一台运行f i n g e r 服务的U N I X 主机w w w. e x a m p l e . n e t上的用户u s e r被查询。一台Wi n d o w s服务器需要安装简单的T C P / I P服务并且被允许以这种方式响应。12.1.4 server命令s e r v e r命令和l s e r v e r命令很类似,也是解析另一台域名服务器并将它设置为缺省服务器。差别在于s e r v e r命令是用当前缺省服务器来解析新服务器。s e r v e r命令的格式如下:136第三部分Wi n d o w s中对D N S服务的支持
下面的例子使用了s e r v e r命令将n s . w i n 2 0 0 0 d n s . c o m设置为n s l o o k u p解析器的缺省查询服务器。12.1.5 lserver命令l s e r v e r命令首先用一台本地域名服务器来查找另一台域名服务器,然后将找到的域名服务器设置为缺省的域名服务器。当错误地将缺省的服务器设置为一台不响应的或者不是D N S服务器的主机时,这条命令就很有用。使用l s e r v e r命令,可以重新设置缺省域名服务器而不必依赖于当前缺省域名服务器。l s e r v e r命令的格式如下:当需要在这种情况下恢复正常工作时l s e r v e r命令是十分有用的。12.1.6 root命令r o o t命令使用户可以将给定会话的缺省域名服务器改为由set all命令列出的根服务器。缺省的根服务器是a . r o o t_s e r v e r. n e t。执行r o o t命令将缺省服务器设为a . r o o t _ s e r v e r. n e t。这个命令的语法如下:下面的例子中a . r o o t - s e r v e r s . n e t是根服务器,被设置成缺省服务器。可以通过选项r o o t = N a m e指定所使用的根服务器。12.1.7 ls命令1 s命令随同其相应的选项,可以让用户看到D N S域的域区文件的内容。如果不指定选项,则缺省的显示是一个域的所有主机名和I P地址。如果服务器上的域区传送受到限制,将返回一个拒绝消息。指定其他的选项可以改变显示的内容。也可以使用标准的重定向将获得的信息保存到文件。实际上,使用l s命令是手工将域区传送到客户机或辅服务器的一种方法。这个命令的语法如下:l s命令可用的选项如下:-t <RR> 列出指定类型的所有记录。.-a. 列出域中所有计算机的别名(与-t CNAME相同)。- d 列出域中的所有记录(与-t ANY相同)。- h 列出域中主机的C P U信息和O S信息(与-t HINFO相同)。第1 2章诊断工具和实用程序137
- s 列出域中主机的主要服务(与- t WKS相同)。注意当使用- t < R R >选项来通过类型过滤时,在NT 4.0中仍将传送整个列表,过滤将在本地进行。如前所述, - h和- s选项不再在在线帮助中记录,但它们仍存在于Windows 2000的最终测试版中。请注意<domain name>不是可选的,或许你会感到迷惑。而且文件名不允许指定路径。12.1.8 set命令s e t命令用来修改n s l o o k u p的工作参数,此命令本身本质上只是其他许多子命令的前缀。第一个需要熟悉的子命令是set all命令,它将显示当前用来进行查询的工作参数。无需输入整条命令, s e t命令可以被省略到仍保持独一无二,即不与其他命令混淆的程度。命令用括号来表示结束。有些子命令可带有选项[ n o ]以取消某个特性的设置。set all命令的示例如下:s e t命令的其他子命令如下,它们中大多数的值已经列出在上面的输出中:138第三部分Wi n d o w s中对D N S服务的支持
使用set 命令需要一定的经验才能得到所需的效果。以下对每个选项的功能及使用做了一些说明。1. set class 选项set class选项用来设置查询的协议类别。缺省的类别是I n t e r n e t类,其他的类别还有C h a o s,h e s i o d和A N Y。使人迷惑的是, H S和H e s i o d都代表H e s i o d,I N代表I n t e r n e t,但I n t e r n e t却不被接受。类名不区分大小写,所以I N和i n被作为同一个词。这个命令的语法如下:2. set [no] debug 命令选项set [no]debug 选项用来设置标准的调试模式或非调试模式。在调试模式下,发送到服务器的查询及回答将以格式化的文本打印。缺省的模式是非调试模式。关掉调试级开关也会导致d 2级的调试被关掉。这个命令的语法如下:3. set[no]d2命令选项s e t [ n o ] d 2选项用来设置详细调试模式或非详细调试模式。在详细调试模式下,发送到服务器的查询和从服务器得到的回答的每个分组都将显示。打开d 2级的调试开关意味调试级的开关的打开,关掉d 2级的调试开关将导致调试级的开关被关闭。缺省的工作模式是非详细调试模式n o d 2。此命令选项的语法如下:4. Set [no]defname命令选项设置了d e f n a m e选项后,对任何名字中不包含“ .”即句点的查询,都会在该名字后加上缺省的域名。缺省的工作模式是d e f n a m e模式,当然,也可以取消这种模式。此选项不需要参数,因为缺省的域名是在其他命令选项中设置的(参见s e t命令的s e a r c h和s r c h l i s t选项)。此命令选项的语法如下:5. set domain命令选项set domain命令选项的作用是设置d e f n a m e选项所使用的缺省域名。缺省的是本地主机的域名,但可以改变为任何的域。此命令选项的语法如下:6. set [no] ignoretc命令选项s e t [ n o ] i g n o r e t c选项可以使n s l o o k u p忽略接收的在查询过程中设置的带有截断错误标志的分组,当然,缺省的设置是不忽略接收这种分组。当n s l o o k u p收到被截断的分组(通常是U D P分组)时,这意味着分组中不会包含所有的信息。在n o i g n o r e t c模式下,n s l o o k u p将使用T C P重新查询。T C P响应可能是更大的分组,因此可能收到更多的信息,并希望能完成查询。此命第1 2章诊断工具和实用程序139
令选项的语法如下:7. set IXFR version=<version> 命令选项选项set IXFR version可用来设置执行增量传输( I X F R类型)时向服务器报告的版本号。该版本号将同S O A记录的版本号相比较以决定哪些记录需要传送。该命令语法如下:8. set [no]msxfr 命令选项命令set msxfr激活微软的快速域区传送方法,而命令set nomsxfr将设置使用一般的传送方法。一些D N S服务器,比如版本早于4 . 9 . 4的B I N O服务器并不支持将多个资源记录压缩进一个报文的域区传送方法。而Windows 2000的D N S服务器相互间一般都会这样传输。该选项能使n s l o o k u p作为对等能力的实体出现,并且使我们可以测试服务器的传输而不使用压缩的方法。该命令选项的语法如下:9. set port命令选项分配给D N S的缺省端口号是5 3 ( T C P和U D P )。注意端口号可能更高,在BIND 8或更高版本时将协商决定所使用的端口。这种协商行为是后续B I N D版本的缺省行为。使用set port选项,D N S服务器可以被配置为使用其他的端口,这一般是在调试时进行。此命令选项的语法如下:10. set querytype命令选项set querytype(或set type)命令选项可改变查询需要查找信息的类型。改变查询类型将修改向域名服务器提出的问题,以反映所需的信息。例如,如果用户需要查给定域的邮件交换记录( M X ),则查询类型应设为M X。缺省设置是查询与主机名/域名相匹配的A记录。如果发送的查询用I P地址来提问,则解析器将倒置此地址,再加上i n - a d d r. a r p a域,查找相应的P T R记录。此命令选项的语法如下:Windows 2000可以设置q u e r y t y p e为以下这些值:A 查找主机的I P地址A A A A 查找主机的I P v 6地址A F S D B 查找A F S或D C F记录A N Y 查找关于主机域的所有信息C N A M E 查找与别名对应的正式名字D N A M E① 查找域重定向别名G I D 对一个组名找出组标识符H I N F O 查找主机的C P U和操作系统类型I S D N 查找I S D N的电话号码记录K E Y 查找密钥记录140第三部分Wi n d o w s中对D N S服务的支持
M B 查找邮箱域名M G 查找邮箱组信息M I N F O 查找邮箱信息M R 查找邮箱改名信息M X 查找邮件交换信息N S 查找主机/域的域名服务器N S A P 查找O S I(开放系统互联)(C L N P)的访问点记录P T R 查找与给定I P地址匹配的主机名P X 查找用作x . 5 0 0地址映射的记录R P 查找域负责人记录RT 通过记录查找路径S I G 查找域内的数字签名记录S O A 显示域内的S O A记录S RV 查找域内广播的服务资源T X T 显示有关主机/域的任何正文信息U I D 查找主机/域的用户标识U I N F O 查找用户信息W K S 显示众所周知的服务信息X 2 5 息显示X . 2 5网络支持记录注:① D N A M E在本书出版时的Windows 2000的版本中并未提供。11. set[no] recurse命令选项s e t [ n o ] r e c u r s e选项可设置n s l o o k u p发送递归查询或者是迭代查询到另一台主机。缺省的模式是r e c u r s e,即递归查询。这就是说,如果收到查询的域名服务器本身没有答案,则它将继续查询其他域名服务器。如设置为n o r e c u r s e模式,即迭代查询,则n s l o o k u p将模拟为另一台发出交互式查询的域名服务器,以得到继续查询的提示。当调试D N S服务器时该选项是十分重要的,它使你在相应的设置下看到缓存中的信息或服务器能获得的信息。此命令选项的语法如下:12. Set retry命令选项set retry选项用来指定在停止搜索前发送查询的试探次数。一般在查询时,是由客户机向域名服务器发送查询。如果没有收到响应,客户机将重发查询,已试探次数加1。每重发一次查询,超时值加倍。这给域名服务器更长的时间去找到答案。该选项缺省值是4,但在当前的Windows 2000版本中该值设为1。此命令选项的语法如下:13. set root命令选项使用set root选项可使缺省的根服务器更换为另一台根服务器。缺省的根服务器是a . r o o t -s e r v e r s . n e t,可更换为另一台I n t e r N I C根服务器如e . r o o t - s e r v e r s . n e t。执行r o o t命令(不是s e tr o o t选项)将把该服务器设为本地缺省的服务器。此命令选项的语法如下:第1 2章诊断工具和实用程序141
14. set [no] search命令选项set [no] search选项可以设置是否搜索域名搜索列表中的条目。如果收到的查询名字中只有一个“ .”,并且不是以“.”结束,则在搜索列表中的域名将逐一添加到查询名再进行搜索,直到找到回答。需要注意的是如果设置为s e a r c h模式,则d e f n a m e不起作用。因为缺省设置是s e a r c h模式,因此,除非使用了set nosearch命令,d e f n a m e是不能使用的。此命令选项的语法如下,15. set srchlist命令选项set srchlist选项可以指定一系列域名,以供s e a r c h选项设置后在搜索时使用。指定的域名将加到不是以“ .”结束的查询。除非另外设置,缺省的搜索列表中包含本地主机的域名。这个命令也将覆盖set domain命令。摸索列表中最多可以包含6个不同的域名,彼此用“/”分隔。此命令选项的格式如下:16. set timeout命令选项set timeout选项用来w设置初始的解析器等待回答的超时值。如果在设定的超时值内没有收到回答,则重新发出查询,超时值加倍。每次查询如果没有收到回答,只要没有超过试探次数,就重发查询,超时值加倍。缺省的超时值是2秒。此命令选项的格式是:17. set type 命令选项同Set querytype选项,只是更短的缩写。18. set[no]vc命令选项v c代表vitual circuit,即虚拟电路。set vc选项用来设置在查询时是否使用U D P (非虚电路,n o v c )或T C P (虚拟电路, v c )。此选项可以和i g n o r e选项一起使用。如果用户希望所有的查询都用T C P来处理,则可以设置i g n o r e选项。此命令选项的语法如下:12.1.9 nslookup错误信息用户在使用n s l o o k u p时应对某些错误信息加以注意。错误信息(见下文)可以提出服务器上发生问题的原因。• Time out。这条信息一般表示服务器在指定的时间内没有响应。检查服务器是否工作和工作正常,观察事件日志中是否有影响服务的错误记录。• No response from server。这条信息表示D N S根本不接受查询。检查服务和事件日志来寻找错误原因。• No records。表示无记录可提供。例如用户请求域的H I N F O记录,但域中没有公布H I N F O记录。• Format error。域名服务器因为格式不正确而拒绝接受查询。其原因可能是域名服务器的版本太旧,或者是表示网络的数据遭到破坏。142第三部分Wi n d o w s中对D N S服务的支持
• Server failure。这种情况多数是因为域区文件出了问题。分号位置不正确,或其他键入失误往往是这种失效的原因。检查事件日志以得到更详细的信息,或者如果此错误是由远端机器造成的,检查列在S O A中的邮箱,以发现更多信息。• Connection refused或Network unreachable。这可能表示若干种情况。首先,确认域名服务器是否可以连接(可以p i n g )。如果不可连接,存在某种网络错误。如果域名服务器可以p i n g,错误原因可能是所发送的查询的类型。若在某种安全设置下(例如设置了只能传送到通告列表上列出的主机)想进行l s操作,则此错误表示用户没有得到复制域区的允许。• R e f u s e d。这种错误和上一种错误很类似,或者表示查询所到达的接口没有配置成回答域名服务器的查询。应检查域名服务器的配置。12.2 digd i g工具是另一个可以用来向域名服务器查询信息的应用程序。d i g并不是Windows NT或Windows 2000的一部分,但它可以随同B I N D一起免费提供。在网上也有可以得到d i g的节点,是由B e r k e l e y计算中心管理的(见附录A )。d i g工具没有交互模式,但它有许多可以在命令行使用的选项。d i g的基本语法如下:d i g工具所使用的选项定义如下:• [@ server] :表示查询所指向的域名服务器。此选项使用户可以改变域名服务器,其作用就如同在n s l o o k u p命令中的server name选项。这个选项的缺省值是在解析器列表中的第一个域名服务器。• [domain] : 域名系统中的名字。这应该是用户所查询的域名。• [q-class] 或[query-class] :设置查询的类别,可以是( i n , a n y, h s . . . )中的一种。缺省的值是i n .• [q-type] 或[query-type] :设置查询所需要的源记录的类型,就如同在工具n s l o o k u p中使用set querytype=<t y p e>所进行的设置。查询类型可以是a、a n y、m x、s o a、h i n f o、a x f r、t x t等中的一种。缺省值是a。• {q -opt}或{query-opt} :查询选项。可以采用以下所列值的一种:• -x dot-notation-address。不指定P T R查询类型就解析点标记地址。• -f file:通过批处理文件解析多个地址。• -T time:指定用批处理查询时,各查询间的时间间隔。• -p port:指定另一个端口。缺省的端口号是5 3。• -P ping-string: 在一次成功查询返回后,再进行一次p i n g操作,以比较响应的时间。在p i n g的分组中还可以指定一个字符串。• -t query-type:和q - t y p e相同。• -c query-class:和q - c l a s s相同。• - e n v s a v - e n v s e t:允许设置或修改环境变量。d i g工具可以使用一个D I G . E N V文件来设置环境参数。• -[no]stick :决定在连续的查询间,环境的设置是可变还是不可变。缺省的设置是第1 2章诊断工具和实用程序143
n o s t i c k。• {d-opt} 或{dig-option} :d i g选项。格式是k e y w o r d = v a l u e (关键词=值),其中的关健词如表1 2 - 1所示。表12-1 {d-opt}和{ d i g - o p t i o n }选项的关键词多数d i g选项很类似于n s l o o k u p选项,但如选项中要指定值则应使用“ +”来启用。详细的帮助文件随软件一起提供。d i g中没有类似n s l o o k u p的d e f n a m e和s e a r c h两个选项,因此用户应注意使用全域名来进行查询。d i g应用程序是很有用的测试域名服务器和处理域名服务器故障的工具。d i g的一个很有用的用途是获得当前根缓存的副本。只要在命令行简单地键入“ d i g> c a c h e”就可以获得完整的根缓存,并可用来和已存在的文件进行比较以决定是否要修改或更新。如果要使用d i g测试本地系统,键入“ dig domain.name(dig域名)”就能获得服务器的全部信息,每个部分还有适当的标记。以下示例显示了d i g应用程序的典型应用及其显示结果。144第三部分Wi n d o w s中对D N S服务的支持
12.3 dnscmdd n s c m d是Windows 2000的服务器版本的资源工具箱中所提供的命令行工具。许多情况下必须深入到D N S管理控制台才能完成的工作,有了它只需一条命令就能完成。该工具被设计为同D N S的域区协调工作,而无论域区是否被集成到活动目录中。该工具提供创建或删除记录甚至域区,查看域区,暂停和重启域区,操纵服务器缓存,查看或清除统计数据,甚至强制清理等功能。尽管可以将多个D N S服务器加入到一台主机上的D N S管理控制台以远程管理服务器,但有人认为没有比命令行更好的方法。如果使用命令行是你的风格,你当然会使用d n s c m d。即使你不惯于使用命令行,也请注意该工具给你提供了一种无需用多次鼠标点击就能完成一些域区管理的方法,比如在域区内加入多台主机。毫无疑问,仅就该工具对D N S服务器缓存的管理功能而言,该工具也是十分有价值的,而且它的功能远不止如此。看一下下面的帮助信息以了解该工具的功能。第1 2章诊断工具和实用程序145
12.4 ping尽管p i n g实用程序实际上不是一种D N S工具而是一种T C P/I P工具,其作用是判断一台主机是否能连接到网络上。这个工具在一定程度上也有回答网络请求的功能。p i n g实用程序实际使用I n t e r n e t控制报文协议(简称I C M P )向远端主机发送应答请求信息,然后等待回答。如果在超时(其值可由用户设置)到达前收到了回答,则向用户显示从发送请求到收到回答的时间。对于随Windows 95、Windows 98、Windows NT、Windows 2000一起提供的p i n g实用程序,其缺省的设置是向远端主机发送4次连接请求。该命令提供了有关应答响应的简单统计信息,如下所示。注意当目的地是以主机名的形式给出的, p i n g命令的输出会提供相应的I P。反向查询可以用-a选项很方便地完成。p i n g也有许多命令行选项可以和命令一起使用,使用p i n g的一般语法如下:以上选项的意义如下:-t 设置p i n g连续工作直到被中断。-a 用来将地址解析为主机名。-f 告诉p i n g不要将报文分段(如果用- l设置了一个分段的值,则信息就不发送,并显示关于DF [Don’t Fragment] 标志的信息)。-n 指定p i n g发送请求的次数。c o u n t代表次数。-l 指定应答请求的长度。-i 指定有效时间( T T L ) (可取的值为1到2 5 5 )。-v 使用户可以改变I P数据报中服务的类型( TO S : Type of Service)。-r 记录请求和回答的路由。最小1个主机,最多9个主机可以被记录。由c o u n t的值决定。-s 提供转接次数的时间信息,次数由c o u n t的值决定。-j 以最多9个主机名指定非严格的源路由主机(非严格源路由主机是指在主机间可以有中间的路由器)。注意-j 和- k选项是互斥的。-k 以最多9个主机名指定严格的源路由主机(严格源路由主机是指在主机间不可以有中间的路由器)。-w 使用户可以指定回答的超时值,以毫秒为单位。d e s t i n a t i o n指定ping 的目标,可以是主机名或I P地址。12.5 pathping实用程序p i n g是一个有较长使用历史的T C P / I P工具,而p a t h p i n g是Windows 2000的资源工具箱中新提供的类似于p i n g的实用程序。该工具能给出传输所经过的路径和关于线路质量的更完整的信息。与t r a c e r t相比,该工具能更快地输出路径,但与p i n g相比,它因为收集统计信146第三部分Wi n d o w s中对D N S服务的支持
息而需要更多的执行时间。该命令语法如下:所提供选项如下:- n 不将I P地址解析成主机名- h m a x i m u m - h o p s 搜索目的地所经过路径的最大转接数- g h o s t - l i s t 沿主机列表的非严格源路由- p p e r i o d 两次p i n g之间等待的毫秒值- q n u m - q u e r i e s 每段的查询数- w t i m e o u t 等待回答的超时毫秒值- T 使用第二层的优先权标志位测试各段的连通性- R 测试各段是否是R S V P的使用前面的例子,命令为p a t h p i n g,目的参数为w w w. e x a m p l e . n e t,通过它的执行以了解所要的信息:12.6 tracert( 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 t实用程序(在U N I X平台下一般称为t r a c e r o u t e )确定分组为到达目的地所第1 2章诊断工具和实用程序147
必须经过的有关路径。一系列I C M P分组(注意,大多数U N I X系统的t r a c e r o u t e实际发送U D P分组)在发送到目的地时,前3个分组的t t l值设置为1,并对以后每3个分组为一组都使t t l增加1。因为路由器要将t t l值减l,则第一个分组只能到达第一个路由器。路由器就发送I C M P应答到源主机,通知t t l已超时。这就使得t r a c e r t命令可以在日志中记录第一个路由器的I P地址。然后t t l值为2的第二组分组沿路由到达第二个路由器, t t l也超时。另一个I C M P应答发送到源主机。这个t t l值增加的过程一直继续下去,直到得到目的地的回答,或者是直到t t l达到了最大值2 5 5为止。使用t r a c e r t的命令行语法如下:此格式中各选项的意义如下:-d 指定t r a c e r t不要将I P地址解析为主机名。-h 指定最大转接次数(实际上指定了最大的t t l值)。-j 允许用户指定非严格源路由主机(和p i n g相同,最大值为9 )。-w 指定超时值,以毫秒为单位。d e s t i n a t i o n即目标,可以是主机名或I P地址。再次选择目的地为w w w. e x a m p l e . n e t,可能会发现t r a c e r t并不比p a t h p i n g提供更多的信息,但是它整体上执行得快一些,尽管初始输出要慢一些。它的代价是降低了单次时间度量的精确度。12.7 NetlabN e t l a b (当前的版本是1 . 4 )是一个自由软件实用程序,由Alexander Danileiko开发。可从许多镜像节点该工具。找到一个好的节点的最简单的方法是搜索h t t p:/ / w w w. s h a r e w a r e . c o m或s o f t s e e k . c o m。虽然N e t l a b对Windows 2000只有少量的升级,并且N e t l a b没有提供许多配置选项供用户选择,但它在一个图形用户界面中组织了一组很好的工具,如图12-1所示。N a t l a b提供的基本工具集包括: f i n g e r、w h o i s、Ti m e、Q u o t e、p i n g、t r a c e o u t、D N S、和Port Scan。N a t l a b并不占用大量的磁盘空间,存储器的使用也是相当有效。这个工具可以穿过防火墙工作,并提供关于Wi n s o c k的基本信息。从D N S查询的角度来说,这个工具的不足是不能设置查询的类型。N a t l a b可以进行A记录查询和P T R记录查询,但不能选择N X记录以及其他记录。在N e t l a b的特征中,有安全意识的管理员将会对扫描器的能力感兴趣,图1 2 - 2显示了对某指定I P的端口的扫描过程。148第三部分Wi n d o w s中对D N S服务的支持
图12-1 选择了D N S时N e t l a b的界面图12-2 显示Netlab 1.4 扫描受限制端口的过程12.8 HostH o s t是一个自由软件实用程序,可以匿名登录到f t p . n i k h e f . n l上,在它的/ p u b / n e t w o r k目录该工具。该工具使你能很方便地执行一些D N S查询,否则你需要一系列的n s l o o k u p命令,这使它成为本章列出的两个自由软件程序之一。当前的发行版本中包含源代码,其中第1 2章诊断工具和实用程序149
Wi n d o w s版本需要在BIND 4.9.X文件存在时编译。早期更有限的版本只提供Wi n d o w s版本的二进制可执行程序。H o s t已被移植到大多数U N I X系统上,它的最新版本支持几乎所有的D N S新特性和资源记录,包括S RV、D N S加密密钥、数字签名、不存在资源记录。使用H o s t可以获得检查域区授权,获得按类型列出的记录等许多功能。Internet 上有关于H o s t的最新版本的新特性的介绍页面,可以访问w w w. n i k h e f . n l /u s e r / e 0 7 / t o o l s / h o s t . h t m l获得它(荷兰原子能和高能物理国家研究院发布了该主页,他们是H o s t的作者)。但是在它以二进制执行文件的形式提供之前许多管理员无法得到更新的版本,所以这里提供早期版本的命令语法以使你对该版本的功能有所了解。扩展的应用:[ x [ n a m e.]][-X server[name.] ]12.9 ipconfigi p c o n f i g实用程序是Windows NT的命令行诊断工具,用来显示计算机的I P栈的设置。该工具针对Windows 2000在一些重要的方面加强了功能,在介绍完两个平台上的共同功能后将指出加强的功能。以前在Windows NT 中该命令显示计算机的I P栈是如何配置的,并且使D H C P客户端释放或更新其I P地址。Windows NT中ipconfig 工具的语法如下:如果使用i p c o n f i g时不带任何参数,则将给出基本的网络配置,如以下的例子所示:如果启用了D H C P,则i p c o n f i g可以和选项/ r e l e a s e一起使用以释放租借的I P地址。类似地,使用选项/ r e n e w则可通过租借过程直接从D H C P服务器重新配置I P栈。选项/ r e l e a s e及/r e n e w还可以和一个可选的适配器名一起使用,以便对这个指定的适配器修改设置。这对于多重地址计算机是很重要的。对Windows 2000而言,基本的输出是相同的,两个版本中都提供每个已配置的接口的输出列表。但在Windows 2000中该工具功能有所加强,允许管理客户解析器的缓存和D H C P客户的种类。Windows 2000中增加的选项如下:150第三部分Wi n d o w s中对D N S服务的支持
顾名思义, / f l u s h d n s是用来清除客户端的D N S解析器的缓存的。使用选项r e g i s t e r d n s,在客户端刷新了它的D H C P租借期后将使用D N S动态更新重新注册。选项/ d i s p l a y d n s用于查看客户端的D N S解析器的缓存。选项/ s h o w c l a s s i d用于列出适配器上允许的所有的类I D (标识符),注意必须指定适配器。选项/ s e t c l a s s i d用于设置类I D。当没有给出类I D时,适配器上原有的类I D被移走。注意必须指定适配器。文档中关于最后两个选项的描述有点模糊。在该书出版的时候,代码已经固定了,但对此做了清楚解释的R F C文件仍在修订中,该文件定义了D H C P选项8 1。另外,Windows 2000允许适配器的名字采用模式匹配,用星号代表任意个字符,问号代表一个字符。当使用/ a l l选项时, i p c o n f i g会输出比基本配置更多的信息,如I P主机域名、D N S服务器和W I N S服务器、N e t B I O S的节点类型、N e t B I O S的作用域标识符等。如果安装了不只一个适配器,该工具也显示各个网络适配器的有关信息。下面是使用带/ a l l选项的i p c o n f i g工具的典型输出:12.10 winipcfgwinipcfg 实用程序是Windows 95和Wi n d o w s 9 8的一种使用图形界面的诊断工具。它和i p c o n f i g类似,可显示计算机的I P栈是如何配置的。w i n i p c f g可以从命令窗口启动,也可从R U N(运行)菜单中启动。当然,也可为w i n i p c f g . e x e程序创建一个快捷方式。在命令行中使用w i n i p c f g的语法如下:第1 2章诊断工具和实用程序151
图1 2 - 3为键入winipcfg 后出现的诊断显示窗口,点击O K关闭此工具,单击R e l e a s e放弃当前适配器的配置信息,单击R e n e w则重新设置当前适配器的配置信息。“More Info(更多信息)”按钮可扩展诊断显示窗口以显示更多的信息,如图1 2 - 4所示。如果键入w i n i p c f g/a l l则立即显示这个扩展诊断显示窗。图12-3 winipcfg 的主界面图12-4 winipcfg/all 的扩展主界面1 2 . 11 netdiagn e t d i a g是一个新的Windows 2000专有的十分有用的工具。实际上,可以认为它不只是一个工具,因为它封装了Windows 2000中几乎所有与网络相关的测试。学习n e t d i a g最容易的方法是看帮助文档,因为帮助文档中很好地说明了该工具的功能和使用方法。152第三部分Wi n d o w s中对D N S服务的支持
第1 2章诊断工具和实用程序153
12.12 netshn e t s h工具在Windows 2000文档中称作N e tSh e l l。N e tSh e l l提供了一个界面,或命令模式,具可配置的环境。N e t S h e l l的功能和用途部分来源于它基于上下文的设计,新的上下文可由定制的D L L S提供,部分来源于提供的上下文,部分来源于脚本的使用。n e t s h实用程序可工作于在线、离线、脚本三种模式下。要使用脚本模式,可用- f选项指定一个脚本文件,或者在n e t s h提示符下使用e x e c命令执行脚本。n e t s h工具的语法如下:在N e tSh e l l界面中,所有的命令都可被省略到保持独一无二的程度。在线和离线两种模式是控制输入命令的执行和排队的。在离线模式下输入的命令可以用Co m m i t命令执行。在n e t s h离线模式下可以创建脚本并用D u m p命令输出。N e t s h除本章介绍的功能外还有许多其他的功能。有兴趣的读者可以访问Windows 2000的在线帮助文档,查询n e t s h将提供一个长的列表,其中包括它在路由和远程访问服务方面的功能的更多信息,这些信息下面的部分并没涉及到。下面的列表显示了启动n e t s h命令和列出主要命令的操作,其中包含内建的上下文。可使用命令如下:154第三部分Wi n d o w s中对D N S服务的支持
注意上面列出的内建的上下文: r o u t i n g、i n t e r f a c e、r a s、d h c p、w i n s和a a a a。为了使你对n e t s h的使用和丰富功能集有所了解,下面的例子先切换到i n t e r f a c e上下文,接着是d h c p上下文,然后又到w i n s上下文,在各种上下文里都查看了关于全部子命令的帮助。首先看一下n e t s h的i n t e r f a c e上下文:第1 2章诊断工具和实用程序155
你应该已经确信这是一个值得学习和使用的工具。下面看一下netsh dhcp 上下文,考虑对服务器的支持。第三部分Wi n d o w s中对D N S服务的支持
第1 2章诊断工具和实用程序
为了简单,下面只列出W I N S服务器的上下文命令。第三部分Wi n d o w s中对D N S服务的支持
12.13 netstatn e t s t a t工具显示T C P / I P协议统计数据和当前的连接状态。注意两者的差别: n e t s t a t是关于第1 2章诊断工具和实用程序
T C P / I P连接的工具,而n b t s t a t是关于N e t B I O S连接的工具。N e t s t a t实用程序的语法如下:12.14 nbtstatn b t s t a t工具检查T C P/I P上的N e t B I O S连接,并返回N e t B I O S会话及名字解析统计数据。此外此工具也能用来更新本地N e t B I O S名字缓存。该工具从N T以来基本未变,需要指出的是自从Service Pack 4以后增加了- R R开关,因为该开关提供了重启后在W I N S上重新注册的选择,所以很受欢迎。n b t s t a t实用程序的语法如下:第三部分Wi n d o w s中对D N S服务的支持
12.15 系统监视器系统监视器可以由运行p e r f m o n . m s c启动,可以在命令行方式下启动,还可以在开始菜单的管理工具部分选择性能项启动。使用过Windows NT的人会对系统监视器比较熟悉,它的前身是性能监视器,当D N S对象已在增加计数器窗口中选中后(使用带加号的按钮),显然,这是一个新的实现方法。D N S服务器对象有五十多个计数器,提供了对可能感兴趣的D N S服务器大多数方面的监测。在增加计数器窗口,应注意一下本书中讨论的其他服务的对象,如D H C P、W I N S。任何Wi n d o w s管理员都必须对性能监视器的使用、日志及报警能力十分熟悉,然后去实践。为了理解机器的操作绝不能忽略该工具的作用。计数器对下面所提及的甚至更多的方面提供了统计数据:12.16 netmon谈到Windows 2000或N T中与网络相关的工具时,如果不包括网络监视器一定是不公平的。该工具允许捕获和检查通信报文。尽管对常规使用来说该工具有点太低级,但它对于错误诊断和理解正在发生的及应该正在发生的过程是十分有价值的。它是Wi n d o w s服务器版本安装时的一个可选组件,所以你可能需要用到控制面板中的添加/删除程序部件。进入添加/删除程序窗口以后,选择添加/删除Wi n d o w s组件,这会进入Wi n d w o s组件向导。你可在网络监测工具栏目下的管理和监视工具细节中找到该工具。就像在NT 4.0中一样,这是一个限制不能将N I C置为混合模式的版本。你需要系统管理服务器版本或者是第三方的工具才能捕获安装了该工具的服务器所接收和发出的报文。12.17 小结Windows 2000有一个大的网络子结构,对D N S服务的正常工作有很大的依赖。发现所提供工具的功能增强了或数目增加了并不奇怪。本章回顾了微软及一些第三方所提供的主要工具,讨论的目的是帮助你学会有效地使用这些工具。
全文完