曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3263|回复: 0
打印 上一主题 下一主题

使用 WINS Proxy (WINS 代理)

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2013-2-1 10:52:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果 WINS 服务器 同时也是个 DHCP 服务器 ,并且 DHCP 服务器中的“作用域选项“中添加了 "WINS/NBNS 服务器" 的话,那么在同一个一个子网内,启用 DHCP 的客户端也获取到 IP 地址的同时也会将自己注册到 WINS 服务器中,如下图所示:

如果 DHCP 服务器不设置"WINS/NBNS 服务器"选项的话,若想注册到 WINS 服务器,那么可以手动设置 WINS 服务器 IP 地址,如:



如果网络上还有没有启用 WINS 功能的客户端,它们并不会与 WINS 服务器通信,也就是既不会将自己的计算机名和 IP 地址注册到 WINS 数据库内,也不会向 WINS 服务器查询其他计算机的 IP 地址,此时要如何让 WINS 客户端与这些非 WINS 客户端通信呢?

如果非 WINS 客户端和 WINS 客户端是在同一个网段的话,那么它可以利用广播的方式来搜索对方的 IP 地址,进而相互通信。但如果它们分别位于不同的网段的话,广播方式就无法发货作用了,因为路由器不会将广播发送到另一个网段内。此时可以利用以下两种方法来解决这个问题。

利用静态映射
静态映射方式可以让 WINS 客户端得知非 WINS 客户端的 IP 地址。设置方法是(以 Windows Server 2008 为例),右击 WINS 服务器中的”活动注册“ ,在弹出的菜单中选择”新建静态映射“:

然后填进对方的计算机名和 IP 地址即可:


在这种方式下,WINS 客户端可以根据 WINS 服务器数据库中的记录,通过 ping 非 WINS 客户端的计算机名可得到它的 IP 地址;但是反过来就不行了。利用 WINS Proxy (WINS 代理) 可以轻松解决跨网段的问题(也可以利用 LMHOSTS 文件来解决)。

WINS 代理的应用拓扑如下图所示:

在上图中,有两个子网。WINS 服务器在子网 subnet2 ,而 WINS 代理机则在 subnet1 。下图是工作示意图:

下面描述上图中的工作流程:

1. 非 WINS 客户端(位于 subnet 1 中)发出查询广播消息查询 WINS 客户端A 的 IP 地址(WINS 客户端 A 位于 subnet2 中,与 WINS 服务器在同一子网)。
2. WINS 代理收到广播消息后,它会先检查其缓存区(cache),查看是否有 WINS 客户端A 的 IP 地址。
3. 若缓存区中没有 WINS 客户端 A 的 IP 地址,WINS 代理就会直接向 subnet2 中的 WINS 服务器询问。
4. WINS 服务器将 WINS 客户端A 的 IP 地址发送给 WINS 代理。
5. WINS 代理将 WINS 客户端A 的计算机名和 IP 地址存储到其缓存区中。
6. 当下一次有非 WINS 客户端来向 WINS 代理询问 WINS 客户端A 的 IP 地址时,它就会直接读取缓存区的数据,以提高查询的速度。这份在缓存区中的数据,默认会保留 10 分钟。
7. WINS 代理将此 IP 地址发送给非 WINS 客户端。

WINS 代理的工作机理类似于 DHCP 中继代理 ,它们都负责解决广播消息无法跨越路由器的问题。需要注意的是,WINS 代理的本身必须是 WINS 客户端,将它设置为 WINS 代理的方法为:
在”运行“里输入 regedit.exe 打开注册表编辑器,然后设置下面路径的值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters
将其下的 EnableProxy  的值设为 1 。如果没有该键值的话,就新建一个,数据类型为 DWORD 。设置完,并重启计算机后,我们用 ipconfig /all 命令可以看是否启用了 WINS 代理,如下图所示:



接下来用实验来演示验证上面所述情况,为了节省资源,我们都用虚拟机 VirtualBox 来进行。这里不再详细说明 VirtualBox 的相关设置选项,这在其它的文章中已经有了详细说明。

1. 打开 Windows Server 2008 。该虚拟主机只需要设置一个网卡,选用”内部网络“,且网络名设置为"intnet1" ,IP 地址为 192.168.2.1,网关为 192.168.2.254。
在该台 Windows Server 2008 中,设置了 DHCP 并自带分配 WINS 服务器,路由网关等功能,如下图所示:



2. 启动一台 WinXP 的客户机,该台机器和 WINS 服务器在同一个子网内(虚拟机中设置内部网络名为 intnet1 ),即上述的 subnet2,自动从 DHCP 中获取 IP 和路由网关 IP,它就是上面提到的 WINS 客户端A



3. 启动一台装有 Fedora17 Linux 的机器用作路由器。它需要在虚拟机上设这两张网卡,第 1 张上的网络名为 intnet1 并设置的 IP 为 192.168.2.254 ;第 2 张上的网络名为 intnet2 并设置 IP 为 192.168.3.254 。
打开路由功能相关说明参考:《
在 VirtualBox 中搭建子网及路由器》。

4. 启动另一装有 WinXP 的客户机,其虚拟机中的网络名设置为 intnet2 (相当于上述的 subnet1 ),设置内部静态 IP 为 192.168.3.100 ,网关设置为 192.168.3.254 。该台计算机就是用来作为 WINS 代理的机器。设置 WINS 代理的方法上面已经介绍。该台计算机由于和 WINS 不同子网,我们需要为其手动添加 WINS 服务器的 IP 地址:



然后在 WINS 服务器上静态添加该台 WINS 代理的静态映射,设置方法上面已经介绍:



5. 在 subnet1 中启用另一台装有 WinXP 的客户机,可以随便给它设置一个静态 IP,但网关需要设置为 192.168.3.254 。该台计算机就是发出广播,要寻找位于 subnet2 中 WINS 客户端A 的这台机子。

完成上述的设置后,我们就在步骤 5 中的计算机中 ping 一下 WINS 客户机A,看是否能正确解析其名:

可以 ping 得通。证明实验验证是正确的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-19 16:22 , Processed in 0.083477 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表