对于像Windows 95/98/NT/Me这样的早期系统,则通常不是采用DNS进行名称解析,而是通过另一种服务进行的,那就是WINS服务。WINS是一个可选的软件组件,出现在组件列表的网络服务下面。如果在服务器上安装WINS,则需要为该服务器指定一个静态IP地址。此外还需要配置WINS客户端,以便使它们识别这个IP地址。
本节要介绍的就是这种微软早期系统版本所采用的WINS服务名称解析原理。
WINS服务的作用
Windows Internet命名服务(WINS)为注册和查询网络上计算机和用户组NetBIOS名称的动态映射提供分布式数据库。WINS将NetBIOS名称映射为IP地址,并设计以解决路由环境的NetBIOS名称解析中所出现的问题。WINS对于使用TCP/IP上的NetBIOS路由网络中的NetBIOS名称解析是最佳选择。
早期版本的Windows操作系统使用NetBIOS名称以标识和定位计算机以及其他共享或群集资源,要在网络上使用这些资源需要注册或名称解析。在早期版本的Windows操作系统中(Windows 2000以前的系统),NetBIOS名称对于创建网络服务是必需的。尽管可以对非TCP/IP的网络协议使用NetBIOS命名协议(例如NetBEUI或IPX/SPX),但是仍然专门设计了WINS以支持TCP/IP上的NetBIOS(NetBT)。
WINS在基于TCP/IP网络中简化管理NetBIOS名称空间。图1显示了包含WINS客户端和服务器的一组典型的事件。
图1
在该示例中,将发生以下事件:
WINS客户HOST-A使用WINS-A向已配置的WINS服务器注册本地NetBIOS名称。
另一个WINS客户HOST-B向WINS服务器发出查询WINS-A客户机IP地址的请求。
WINS服务器把WINS-A的IP地址192.168.1.20应答HOST-B客户机。
WINS减少使用NetBIOS名称解析的本地IP广播,并允许用户很容易地定位远程网络上的系统。因为WINS注册在每次客户启动并加入网络时自动执行,所以WINS数据库在进行更改动态地址配置时会自动更新。例如,当DHCP服务器将新的或已更改的IP地址发布到启用WINS的客户计算机时,将更新客户的WINS信息。这不需要用户或网络管理员进行手动更改。
WINS名称解析原理
WINS用于解析NetBIOS名称,但是为了使名称解析生效,客户机必须可以动态添加、删除或更新WINS中的名称。下面是这些过程的功能性描述,说明了在基于WINS网络上,客户如何注册、更新、释放和解析名称。WINS客户/服务器通讯的过程如图2所示:
图2
在WINS服务系统中,所有的名称都通过WINS服务器注册。名称存储在WINS服务器上的数据库中,WINS服务器响应基于该数据库项的名称―IP地址解析请求。在大型网络中,通常是通过在网络中使用多个WINS服务器来维护冗余和负载平衡。为了维护NetBIOS名称空间的一致性,多个WINS服务器之间周期性地相互复制数据库项。
何时使用 WINS服务
对于由运行Windows 2000 Server及以上版本的NT核心系统的服务器和运行Windows 2000 Professional的所有其他计算机组成的网络,NetBIOS对基于TCP/IP的网络已不再需要。当决定是否需要使用WINS时,应首先考虑以下问题:
(1)在需要使用NetBIOS名称的网络上是否有旧式计算机
运行在以前版本的Microsoft操作系统下的所有网络计算机,例如MS-DOS的各种版本、Windows 95/98或Windows NT,都需要NetBIOS名称支持。Windows 2000是第一个不再需要NetBIOS命名支持的操作系统,但在网络上仍然可以需要NetBIOS名称以对使用的许多旧式应用程序提供基本文件和打印服务以及支持。
(2)是否配置网络上的所有计算机以支持使用其他类型网络命名,例如DNS。
网络命名仍然是在整个网络中定位计算机和资源的重要服务,甚至当不需要NetBIOS时也是如此。在决定消除WINS或NetBIOS名称支持之前,请确定网络上的所有计算机和程序可以使用其他命名服务正常工作,例如DNS。
通常,Windows操作系统支持两种主要的网络名称解析方法。它们是:
主机名称解析。这是Windows基于套接字的名称解析方式,它执行了gethostbyname()API函数以搜索主机IP地址,该地址是建立在已查询的主机名称基础上的。该方法依赖于Hosts文件或查询DNS以执行名称解析功能。
NetBIOS名称解析。该名称解析使用NetBIOS重定向器来搜索基于查询的NetBIOS名称的地址。该方法依赖于Lmhosts文件或查询WINS执行名称解析。
在默认情况下,运行Windows 2000的WINS客户被配置为先使用DNS解析长度超过15个字符或包含小数点(.)的名称。对于少于15个字符并且不包含小数点的名称,如果将客户配置为使用DNS服务器,则也可以在WINS查询失败之后再次将DNS用作最终选项。
如果运行的是纯Windows 2000或以上版本NT核心系统环境,请检查当前配置了DNS并可以由网络上的所有客户计算机用来解析名称。如果运行计算机的混合环境,即计算机正在Windows 2000和其他操作系统平台下(如UNIX)运行,请确认其他主机只使用DNS解析主机名称。
(3)网络是单个子网还是有多个子网路由的网络
如果整个网络由单个小型局域网(LAN)组成,且客户机少于50个,那么可以不使用WINS服务器。将在Windows 2000系统下运行的所有计算机和早期基于Microsoft的WINS客户都配置为混合式节点类型客户,并使用以下方法之一处理NetBIOS请求以解析或注册名称:
如果配置了WINS服务器,请与之直接(点对点)联系。请求到本地子网的NetBIOS广播。
对于小型网络,后面的选项通常是将NetBIOS名称服务提供到少数基于LAN客户的有效而简单的解决方案。注意:建议提供对DNS查询的充分使用,可像这部分所描述的和Windows 2000的NetBIOS名称解析过程中使用的那样,对早期Windows客户,例如Windows 95或Windows NT 4.0客户(该客户支持该选项作为可配置的TCP/IP属性设置),选择“启用DNS进行WINS解析”。