|
WINS 服务器是为 NetBIOS 服务的。在了解 WINS 服务器之前,需要对 NetBIOS 的相关概念有所了解:《NetBIOS 介绍》。
WINS 是一个增强的 NetBIOS 名称服务器,由微软设计开发,用于为本地子网或远程子网的主机注册 NetBIOS 名称并将其解析为 IP 地址。使用 WINS 具有下列优点:
1. 使用 WINS 时,NetBIOS 名称解析请求将直接发送给 WINS 服务器。如果 WINS 服务器可以解析,它会直接将 IP 地址发送给请求的主机。因此,WINS 不需要广播,从而可以消除基于广播解析 NetBIOS 所带来的额外网络流量;而且由于使用 WINS 时,NetBIOS 名称的解析过程均通过单播来完成,这就有利于跨子网实现 NetBIOS 。如果不能通过 WINS 完成解析,仍然可以使用广播来解析 NetBIOS 名称。
2. WINS 数据库(即 NetBIOS 名称与 IP 地址的对应关系列表)是自动更新的,它不需要手工维护。
WINS 服务器提供的服务有:名称注册(name registration),注册更新(name renewal),名称查询(name query) 和 名称释放(name release)。
Windows 客户端最多可以指定 12 台 WINS 服务器,其中第 1 台被称为主 WINS 服务器(primary WINS server),其余的被称为辅助 WINS 服务器(secondary WINS server)。
名称注册
WINS 客户端在启动时,会主动将它的 NetBIOS 计算机名,IP 地址等数据注册到 WINS 服务器的数据库中,以后 WINS 客户端的 IP 地址有变动时,它也会主动将更新数据发给 WINS 服务器。当 WINS 服务器收到注册请求后,它会检查此名称是否已经被注册,并据此判断是否接受 WINS 客户端的注册请求。WINS 客户端在发出注册请求后,它可能收到的响应有:
① 没有响应(no response) :在经过 3 次的注册尝试后,若没有收到主 WINS 服务器的响应,则 WINS 客户端就会向各辅助 WINS 服务器依序提出注册请求,一直到注册成功或所有 WINS 服务器都已尝试过为止。
② 若主 WINS 服务器与辅助 WINS 服务器都没有响应的话,WINS 客户端将改用广播方式来搜索 WINS 服务器。
③ 接受( positive ) :如果此计算机名称还没有被注册,那么 WINS 服务器接受 WINS 客户端的注册请求,并返回给 WINS 客户端一个 positive 的消息。此响应消息内包含着 WINS 客户端可拥有此名称的期限(Time-to-Live, TTL),WINS 客户端必须在期限到前,更新(renew)所注册的名称,才能够继续在 WINS 服务器数据库内使用这个名称。
④ 不接受( negative ) :如果此名称已经被其它 WINS 客户端注册,那么 WINS 服务器会先与注册此名称的 WINS 客户端计算机联系,若 WINS 服务器收到它的响应,则 WINS 服务器就不接受新 WINS 客户端的注册请求,并发送给新 WINS 客户端一个 negative 的消息。如果 WINS 服务器没有收到原注册者的响应,它就会接受新 WINS 客户端的注册。
可以将名称注册流程画成下面的流程图:
更新注册名称
注册在 WINS 服务器的每一条计算机名和 IP 地址数据,都有一定的有效期限(TTL),在有效期限到达之前,拥有此名称的 WINS 客户端必须向 WINS 服务器提出更新,否则达到期限时,此名称就会被加上已逻辑删除,而且 WINS 服务器也不会提供查询此名称的服务,一段时间后此名称就会被删除。
WINS 客户端默认是在有效期过一半时,自动向 WINS 服务器提出更新,只要更新成功,此名称的有效期就会延长。
名称查询
当 WINS 客户端要和其它计算机通信时,比如在“运行”里输入 ”\\microsof-624504\Cracktools“ 要打开位于 microsof-624504 这台主机上的 Cracktools 这个共享文件夹时,那么如何解析计算机名 microsof-624504 的呢?首先,这要视 WINS 客户端的节点类型 (node-type)而定。如果此 WINS 客户端的节点类型为 H 节点(混合节点),那么 NetBIOS 名称解析的完整过程如下:
1. 检查计算机名 microsof-624504 是否就是自己的计算机名。
2. 检查 NetBIOS 名称缓冲区。
3. 依次向主 WINS 服务器,辅助 WINS 服务器查询。
4. 发出广播信息。
5. 检查 LMHOSTS 文件。
6. 检查 HOSTS 文件或向 DNS 服务器查询。
在上面的过程中,依序而下,只要哪一个步骤找不到想要的结果就执行下一个步骤,否则停止。
比如上面的例子,我们可以使用 ipconfig /all 命令查看其节点类型:
由上图可见,客户机处于 H 节点,自然它也不是自己在访问自己,而且它从来没有访问过共享主机,因此 NetBIOS 名称缓冲区也不会有相应记录。但是,客户机还有 WINS 服务器可以查询,而 WINS 服务器的 IP 为 192.168.2.1 ,那么我们从下面的抓包截图可以看到它确实在向 WINS 服务器进行咨询:
在上图的第 2 条记录中,WINS 服务器向客户机( IP 为 192.168.2.100 )发回响应,告诉它你要访问名为 microsof-624504 的主机的 IP 为 192.168.2.101 。
名称释放
WINS 客户端关机时会通知 WINS 服务器释放它所注册的所有名称;若 WINS 客户端特定服务停止时(比如工作站服务:),它也会通知 WINS 服务器释放该服务所注册的名称。一个已经被释放的名称会被加上“已释放”的标记。
现在,我们在实际情况中来看这一种情况。首先,刷新 WINS 服务器中的“活动注册”:
接着,我们正常关闭 IP 为 192.168.2.100 这台计算机,接着再刷新一下 WINS 服务器,可以看到:
可以看到,已经看到它已经被标记“已释放”了。
当一台 WINS 客户端在注册名称时,倘若该名称虽然已经被另外一台计算机注册(计算机名相同,IP 地址不同),但却有“已释放”标记的话,则 WINS 服务器会允许 WINS 客户端注册。举例来说,DHCP 客户端在关机时会释放所有注册的名称,在下一次开机时,即使它所租用的 IP 地址与之前不同了,但它还是可以正常注册,因为之前所注册的计算机名(不同的 IP 地址)已经被释放了。
一个“已释放”的名称,经过一段时间后若没有再注册的话,它就会从 WINS 服务器的数据库中被删除。
下面介绍在 Windows Server 2008 里安装 WINS 服务器及配置客户端:
1. 打开服务器管理器,右击“服务器管理器”,然后在弹出的菜单中选择“添加功能”:
2. 在“添加功能向导”里将“WINS 服务器”勾选上,然后进行安装:
安装过程是简单的。
安装完服务器后,就可以对客户端进行设置了。客户端的设置有“手动设置”和“自动设置”两种。
“手动设置”流程如下:
1. 打开你的网络连接属性,然后点选" Internet 协议 (TCP/IP)" 的属性:
接着再点击上图中的“高级”按钮,在弹出的对话框中选择“WINS“ 选项卡,然后添加 WINS 服务器地址:
这样就是手动添加过程。
如果你的 WINS 服务器同时也是个 DHCP 服务器,那么就属于“自动设置”。那么这里,我们就要对 DHCP 服务器进行相应的设置:
( 关于搭建 DHCP 服务器相关话题可参考:《 Windows2008 搭建 DHCP 服务器》和《 使用 DHCP 中的“用户类别”》 )
右击 DHCP 服务器的“服务器选项”,在弹出的菜单中点选“配置选项”:
在弹出的对话框中勾选“WINS/NBNS 服务器”:
然后填写“服务器名称”,填写完后可点击“解析”,没什么意外的话,它会解析出对应的服务器 IP,然后再点击“添加”按钮即可。最后在“服务器选项”栏里可以看到:
这表明添加成功。
我们可以在客户端的命令行里运行 nbtstat -n 命令来验证注册信息:
在上图中可以看到最后一栏的“状态”为“已注册”。注意到为什么注册有两个 NetBIOS 名呢?名字是相同的,不同的是其提供的服务种类不同,其中 <00> 和 <20> 标记着两种不同的服务。
00 代表的是工作站服务( workstation service )
如果此服务启动的话(默认启动),边可以通过网络来与其他的计算机通信。
20 代表的是服务器服务( server service )
如果此服务启动的话(默认启动),便可以让其他计算机来与这台计算机通信。
我们还可以通过查看 WINS 服务器数据库来观察客户机的注册信息,方法是右击 WINS 服务器的“活动注册”,然后在弹出的菜单中选择“显示记录”:
在弹出的对话框中点选底下的“立即查找”按钮即可:
在以后的文章中将进一步介绍 WINS 的其它功能。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|