我的网络由大约 300 个 VLAN 组成(它们之间没有广播)。每个子网中都有 Windows 计算机(xp、vista、seven)。它们都包含在同一个工作组中(即它们不在域中)。计算机能否获取工作组中所有计算机的列表,包括来自其他 VLAN 的计算机?
我目前有一台 wins 服务器和一个域主浏览器。在子网中,计算机正在选举一个本地主浏览器,但它们不会将其列表与域主同步;因此每个 vlan 只能包含其子网中包含的计算机。实现此同步的唯一方法是 samba(配置为本地主服务器),但所有 vlan 都只有基于 windows 的计算机。
有没有办法获取完整列表?
答案1
您需要配置所有客户端以使用中央 WINS 服务器或在每个子网上设置一个 WINS 服务器,并使 WINS 服务器相互推送\拉取伙伴。
答案2
除了 joeqwerty 建议的域或对等 WINS 设置等其他更易于维护的方法之外,我可能会采用强力方法。设置连接到中继端口的 Linux 机器,以便它可以访问所有 VLAN。然后我会编写以下脚本:
for vlanNumber in `seq 1 300`; do
# create a virtual network device on vlan using vconfig
# get dhcp lease using dhclient
# use nmblookup to gather all the machine names and append them to a file
# release the dhcp lease
# drop the vlan interface
done
确实不太漂亮,但它可能能够完成工作。
答案3
您在此环境中使用 DHCP 吗?如果是,我相信您可以指定一个或多个 WINS 服务器作为 DHCP 租约的一部分。这是netbios-name-servers
ISC DHCP 中的选项。这会将它们配置为使用您指定的 wins 服务器,而无需接触每台机器。