分享

WINS服务器全攻略

 uqt123 2010-01-08

                                                                              巧妙绝情

    我们在理解Windows网络中的名字解析一文中已经介绍过了,在Windows系统中具有Netbios和DNS这两种名字解析方式。在那篇文章中,我们提到Netbios协议是基于本地局域网的UDP广播,具有速度快、无需额外配置的好处,而带来的缺点就是广播不能跨越网段和增加了网络流量,因此微软推出了WINS(Windows Internet Name Service)服务器。当客户计算机配置为使用WINS服务器时,它直接和WINS服务器进行单播通讯,这样可以避开NetBIOS协议使用广播时的这两大缺陷。

可能大家觉得,既然是已经被淘汰的技术了,为什么还需要讲解呢?Netbios名字解析方式虽然已经不在作为主要的名字解析方式了,但是在非活动目录环境中,仍然在广泛的使用。Netbios名字解析所带来的广播网络流量是非常大的,而WINS服务器最大的作用就是可以消除Netbios名字解析方式所带来的大量广播流量,并且它部署简单方便,是我最喜欢的服务器之一。

 

WINS服务器工作方式

WINS协议采用UDP/TCP 42端口进行通讯:WINS服务器侦听UDP/TCP 42端口,客户端计算机连接WINS服务器的这两个端口进行名字服务通讯。其中UDP 42端口用于答复客户端计算机的名字解析请求,而TCP 42端口用于WINS数据库复制。

对于WINS服务器而言,它的主要功能有名字注册、名字刷新、名字注销和名字解析这四方面,它们的工作方式分别为:

名字注册

和DNS服务器一样,你需要配置客户端计算机使用此WINS服务器(你同样需要配置WINS服务器使用自己的WINS服务)。当WINS客户端计算机启动时,会在配置使用的WINS服务器中注册自己的Netbios名字和对应的IP地址、服务类型。如果WINS服务器正常运行并且此Netbios名字没有被其他WINS客户端注册,则WINS服务器向WINS客户端计算机返回一个成功注册的消息,其中包括此名字注册的生存时间(TTL)。

如果在WINS服务器上此Netbios名字已被其他WINS客户端注册,则WINS服务器向注册此名字的现有WINS客户端按照500毫秒的间隔发起三次名字解析请求,如果现有WINS客户端向WINS服务器成功进行回复,则WINS服务器向请求注册此名字的WINS客户端回复拒绝注册消息;如果现有WINS客户端没有向WINS服务器进行回复,则WINS服务器向请求注册此名字的WINS客户端回复成功注册消息。

如果WINS服务器不在线,则WINS客户端向配置的主WINS服务器和备份WINS服务器各发起三次名字注册请求,如果均未收到WINS服务器的回复,则WINS客户端发送本地广播来注册自己的Netbios名字。
 

名字刷新

WINS客户端必须在WINS服务器定义的生存时间前对自己的名字进行刷新,生存时间定义了WINS服务器将此Netbios名字作为活动记录存储在WINS数据库中的时间。名字刷新消息中包含了客户端请求进行刷新的IP地址和Netbios名字,WINS服务器以包含新生存时间的名字刷新响应消息进行回复。当WINS客户端刷新它的名字时,执行以下步骤:

1、当生存时间已经过了一半时,WINS客户端向自己的主WINS服务器发送名字刷新请求;

2、如果主WINS服务器没有进行响应,则WINS客户端将在1小时内每隔10分钟向主WINS服务器发送名字刷新请求;如果主WINS服务器仍然没有进行响应,则WINS客户端向备份WINS服务器发起名字刷新请求;

3、如果备份WINS服务器没有进行响应,则WINS客户端将在1小时内每隔10分钟向备份WINS服务器发送名字刷新请求;如果备份WINS服务器仍然没有进行响应,则WINS客户端向又向主WINS服务器发起名字刷新请求。WINS客户端重复这种行为直到生存时间结束;

4、如果WINS客户端成功刷新它的名字,则复位WINS服务器上的更新间隔;

5、如果WINS客户端不能在主WINS服务器或者备份WINS服务器上刷新名字,则名字被释放。

 

名字释放

如果WINS客户端正常关机,它将向WINS服务器对自己注册的每个Netbios名字发送名字释放请求,其中包含自己的IP地址和需要释放的Netbios名字。当收到名字释放请求后,WINS服务器检查自己的数据库是否具有匹配的名字注册,如果WINS服务器遇到数据库错误或者此Netbios名字注册到不同的IP地址上,则向WINS客户端发起拒绝名字释放消息,否则向WINS客户端发起接受名字释放消息,在数据库中将指定的Netbios名字标记为不活动的。

如果WINS客户端非正常关闭,则不会向WINS服务器发送名字释放请求,WINS服务器会保留此名字直到名字注册的生存时间过期。

 

 

名字解析

对于NetBIOS名字的解析,默认过程如下:

  • 检查本地的NetBIOS名字缓存;

  • (由节点类型决定)查询WINS服务器; 如果主WINS服务器不可用,则WINS客户端在向主WINS服务器发送三次解析请求后,切换到备份WINS服务器;

  • (由节点类型决定)NetBIOS广播查询本地网络;

  • 查询Lmhosts文件,如果配置为这样做,此文件位于%systemroot%System32DriversEtc目录下。

 

是否查询WINS服务器和执行Netbios广播查询以及它们之间的优先级,会根据Windows网络客户的节点类型的不同而不同。对于每个Windows网络客户,它的节点类型决定了它处理Netbios名字解析时的方式,你可以运行ipconfig/all来观看自己的节点类型,如下图所示中的Node Type

节点类型具有以下四种:

0x1 Broadcast(B节点) : 只使用NetBIOS广播查询本地网络,不查询WINS服务器;

0x2 Peer-Peer (P节点):只向WINS服务器发起查询请求,不使用Netbios广播;

0x4 Mixed (M节点):先使用Netbios广播,解析失败后再向WINS服务器发起查询;

0x8 Hybird (H节点):先向WINS服务器发起查询,解析失败后再发起Netbios广播解析;

默认情况下客户端计算机配置为B节点,在配置WINS服务器后,会将节点类型修改为H节点。你可以手动修改节点类型:

  • 对于自动获取IP地址的客户端计算机,你可以通过修改DHCP服务器中的046项 WINS/NBT节点类型来进行修改;

  • 而对于具有静态IP地址的客户端计算机,你可以通过在注册表中修改
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParametersDhcpNodeType
    DWORD键值的值来进行。

 

 

数据库复制

单个WINS服务器可以为10000个客户端计算机提供Netbios名字服务,不过从负载均衡和容错的角度,微软建议你将WINS服务器成对使用。此时,你需要配置WINS服务器之间的复制。

WINS服务器具有两种复制伙伴模式:。当WINS服务器配置为模式时,当WINS数据库产生更新时,会通知自己的配置为伙伴模式的WINS服务器;而当WINS服务器配置为模式时,会定期联系配置为伙伴模式的WINS服务器,比较WINS数据库版本号从而决定是否需要进行复制。

推模式和拉模式的区别在于:推伙伴模式下的WINS服务器会在数据库修改时通知自己的复制伙伴,而拉伙伴模式下的WINS服务器会在计划的时间周期联系自己的复制伙伴。所以,当两台WINS服务器之间具有较为快速的链路连接时,应使用推模式;反之则使用拉模式。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多