Windows Server 2003 WINS (Windows Internet名称服务)

clip_p_w_picpath002

     下面我们开始介绍WINS,这个我平时基本上都没怎么去配置,在此只作为大家了解。本次实验也是利用前面DHCP专题的实验环境,前面已经重点介绍了DHCP、DNS这两个基本而重要的服务。下面的理论大家了解下,是我整理的笔记了:

NetBIOS名称概述

     网络中的一台计算机可以使用NetBIOS和DNS两种命名方式为其命名。NetBIOS(Network Basic Input Output System,网络基本输入/输出系统)最早是由Sytek Inc.(现在的Hughes LAN System)在1983年为IBM开发的。后来,微软和其他厂商对使用NetBIOS接口设计的网络系统组件和程序进行了标准化。在NetBIOS标准中,使用长度不超过16个字符的名称来惟一标识每个网络资源。名称中的前15个字符可以由用户指定,第16个字符是一个00到FF的十六进制数,用于标识资源或服务类型,例如[00h]——工作站服务(Workstation Service)、[03h]——消息服务(Message Service)和[20h]——服务器服务(Server Service)。

     在实际工作中,通过Windows操作系统中的“网上邻居”看到的计算机名、工作组名或域名就是NetBIOS名称。

     NetBIOS的工作过程

     在网络中使用NetBIOS名称时,基本工作过程包括NetBIOS名称的注册、释放和查询。

     NetBIOS名称的注册是在计算机启动、服务开始或用户登录时动态进行的。当计算机正常关闭、服务正常停止或用户正常退出时,将会进行NetBIOS名称的释放。如果一个计算机试图通过NetBIOS名称访问另一台计算机时,需要进行NetBIOS名称查询,以便能够正常通信。NetBIOS名称的注册及释放实质上都是为名称查询服务的。

     在Windows Server 2003中,可以基于NetBEUI和TCP/IP两种协议来实现NetBIOS名称的注册、释放和查询。

     1、基于NetBEUI协议支持NetBIOS

     NetBEUI(NetBIOS Enhanced User Interface,NetBIOS扩展用户接口)协议是IBM于1985年提出并开发的非路由协议。该协议缺乏路由和网络层寻址功能,所有的通信只能通过 广播消息的方式来完成,因此只能应用于小型工作组或局域网。由于NetBEUI信息中只有数据链路层MAC(Media Access Control,介质访问控制)地址,不需要附加的网络地址和网络层头尾,因此非常快速高效。

     如果在网络中只使用NetBIOS名称进行通信,则只需部署NetBEUI协议即可,而无需部署TCP/IP协议。但使用NetBIOS名称互相通信的计算机上必须都安装NetBEUI协议。如果一台计算机安装了NetBEUI协议但未安装TCP/IP协议,而另一台计算机未安装NetBEUI协议但安装了TCP/IP协议来支持NetBIOS,则这两台计算机将无法使用NetBIOS进行通信。

     NetBEUI协议在早期的Windows操作系统中使用非常普遍,但因其不支持路由且所有通信均通过广播,只能应用于范围很小的网络中,无法满足当前网络飞速扩张的需要。因此,在目前的网络中,已经基本不再使用NetBEUI协议来支持NetBIOS,在Windows Server 2003中,默认也不再提供NetBEUI协议,取而代之的是TCP/IP协议。

     2、基于TCP/IP协议支持NetBIOS

     基于TCP/IP协议支持NetBIOS是通过“TCP/IP上的NetBIOS”(即NetBT)组件来实现的。该组件在Windows Server 2003中默认被启用。

NetBIOS名称解析

     在使用“TCP/IP上的NetBIOS”支持NetBIOS时,需要将NetBIOS解析成IP地址,然后通过IP地址进行通信。在Windows Server 2003中,NetBIOS的名称解析可以通过多种方法来完成。下面介绍的NetBIOS名称解析方法中,前3者是标准的NetBIOS名称解析方法,后两者是微软专有的NetBIOS名称解析方法。

     1、通过NetBIOS名称缓存解析NetBIOS名称

     NetBIOS名称缓存保存了本地主机最近查询的NetBIOS名称。使用nbtstat命令(只能运行于Windows平台)查看NetBIOS名称的信息。NetBIOS名称缓存是首要的解析方式,在采用任何其他解析方式之前都会先尝试通过NetBIOS名称缓存来解析NetBIOS名称。通过其他解析方式解析出来的NetBIOS名称也会缓存在NetBIOS名称缓存中,以便日后通信时所用。

     2、通过发送广播消息解析NetBIOS名称

     当主机需要解析NetBIOS名称时,可以向网络中发送广播消息,消息中包含要解析的NetBIOS名称。网络中的所有主机都将收到该广播消息,并检查自身注册的NetBIOS名称是否与广播消息的NetBIOS名称匹配。如果匹配,将发出NetBIOS名称解析响应信息。使用这种方式解析NetBIOS名称时,会面临两个主要问题:

     ◆广播将干扰网络上的每个节点;

     ◆路由器通常不转发广播,所以只能解析本地网络上的NetBIOS名称。

     3、通过NetBIOS名称服务器解析NetBIOS名称

     在实际应用中,可以部署专门的NetBIOS名称服务器(NetBIOS Name Server,NBNS)来解析NetBIOS名称。采用NetBIOS名称服务器,可以在跨子网的网络环境中实现对NetBIOS名称的支持,并且能有效地提供网络性能。Windows Server 2003通过WINS实现NetBIOS名称服务器,提供对NetBIOS名称的支持。

     4、通过LMHOSTS文件解析NetBIOS名称

     通过LMHOSTS文件也可以解析NetBIOS名称。LMHOSTS文件是一个静态的纯文本文件,用于保存NetBIOS名称与IP地址的对应信息。每条对应信息称为一个条目,这些条目必须手工输入。在解析时,自上而下依次对比每个条目。LMHOSTS必须存放在需要解析NetBIOS名称的主机上。默认情况下,每台Windows Server 2003主机中都有LMHOSTS文件,存储在%systemroot%\system32\drivers\etc\目录下,并且名为LMHOSTS.SAM,使用时需要将其重命名为LMHOSTS。

     5、通过HOSTS文件和DNS解析NetBIOS名称

     NetBIOS名称默认与主机名相同,在这种情况下,通过HOSTS文件和DNS也可以解析NetBIOS名称。

NetBIOS节点类型

     NetBIOS名称解析的确切机制取决于为NetBIOS节点配置的节点类型。RFC 1001中定义了NetBIOS的节点类型。

 

p_w_picpath

     在采用上述节点指定的解析方法之前,主机都会先尝试通过NetBIOS名称缓存来解析NetBIOS名称。

     运行Windows Server 2003的计算机默认为B-节点,配置为WINS客户端时自动变为H-节点。NetBIOS节点类型可以通过DHCP的046选项“WINS/NBT节点类型”来自动分配,该选项的值分别为0x1(B-节点)、0x2(P-节点)、0x4(M-节点)和0x8(H-节点),也可以通过更改相应的注册表键值来指定。通过ipconfig /all命令可以查看主机当前的NetBIOS节点类型。

WINS概述

     WINS(Windows Internet Name Service,Windows Internet名称服务)是一个增强的NetBIOS名称服务器,由微软设计开发,用于为本地子网或远程子网的主机注册NetBIOS名称并将其解析为IP地址。使用WINS有下列优点:

     ◆使用WINS时,NetBIOS名称解析请求将直接发送给WINS服务器。如果WINS服务器可以解析,它会直接将IP地址发送给请求的主机。因此,WINS不需要广播,从而可以消除基于广播解析NetBIOS名称所带来的额外的网络流量。如果不能通过WINS完成解析,仍然可以使用广播来解析NetBIOS名称。

     ◆WINS数据库(即NetBIOS名称与IP地址的对应关系列表)是自动更新的,不需要手工维护。

     ◆由于使用WINS时,NetBIOS名称的解析过程均通过单播来完成,有利于跨子网实现NetBIOS。

WINS的工作机制

     WINS采用客户端/服务器结构,在WINS工作过程中,WINS客户端与WINS服务器之间要经过名称注册、名称更新、名称释放以及名称查询和解析等过程。

     1、名称注册

     当WINS客户端初始化时,它会通过单播方式直接向所指定的主WINS服务器发出注册请求,要求将其NetBIOS名称和IP地址等信息注册登记到WINS服务器的数据库中。WINS客户端发出名称注册请求后,可能会发生下列3种情况。

     (1)接受注册。如果主WINS服务器工作正常,收到了客户端发来的名称注册请求,并且该客户端请求注册的名称未被其他客户端注册,则WINS服务器将接受注册,并向客户端返回一个成功注册的消息,其中将包含客户端注册的NetBIOS名称的使用期限,即TTL(Time to Live,生存时间)。

     (2)名称重复。如果主WINS服务器工作正常,但客户端请求注册的名称已被其他客户端注册于WINS数据库中,出现了名称重复的情况,则WINS服务器将向该名称的当前拥有者发送Challenge(质询信息)。Challenge将以名称询问的形式发送,并且连续发送3次,时间间隔为500us。

     如果WINS服务器收到了该名称的当前拥有者发来的响应消息,则WINS服务器将会向试图注册该名称的客户端发送拒绝注册的消息。如果该名称的当前拥有者没有响应WINS服务器的Challenge,则WINS服务器将会向试图注册该名称的客户端发送成功注册的消息。

     (3)WINS服务器无响应。如果WINS客户端在指定的时间内未收到主WINS服务器的任何响应,表明主WINS服务器不能访问,则WINS客户端将进行3次尝试来寻找主WINS服务器。如果3次尝试都失败且该WINS客户端配置了辅助WINS服务器,则会将名称注册请求发送到辅助WINS服务器。如果没有WINS服务器能够访问,WINS客户端可能会通过广播来注册其NetBIOS名称(将名称注册到主浏览服务器上)。

     2、名称更新

     WINS客户端注册的NetBIOS名称都有一个使用期限(TTL),该期限可以在WINS服务器上进行设置。为了继续使用注册的NetBIOS名称,WINS客户必须在到期之前向WINS服务器进行NetBIOS名称注册更新。WINS服务器收到名称更新请求后,将会向客户端回应带有新的TTL的名称更新响应消息。如果WINS客户端未对其注册的NetBIOS名称进行更新并且TTL到期,WINS服务器将允许其他WINS客户端注册该名称。

     WINS进行了名称更新时,将经历如下过程:

     ◆WINS客户端在TTL过了1/2时第一次尝试更新其名称注册。如果WINS客户端在指定的时间内未收到主WINS服务器发来的名称更新响应,它将重复地每隔10分钟试图更新一次,直到试图更新的总时间达到1小时。

     ◆此时,WINS客户端将停止尝试。如果配置了辅助WINS服务器,则WINS客户端将试图向辅助WINS服务器更新其名称注册,并且仍以10分钟的间隔连续尝试名称更新,直到试图更新的总时间达到1小时。

     ◆此时,WINS客户端将又停止尝试,并再次试图通过主WINS服务器更新名称注册。

     ◆整个名称更新过程中,WINS客户端总是先尝试通过主WINS服务器更新,再尝试通过辅助WINS服务器更新,直到TTL到期或WINS客户成功更新了其名字时才结束。

     ◆如果WINS客户端在TTL到期时仍未能成功更新,将释放该NetBIOS名称。

     3、名称释放

      当WINS客户端正常关机时,它将以单播方式向WINS服务器发送名称释放请求,将其注册的NetBIOS名称从WINS服务器的数据库中删除。当WINS服务器收到名称释放请求时,它将检查WINS数据库以寻找要释放的名称。如果发现匹配的NetBIOS名称和IP地址,则WINS服务器向客户端发送肯定名称释放响应消息,并将数据库中该名称置为“未激活”。

     如果WINS服务器遇到数据库错误,或者NetBIOS名称所对应的IP地址不匹配,则WINS服务器将向WINS客户端发送否定名称释放响应消息。

     4、名称查询和名称解析

     当WINS客户需要通过NetBIOS名称与其他主机进行通信时,需要查询与该主机NetBIOS名称对应的IP地址。查询方式由NetBIOS节点类型来决定。如果使用WINS客户端默认的节点类型(H-节点),则将首先检查NetBIOS名称缓存,然后直接以单播方式向主WINS服务器发送名称查询请求。如果主WINS服务器没有响应,客户端将重新发送两次。如果主WINS服务器仍没有响应,则WINS客户端将转向辅助WINS服务器。

     如果WINS服务器能够正常解析客户端请求的NetBIOS名称,将向请求的客户端发送名称查询响应消息,其中带有与请求的NetBIOS名称相对应的IP地址。

     如果WINS服务器不能解析名称,将向客户端发送请求名称不存在的查询响应消息,并实现广播解析该名称。

     如果在一台主机上指定了WINS服务器的IP地址,它就成了WINS客户端。可以通过手工方式来配置WINS客户端,也可以通过DHCP自动配置WINS客户端(要求WINS客户端是DHCP客户端)。

     这里再给大家介绍一下一个便于我们管理服务器的工具:MMC

     MMC是系统管理程序的一个框架程序,全称是Microsoft Management Console,它提供给扩展名为msc的管理程序一个运行的平台,比如组策略,系统清单,任务管理器等。

    1、以下只是让大家知道有这么个工具用就行了,我们在这个社会,对于初学者最基本的第一原则是:务实(先别吹太多);因此就让大家下截图:

clip_p_w_picpath004clip_p_w_picpath006clip_p_w_picpath008clip_p_w_picpath010clip_p_w_picpath012clip_p_w_picpath014clip_p_w_picpath016clip_p_w_picpath018clip_p_w_picpath020clip_p_w_picpath022clip_p_w_picpath024

     2、下面正式开始学习WINS:

     (1)大家第一次在服务器上安装好了WINS服务,可以自己看下相关服务都有些什么东西;

clip_p_w_picpath026clip_p_w_picpath028

     (2)配置WINS客户端:

     如果在一台主机上指定了WINS服务器的IP地址,它就成了WINS客户端。可以通过手工方式来配置WINS客户端,也可以通过DHCP自动配置WINS客户端(要求WINS客户端是DHCP客户端):

clip_p_w_picpath030clip_p_w_picpath032

     (3)指定WINS客户端后,便可回到Server1服务器对WINS服务的“活动注册”项进行“刷新”查看新注册的客户端相关信息:

clip_p_w_picpath034clip_p_w_picpath036

     (4)对于某些不是WINS客户的计算机(如Linux计算机或没指定WINS服务器IP的Windows客户机),我们可以在服务器上通过“静态映射”来指定其相应的相关WINS信息,使其它WINS客户机可以通过WINS服务器与之通信。

     因此下面新建了一条静态映射,这是我随便输入的,大家了解下就行:

clip_p_w_picpath038clip_p_w_picpath040clip_p_w_picpath042clip_p_w_picpath044

     (5)下面介绍WINS 下服务器的“复制伙伴”:

     为了避免在网络中单台WINS服务器发生故障时导致无法提供服务的危险,在网络中最好设置两台(或以上)WINS服务器(主WINS服务器、辅助WINS服务器),这两台服务器的数据库互为备份,也就是相互复制数据库,以保持两台服务器上的数据库中的数据是相同的,提高了可靠性和容错性。

     WINS数据库的复制采用的是一种增量型的复制,即在复制过程中只复制数据库中变化的记录,并不是复制整个数据库。
在进行数据库复制之前,首先用户要设置WINS服务器之间的关系,从而确定那些服务器之间可以进行数据库复制,也就是设置WINS服务器的"复制伙伴"。一个WINS服务器可以有以下两种复制伙伴:
     接收伙伴(PullPartner):
     接收伙伴是一台WINS服务器,它接收由其发送伙伴所发送来的在一定时间间隔内数据库的更新数据。这是通过接收伙伴要求复制的数据的版本ID比现有的数据的版本ID更高来实现的。可以通过以下三种方式通知发送伙伴将数据复制过来:
     ◆当WINS服务器启动的时候
     ◆达到管理员设定的复制时间(Replicationinterval)
     ◆由管理员执行立即复制的操作

     发送伙伴(PushPartner):
     它会将其数据库中喜爱一定时间间隔内变化的时间发送给其接收伙伴。可以通过以下四种方式将时间发送给接收伙伴:
     ◆当WINS服务器启动的时候
     ◆数据库中IP地址与名称映射中的IP地址发生改变的时候
     ◆当数据库中的记录变化数达到所设置的更新计数(Updatecount)值的时候
     ◆由管理员执行立即复制的操作

     下面大家看图了解下就行:

clip_p_w_picpath046clip_p_w_picpath048clip_p_w_picpath050clip_p_w_picpath052clip_p_w_picpath054

clip_p_w_picpath056

clip_p_w_picpath058

     (6)下面到Server2上进行操作,主要是简单看下WINS服务器:

clip_p_w_picpath060clip_p_w_picpath062clip_p_w_picpath064clip_p_w_picpath066

     (7)建立相应的复制伙伴,后面好进行数据同步:

clip_p_w_picpath068clip_p_w_picpath070clip_p_w_picpath072clip_p_w_picpath074clip_p_w_picpath076

     (8)下面显示数据同步成功,大家对于WINS简单了解这些就行了:

clip_p_w_picpath078