14.4.3NetBIOS作用域
为了在NetBIOS名字空间中分段,提出NetBIOS作用域(NetBIOSScope)。NeBIOS作用域使得采用同样NeBIOS作用域标识符的NeBIOS主机之间可以进行互操作。在发送包含NetBIOS名的分组之前,先在NetBIOS名上添加NetBIOS作用域标识符,执行名字查询、名字注册和会话请求的分组都需要这种操作。在接收端,分组中的NetBIOS作用域标识符必须和本地设置的NetBIOS作用域标识符匹配,否则,这个分组就不予处理。因此,只有作用域标识符相同的计算机才可以在NetBIOS环境下互相通信。另外要注意,作用域标识符是区分大、小写的,作用域标识符设置为scope的计算机是不能和作用域标识符设置为SCOPE的计算机在TCP/IP的NetBIOS环境下通信的。
windows 95情况有些特殊,有时需要一些手动操作。在windows 95中通过控制面板中的“Network”窗口所进行的设置中,应先在TCP/IP属性窗口中启用WINS名字解析,然后才能设置NetBIOS作用域标识符。为此,必须输入至少一个WINS的IP地址,即使在网上没有WINS。如果是通过配置脚本安装windows 95,并在配置脚本中定义NetBIOS作用域标识符,则也必须指定win=1,以及一个WINS服务器的IP地址。注意因为NetBIOS作用域标识符的作用是用来对网络的通信进行分段,在设置NetBIOS作用域标识符时必须非常小心。如果作用域标识符设置错误,则用户可能无法和其他的计算机连接。如果还没有启用WINS,则只能通过编辑注册表来修改NetBIOS作用域标识符,操作如下:
1)运行注册表编辑器。
2)从HKEY_LOCAL_MACHINE子键中找到以下键:System\CurrentControlSet\Services\VXD\MSTCP
3)要增加新的作用域标识符应单击“EDIT”,再单击“New”,选择”StringValue”,输入“ScopeID”,按回车键。再双击刚输入的宇符串值,弹出一个编辑字符串的窗口,在“Valuedata”框中输入作用域标识符的值。
14.5理解客户端对windows 解析器的使用
windows 解析器是一个使人误解的名字。windows 计算机有许多名字解析选项,以至于有时很难预期每种选项的功能。本章到目前讲述了在TCP/IP的属性窗口中如何配置解析器,设置的方法不同会导致解析器行为有很大的差别。有时计算机就是不能找到在网络中的另一台计算机,即使这台计算机已列在“网上邻居”窗口了。如果了解了解析器是如何工作的,则对它工作的正常或者不正常的原因就会比较清楚。本章的目的就是帮助读者理解windows 解析器。这里只讲这么多,参见第17章可获得更多NetBIOS特定的浏览信息。
注册表编辑器警告不正确地使用注册表编辑器可能会造成严重的系统问题,也许必须重装windows 95或98才能纠正错误。
14.5.1介绍windows 解析器
解析器是客户机使用的一组例程,通过它使用已有的名字服务。windows 解析器是由TCPIP.SYS及其辅助者NETBT.SYS所支持的。但这并不意味着它们只能做这些工作。前者解析IP主机名,后者解析NetBIOS名。本节中解析意味着获得名字到IP地址映射的过程。
UNIX解析器处理的几乎全部是IP主机名。与此相反,windows 解析器必须支持两种名子类型:NeBIOS计算机名和IP主机名。此外,windows 解析器必须决定在可以使用的选项中选择哪一个来解析名字,还必须知道如果第一种方法失败应该怎么办,第二种方法失败又怎么办,如此等等。一个向WINS或者DNS名字服务器查询地址的windows s解析器将一直工作着直至得到回答,其中也可能要查询其他服务器或使用其他的方法。通常,解析器将使用所有它们可用的选项直到成功或用尽了所有的方法。
任何程序只要它需要就可以使用windows 操作系统内置的通用解析器,甚至这些程序可以没有名字解析能力。大多数需要名字服务的应用程序通过提供待解析的计算机名来使用通用解析器。windows 名字解析器将查询提交给名字服务器的请求并处理返回的各种可能的结果。当名字得到解析,应用程序通常就可以继续完成其余的工作。如果解析器不能成功地解析名字,它将返回相关的失效信息给要求服务的本地应用程序。大多数windows 应用程序都会妥善地处理这些信息,它们一般会将失效信息转告给用户,而不是使程序中断或崩溃。
解析器行为的差别因为windows 95/98,windows NT,windows 2000 中的解析器的行为差别太大所以不准备详细介绍它们的差别。已经说过,主要的不同即TCP/IP属性窗口中的设置特性将被涉及,因为这些设置影响名字查找尝试不同方法的顺序。调用的顺序以及决定使用或忽略哪一个的方法是由配置和系统版本决定的,导致了许多不同的情况。这里的一般规则应用于理解特定的配置。
14.5.2windows 解析的方法
第17章讨论了解析器可用的六种方法,具体如下:
本地名字缓存。
NetBIOS广播。
WINS服务器。
LMHOSTS文件。
DNS服务器。
HOSTS文件。
广播、WINS和LMHOSTS文件都是用于解析NetBIOS名字的,大多数时候由NetBT控制(说大多数是因为有DNS/WINS集成选项)。列表中的最后两个DNS和HOSTS文件是用于解析DNS名字的。简单的说,该讨论有时是指两种名字类型,或解析器可采取的两条路径或将它们分为NetBIOS方法和DNS方法。如果客户端有启用DNS用作WINS的选项并且该选项被设为允许,那么NetBIOS方法包括对两种DNS方法的使用。
14.5.3windows 解析器的行为
令欣慰的是在所有的解析方法中,名字缓存总是最先被检查。这好比一个人首先回忆一个词的定义而不是先查字典。当然存在两种本地缓存:一个是用作NetBIOS,一个是用作DNS名字。要查看本地NetBIOS缓存,应在命令窗口中输入nbstat-n。查看本地DNS名字缓存则应使用ipconfig/displaydns。但目前/displaydns参数只在windows 2000 的新版本的ipconfig中提供,在NT中不提供。
要记住的不同版本的第一个不同是只要NetBT被启用,windows 2000 总是尝试使用两条路径解析。并且使用先回答的作为答案。而以前的任何系统都不这么做。它们总是尝试猜测所给的名字是哪一种。windows 2000 的这种行为的一个后果就是如果使用了NetBIOS名字并且启用了DNS/WINS集成,那么经常查询的NetBIOS名字会迅速和低代价地从DNS服务器的缓存中得到回答。所以这些微软的文档推荐在使用NetBIOS名字的时候同时使用DNS/WINS集成并不奇怪。
windows 2000 与其他操作系统相比的另一个不同是windows 2000 总是配置了DNS(而它只在网络环境下起作用)。DNS在其他系统中都是可选的。所以低级系统中的解析器必须考虑DNS方法是否可用。
回溯查看本章第一部分讲述TCP/IP属性配置的地方,可以发现在windows 2000 中处理后缀列表的方法有所不同。两个明显的不同之处是windows 2000 有更多的控制,并且有主后缀和连接相关的DNS后缀两种方式。该种双重DNS标识和适配器专有的配置在低级系统中是不提供的。
因为windows 2000 同时使用两种解析方法,下面的讨论都要采取一种保留的态度。本章没有不断地重复说“对于低级系统”或“除了windows 2000 以外”,而只是描述了所有其他的系统是如何工作的。必须记住的是在windows 2000 系统中只要NetBT未被禁止,这两种方法是并行使用的。应该警告你这是一个复杂的话题。
当一个名字明显是一个DNS名字,例如因为该名字是全域名或太长而不可能是NetBIOS名字,那么就只使用DNS方法。否则,这个名字是模糊的,可能是两种名字中的任一个,应使用两种方法。使用NetBIOS的解析只查询所提供的名字。而使用DNS的解析可能会一次一个重复地使用DNS后缀中列表中的元素以形成全域名。当一个名字是模糊的,首先尝试NetBIOS名字解析,失败后如果启用了DNS解析的话就尝试DNS解析。什么是一个模糊的名字很难精确定义,因版本而不同,比如windows NT允许NetBIOS名字中有点‘.’。
如果客户端允许WINS中使用DNS这个选项,那么NetBIOS名字也会用DNS方法查询,这意味着NetBIOS名字也使用后缀列表。在NT4.0中如果设置了WINS中使用DNS,那么将首先用DNS解析方法来解析一个NetBIOS名字。在windows 95中类似的顺序需要编辑注册表。实际上该选项包含在windows 2000 中,但是不在TCP/IP属性窗口的表层。完全的配置DNS/WINS集成(第16章将讲到)对保证这种NetBIOS解析的方法的成功是十分重要的。如果使用该选项,确定客户端上配置了适于DNS/WINS集成的DNS后缀列表。即使没有使用DNS/WINS集成,当使用静态地址的时候,在两个名字空间中使用相同的名字和该名字正确的DNS注册也会使该选项有用。
NetBIOS解析方法被尝试的顺序取决于客户端的NetBIOS节点类型,第17章将详细介绍NetBIOS的节点类型。除了非常小的环境以外通常应防止NetBIOS广播。当一个客户端被配置为使用WINS,并且被配置成为h(hybrid)节点,意味着它只有在同所配置的服务器的所有直接通讯都失败后才使用广播作为最后的方法。可以在windows NT和windows 2000 中使用ipconfig/all命令,在windows 95和98中使用相对应的Winipcfg命令检查客户端的节点类型,(参见第12章)。windows NT4.0中具体的执行见图14-10,windows 95中具体的执行见图14-11。windows 2000 中提供了更多的ipconfig选项,但是与ipconfig/all的输出很类似。大多数情况下会出现hybrid或广播(broadcast)类型的节点。
当一个名字是模糊的,当作NetBIOS名字解析又失败的时候,将会把它当作DNS名字尝试,但仅当客户端的配置允许使用DNS并且到目前为止还没有使用过DNS方法。这种情况主要是在旧的被配置为使用DNS的客户端上发生。
最后一个有帮助但已逐渐不用的方法是使用LMHOST文件预载NetBIOS解析器的缓存。附录中将提到该方法。WINS一般不作废这些文件,但许多管理员仍使用它们,以保证在最糟的WINS失败的情况下有一条后路,尤其是在那些作为配置核心的服务器。当强制一个客户端使用
【责编:admin】
--------------------next---------------------