模块三:1、配置和管理WINS。

第一节:WINS概要方面1、什么时候需要使用WINS(WINS服务器本质上是微软自己的一个服务器,它的作用类似于DNS,DNS是FQDN和IP的对应关系,WINS是NetBIOS名字和IP的对应关系,NetBIOS名字是微软在网上邻居里面看到的对方电脑的名字,它是没有后缀的,没有"."后面的域名,就只有前面的部分),如下原因需要使用WINS:依赖WINS做名称解析的老版本微软操作系统;依赖NetBIOS名字来做解析的程序(特别是老程序);需要使用单标签名字的时候,若这些计算机的名字需要做动态注册;用户需要使用网络邻居或我的网络浏览器功能;没有使用Windows Server 2008作为DNS基础架构(若有使用,则Server 2008的DNS是支持Global Name Zone全球单一名字的);WINS在目前的网络环境里面还是不能完全屏蔽的,在某些时候是需要使用的;2、WINS的组件,包括WINS服务器(它上面有WINS数据库,记录了WINS里NetBIOS和IP的对应关系),WINS客户端和WINS代理(当WINS服务器与WINS客户端分在两个不同的子网,且只有其中的一个子网有WINS服务器时,WINS客户端需要通过WINS代理去查找另一个子网中的WINS服务器,以便将自己的NetBIOS和IP的对应关系写入到WINS服务器的数据库中;若两个子网分别有WINS服务器,则WINS客户端就会把记录写入自己子网内的WINS服务器,此时就无需使用WINS代理了)四个部分;3、WINS客户端注册和释放的过程,首先WINS客户端(通过我们配置TCP/IP属性的时候设置的WINS服务器,它的位置是在TCP/IPv4的属性里的“高级TCP/IP”——WINS)向WINS服务器发送注册请求(请求包括自身NetBIOS名和IP地址),在WINS服务器的数据库中注册记录,而后,WINS服务器返回注册信息,告诉WINS客户端注册已经成功,然后通过TTL表示注册过期的时间(注册以后不是永远生效的,过了一段时间,如果是非活跃客户端,将从数据库中删除该记录),这个就是注册的过程;对于释放来说,假设现在WINS客户端关机了,首先WINS客户端会向WINS服务器发送释放名称请求,即告知WINS服务器这条NetBIOS名对应的IP地址记录的WINS客户端要关机了,请求WINS服务器将这条记录进行释放,而后WINS服务器将发送相应名称的释放,进行释放过程的原因在于,WINS服务器并非只服务于这一台WINS客户端,它服务于所有的WINS客户端,其他的WINS客户端查找这台WINS客户端时,只知道它的NetBIOS名,它是通过WINS服务器来找到这台WINS客户端的IP地址,若关机后没有释放请求,在WINS服务器上仍然还会记录这台WINS客户端的NetBIOS名和IP的对应关系,这样其他WINS客户端找WINS服务器的时候,会使得它们以为这台WINS客户端还没有关机,但其实它已经关机找不到了,所以它有注册的请求,同样也就会有释放的请求;4、爆发处理(默认就是开启的),如何配置爆发处理,WINS服务器允许WINS客户端在它这里注册NetBIOS名字和IP地址的对应关系,如果局域网里的WINS客户端相当的多,比如说有一千台,那么到了早上上班时间,这一千台的WINS客户端几乎是在同一个时间开启使用的,它们在一个很短的时间间隔里都到WINS服务器上去注册,这时候很可能会导致WINS客户端发送的注册信息WINS服务器无法即时的进行答复,因为大家都来了,一下子网络拥塞了,这个时候可以开启爆发处理,它允许WINS服务器处理大量并发的名称注册请求,其实爆发处理是使用了一个注册时间差,每隔一个设定好的时间段WINS服务器会处理一些注册请求,而不是即时的进行答复,这样它就能响应更多的注册请求;这个过程其实就是WINS客户端的注册超过了爆发队列的阀值,导致WINS服务器无法即时的答复,所以WINS服务器使用一个短时间间隔来确认注册,比如过1分钟再进行答复,这样它就能允许更多的并发请求了;5、WINS服务器名称解析的过程,WINS客户端尝试联系在自己TCP/IP配置里指定的第一台WINS服务器,它会联系三次,如果联系上了,那就在这台服务器上注册自己的NetBIOS名字和IP地址的对应关系,如果联系了三次都没有响应,它开始联系TCP/IP设置里指定的第二台WINS服务器,和第一台一样,联系三次,联系上了就进行注册,若没有联系上,三次后换下一台WINS服务器,依次下去;同理,要查找解析WINS客户端的NetBIOS名字对应的IP地址也是一样的,也是先找三次,找不到再找第二台,再找不到就找第三台,依次下去,如果名字被解析了,它就会返回正确的IP地址,如果没有,它会采用广播的类型(B-node);6、NetBIOS节点类型,客户端如何确定自己使用的是哪种节点类型(通过在命令行模式下输入"ipconfig/all"后,查看"Node Type"节点类型栏目的值可知,如果是显示“混合”,则取决于DHCP服务器,此时有可能是M-node,也有可能是H-node);NetBIOS节点类型决定计算机解析NetBIOS名字使用的方法,它有四种类型,B-node(使用广播进行名称注册和解析,对应的注册表值为1,比如在局域网里直接发布一个广播出去查找某个NetBIOS名字对应的IP地址是什么,在一个小网络里发个广播可能会更快),P-node(使用NetBIOS名字服务器,如WINS来解析NetBIOS名称,对应的注册表值为2,它不广播,能够节约网络流量),M-node(综合B-node和P-node,但B-node优先,也就是先广播,后找WINS服务器,对应的注册表值为4,比如在一个子网里没有WINS服务器,WINS服务器在另一个子网里,此时使用M-node,先广播查找本网段内的NetBIOS名字,如果需要查找的WINS客户端是在另一个子网里,由于广播是不能穿越子网的,所以它在本网段内通过广播是找不到的,然后它就会通过WINS服务器继续查找)和H-node(综合P-node和B-node,但P-node优先,也就是先找WINS服务器,后广播,对应的注册表值为8,比如在一个子网里没有WINS服务器,WINS服务器在另一个子网里,但是通常我们需要查找的NetBIOS名字都在那个子网里,自己本网段的查找相对要少得多,此时我们使用H-node,让WINS服务器的查找优先,先到WINS服务器的子网内找,找不到就开始广播查找本网段内的NetBIOS名字)。

演示:安装和配置WINS服务器,以及爆发处理的启用。

首先给这台WINS服务器分配一个静态的IP地址"192.168.200.103",然后在“高级”选项卡里将自己的IP地址“添加”进WINS服务器列表,也就是将自己设为WINS服务器,WINS服务器指向自己,然后就可以通过服务器管理器来添加WINS这个“功能”了(WINS在Windows 2008里是一个“功能”,而非“角色”),我们可以通过“服务器管理器”的“功能”里的"WINS"或是“管理工具”下的"WINS"来对WINS服务器进行管理工作;对于爆发处理的配置我们可以通过右击“功能”——"WINS"选择属性——“高级”,或者是在“管理工具”——"WINS"——"WINS"——右击服务器的名称选择属性——“高级”,在这个选项卡里,我们可以看到爆发处理默认就是开启的,我们可以直接选择系统设置好的“高中低”选项,也可以“自定义”具体数目,比如说超过500条就启用爆发处理。

第二节:管理WINS服务器方面1、客户端记录概要,WINS服务器存储的WINS客户端记录也就是数据库中的数据表,表中记录的表项包括有:注册的NetBIOS名字(唯一的名字或组等),注册时的服务表项(使用16进制的类型标示的,由NetBIOS名字对应的电脑的类型,是“域主浏览器”,“文件服务器”或是“工作站”等等),NetBIOS名字对应的IP地址,数据库表项的状态(可能是活动,释放或结束标记),是否静态表项(显示"X"标示表项是静态的,显示"null"或空白标示表项不是静态的),记录的所有者(即WINS服务器中记录的表项来源于哪台服务器),版本号(名称注册时WINS服务器分配的唯一的16进制数字),到期时间TTL(WINS客户端注册以后并不是永久生效的,它有一定的期限,这里显示的就是表项过期的时间);2、清理如何工作,从WINS数据库中移除不再活跃的表项,它可以自动(设置“间隔”多少时间做刷新,如果是不存在的客户端就把它的记录删除,它的位置是在“服务器管理器”——“功能”——右击"WINS"选择“属性”——“间隔”)或手动的进行;3、删除WINS记录,简单删除,从当前的本地WINS服务器使用WINS控制台删除选择的记录,右击“活动注册”里的那些记录选择“删除”即可;坟墓删除,当前不删除记录,但将记录标记为删除,并将这个标记复制到其他WINS服务器,在下一次清理时同步删除(在WINS服务器之间发生数据库同步的时候,删除那些被标记为删除的记录),这种删除需要有多台WINS服务器,在建立WINS复制伙伴关系后才能实现;4、备份和恢复WINS数据库,WINS数据库是自动生成的,包括WINS服务器也是,建立好后基本就无需再对它进行过多的管理,将客户端TCP/IP属性里的WINS指向设置好的WINS服务器,而后客户端在开机的时候就会自动到WINS服务器进行注册,如果它的节点类型是先WINS,那么它在找其他客户端的时候也会到WINS服务器上去查找NetBIOS名字所对应的IP地址,这完全是一个自动的过程;若客户端的数量比较大,我们也可以对WINS数据库做一个备份,指定好备份的目录,设置备份自动或者手动(直接拷贝出数据库的MDB文件即可)来完成,恢复WINS数据库的时候,先要停止WINS服务(WINS服务器工作时是不允许直接拷入数据库的,可以通过"services.msc"——右击"WINS"选择“停止”,或是“服务器管理器”——“功能”——右击"WINS"选择“所有任务”——“停止”来完成),然后手工删除当前在用的MDB文件,再拷入备份的MDB数据库文件,最后再重新启用WINS服务;包括DHCP,WINS,DNS这样的一些网络服务,它们都是使用了本地的小数据库,类似于Office里的Access单机数据库文件MDB,然后对这个数据库文件进行操作;5、压缩WINS数据库,WINS数据库也包含了数据库的特性,它占用的磁盘空间只会增加不会减少,随着数据库中数据表项的增加,文件占用的空间变大,且那些被删除的数据表项所占用的空间也不会自动的回收,此时,我们可以使用动态压缩(数据库在使用时自动进行压缩)或是离线(手动)压缩(管理员停止WINS服务,使用"Jetpack.exe"命令进行压缩,压缩后记得重新启用WINS服务)回收那些WINS数据库中未使用的空间。

演示:在WINS数据库中过滤和查看WINS记录;管理WINS服务器数据库。

“服务器管理器”——“功能”——"WINS"——右击“活动注册”选择“显示记录”,在这里,我们可以设置筛选条件过滤记录,而后点击“立即查找”即可在“活动注册”栏目下看到需要查看的WINS记录(在WINS服务器指向自己的情况下,默认是有3条记录的,因为现在的WINS服务器没有客户端,等于是WINS服务器是自身的一个注册);WINS数据库的位置是在WINS服务器系统盘"Windows\System32\wins\wins.mdb",备份和恢复时使用的就是这个文件;WINS数据库压缩举例,在命令行WINS数据库文件所在目录下使用命令"jetpack wins.mdb winstmp.mdb"即可完成压缩,压缩后新生成的数据库"winstmp.mdb"将取代原"wins.mdb"这个文件,成为新的WINS数据库,但"winstmp.mdb"文件也还是存在于WINS数据库目录下的。

第三节:配置WINS的复制方面1、推复制,推伙伴基于自己数据库中计算机改变通知复制伙伴,推复制能维持较高级别的同步;在有两台或多台WINS服务器的情况下,将自身的数据库推送到其他的WINS服务器,比方说WINS服务器A和WINS服务器B的数据库需要同步,我们将A设置为推复制,它的阀值是50次,也就是当WINS数据库中的记录改变了50次(增删改操作)以后,A通知B达到阀值,B使用复制申请答复A,然后A就将自己新的数据库表项的拷贝推给(发送给)B;2、拉复制,拉伙伴是基于时间间隔请求复制,比如每过了多长时间,默认是每8个小时,拉复制可限制复制流量通过慢速链接的频率;与推复制相反,不是对方向自己塞过来的,而是自己主动的到对方那里去拉回来,比方说WINS服务器A和WINS服务器B的数据库需要同步,我们将A设置为拉复制,它每隔8小时会向B请求(拉)数据库改变信息,于是B将自己新的数据库表项的拷贝发送给A;3、推/拉复制,当WINS服务器有多台的时候,我们设置WINS服务器同时做推和拉的复制,推是自己改变50次以后将最新的数据库表项推送给其他WINS服务器,拉是自己每隔8个小时到其他WINS服务器上去拉回最新的数据库表项,这样可以确保多台WINS服务器在任何时候数据库基本是一致的;当然我们也可以手工同步;4、验证WINS数据库的一致性,能够帮助维持大型网络中多台WINS服务器数据库的一致性,从而避免每台WINS服务器所服务的客户端查找的信息不同步,因为在同一个时间每个客户端的NetBIOS名字与IP地址都是一一对应的,所以在使用多台WINS服务器的时候,数据库的同步就显得至关重要;验证是通过“服务器管理器”——“功能”——右击"WINS"——选择“验证数据库的一致性”和“验证版本ID的一致性”使用,若WINS服务器的数据库记录比较多,应选择在合适的时间段进行这项操作,因为这个过程耗时比较长,且对网络带宽的消耗比较大;一般情况下,多台WINS服务器之间我们都设置使用推/拉的复制关系,它会自动保持数据库的一致性,除非出现宕机或是WINS服务不正常停止等特殊的事件,在特殊事件发生以后但在数据库同步发生以前,有可能会导致数据库的不一致,此时我们就可以对数据库的一致性进行一下验证,避免产生数据库不同步的问题。

演示:配置WINS复制伙伴属性。

由于一台WINS服务器是无法完成推/拉过程的,所以除了"192.168.200.103"这台WINS服务器以外,我们还需要再添加一台WINS服务器,我们设置新添加的WINS服务器的静态IP地址为"192.168.200.105",然后在“高级”选项卡里将自己的IP地址“添加”进WINS服务器列表,WINS服务器指向自己,这样105就会到自己的WINS服务上去注册,这样这两台服务器的WINS服务器设置的都是本身,所以它们互相间都不会到对方那里去注册,再在服务器管理器中添加WINS功能,同时,为了使得这两台WINS服务器能够更顺利的找到发现(Ping通)对方,我们如下设置它们的防火墙,“Windows防火墙”——“高级设置”——“入站规则”——右击启用“文件和打印机共享(回显请求-ICMPv4-In)”,如果使用的是IPv6,则启用"ICMPv6"的规则(这是针对Windows2008R2防火墙的设置,如果是Windows2008的防火墙,我们可以参照WindowsXP的设置,或是干脆暂时关闭一下以便查看实验效果);分别在103和105两台WINS服务器的“服务器管理器”——“功能”——"WINS"——右击“复制伙伴”——“新建复制伙伴”将对方WINS服务器的IP地址填入,比方说WINS服务器103就填入"192.168.200.105",将105添加为自己的复制伙伴,默认添加的“复制伙伴类型”是推/拉复制,我们可以通过右击新添加的“复制伙伴”选择“属性”——“高级”,而后修改它的默认设置,新建复制伙伴以后,我们右击“活动注册”——“显示记录”——“立即查找”,稍等片刻,就可以在右边的显示框中看到添加后的活动注册列表(“立即查找”以后,可以通过“刷新”来更新列表内容),若延迟较严重使得迟迟看不到结果,我们可以在两台WINS服务器上,右击新添加的“复制伙伴”选择“开始推复制”或“开始拉复制”以便立即同步它们的WINS数据库。

第四节:迁移WINS到DNS方面1、单标签名解析,也就是单标签域名(只有一个域名没有后缀,比如说我们实验用的域的域名就叫win08r2,传统来讲win08r2这样的名字没有后缀".local",它是属于单标签域,Windows是把它当作NetBIOS名字来对待的,这样的名字之前我们是通过WINS服务器来解析的,而Windows2008的DNS是支持这种单标签域的,但默认没有启用,我们需要通过一条命令去启用它)的解析;Windows2008在DNS中引入一种新的区域类型为"GlobalNames Zone"全局名称区域,在以前这种单标签的名字是通过WINS来解析的,而在Windows2008的DNS中通过全局名称区域,我们可以不使用WINS在企业中解析单标签名,而是把它放到DNS里去,这样就能减轻DNS后缀搜索列表的管理和维护,但是它的静态记录是由人为的手工创建来完成的(试想,如果原有通过WINS解析的记录相当的多,那要在DNS里手工的完成这些记录的创建,这个工作量也是相当可观的),并且在Windows2008的网络环境中如果要在DNS里面启用全局名称区域的支持,则需要在整个森林中的所有DNS服务器上都启用全局名称区域的支持(这样,DNS服务器数量少的时候可能并没有什么很大的影响,但如果我们拥有上千台Windows2008的DNS服务器,要在每一台DNS服务器上都启用单标签的支持,这样做是不是值得,也是需要考量的问题);2、全局名称区域,在启用了IPv6的网络中Windows2008的DNS服务器允许单标签名的解析,它使用别名记录指向主持资源的计算机的FQDN,也就是它使用别名指向单标签名字(NetBIOS名字),它建议使用AD集成,从而可以在整个森林中复制,也就是森林中的服务器可以一起复制,在DNS服务器上启用了全局名称区域以后,它可以(但非必须)用作不使用WINS服务器的一种方法,这时候客户端就不需要配置WINS服务器了,可以直接使用标准DNS查询来解析单标签名,不需额外配置(因为客户端本来就要配置DNS的,这样他的配置就不用改变了,不需要增加WINS服务器地址);3、全局名称区域名称的解析过程,首先客户端计算机的配置不需改变,然后客户端使用标准格式查询DNS,如果DNS查询失败(在DNS里面找不到手工建立的别名记录),客户端按自己的配置处理解析过程(根据客户端自身的节点类型——"BPMH"四种,是找WINS,还是广播,是先WINS后广播,或是先广播后WINS);4、实现全局名称区域的设置要求,首先需要运行的是Windows Server 2008的授权名称服务器,然后要在森林范围内配置全局名称区域的AD集成复制(整个森林且与AD集成),而且还要手工创建静态的别名记录指向FQDN记录,要禁用全局名称区域的动态更新,要在所有的DNS服务器上启用单标签的全局名称区域的支持(这条在每一台DNS服务器上输入开启GlobalNames Zone的命令是"dnscmd /config /enableglobalnamessupport 1",关闭的命令是"dnscmd /config /enableglobalnamessupport 0")。

演示:使用全局名称区域迁移WINS到DNS(通过全局名称区域,Windows Server 2008的DNS服务器能够实现WINS的功能,并且可以把它作为取代WINS服务器的一种方法)。

虽然这里说的是从WINS迁移到DNS,而且在使用Windows2008的DNS架构时我们可以不要WINS,但并非是说Windows2008的DNS就完全取代了WINS,至少我们看到,WINS的注册清理老化都是自动完成的,并且WINS是“网上邻居”等一些老程序要用到的服务,在DNS里面启用单标签域的支持,它也可以对单标签域做一些查询操作,但是这样的A记录需要我们手工的去创建,并且默认的时候Windows2008的DNS是没有开启单标签域的支持的,需要我们手工的开启,所以在Windows2008这样的环境下是不是要完全的取消WINS去使用DNS,或是WINS和DNS一起来使用,是看我们个人的工作习惯,以及具体的业务情况来决定的,对此并没有一个科学的客观判断标准。