我的系统上的NetBIOS名称服务请求是否在端点上工作严重不一致。 我正在用Win7和Server 2008R2系统进行testing。 我们没有WINS服务器,也不想拥有WINS服务器,但我最感兴趣的是不同的行为。 这里的驱动程序是我们的Nessus扫描器,它通过使用其插件10150查询设备的NetBIOS名称来获取系统的名称,该插件显然与nbtscan做同样的事情。
我理解和观察它的方式,Nessus, nbtscan ,并运行nbtstat -A XX.XX.XX.XX发送一个netbios-ns数据包到目标上的UDP端口137,它应该用一个UDP端口137响应回应请求者。 当我在有问题的机器上用Wireshark观察这个时,我看到数据包进入,但是没有响应被发送。 但有些系统如预期那样回复。 我想我已经把主机防火墙当作罪魁祸首了,所以现在就让我们假设。
另外 – 这里是更奇怪的东西 – 在这些没有响应的系统上,当我发出nbtstat -A XX.XX.XX.XX命令时,它们似乎也不会尝试发送 UDP数据包。 他们立刻用“找不到主机”退出,Wireshark没有显示出去的数据包(工作系统在放弃之前最多生成三个数据包)。
就好像NetBIOS-NS子系统在这些系统上被禁用,并没有尝试使用它,但是我找不到会导致这种情况的设置的证据。 更令人沮丧的是,微软的文档似乎都没有承认这种单播的名字parsing方法 – 你读的所有内容都只涉及到广播或WINS服务器消息。 说到这一点,无论是工作系统还是非工作系统,都是按照ipconfig /all混合模式运行的,而且我已经明确地设置了启用NetBIOS over TCP / IP的接口,这没有任何帮助。 我通过netstat -an看到内核正在侦听UDP端口137,但这些消息没有得到答复。
有什么地方会导致我看到的行为? 这似乎是最可能的答案,但我的search没有任何结果。
我现在还观察到, 如果查询是在同一个子网中的另一个IP上,UDP数据包就会被传输。 所以,这是重要的。 但是我不知道为什么某些主机的行为是不同的。 为什么我的一些系统只为本地子网上的IP发送(并响应)用于NetBIOS-NS的UDP数据包?