我们最近发生了一起安全事故,需要重建网络。目前,我们只是将一切恢复原状,直到我们有更多时间制定更好的前进计划。
我们有许多地点没有自己的服务器基础设施,并使用我们的主要位置进行 DNS。这些远程站点位于 ADSaS 的同一站点。这些站点的 VPN 隧道只能看到我们的主要位置。我们还有其他站点,其中有域控制器,远程站点不需要看到这些站点。
当我们去一台机器上设置它的 DNS 服务器并查找我们的域时,查询结果将返回全部我们组织中的域控制器。这包括它无法看到的服务器。经过几次尝试后ipconfig /release
,ipconfig /renew
它找到了正确的域控制器,我们就可以继续前进了。
我在这些机器上打开了 DNS 客户端日志,得到了这样的结果...
对名称 ourdomain.net、类型 1、接口索引 0 和网络索引 0 的查询响应返回 0,结果为 10.20.13.1;10.20.20.50;10.20.40.51;10.20.68.2;10.20.66.2;10.20.66.51;
并且每次发布更新后结果的顺序都会发生变化。
当我查看我们的网站的 NS 时看起来正确。我试图保持信息精简,因为我不知道包含哪些内容是有用的,而且太冗长会让一些人望而却步。
为什么 DNS 客户端被提供其站点之外的域控制器 IP?这些都是有效的域控制器,但并非适用于所有 PC。其中一些与它们自己的站点相关。
答案1
这就是 DNS 的工作方式。DNS 不具备站点感知能力 - 特别是不具备 AD 站点感知能力。
现在,如果配置正确,DNS服务器就可以子网使用网络掩码排序来感知。如果我没记错的话,默认情况下启用此选项。此外,默认情况下,网络掩码排序基于 C 类 (/24) 子网。但是,即使启用了网络掩码排序,如果 A 记录的 IP 地址均不与请求客户端的 /24 子网完全匹配,全部将返回有效的 A 记录。您还会注意到(启用循环机制)这些响应将随着每个连续查询而轮换(与发出请求的 DNS 客户端无关)。
需要注意的是,网络掩码排序实际上并不考虑客户端的子网掩码,它只是检查请求者 IP 的前三个八位字节,如果它与任何响应的前三个八位字节匹配,则这些响应将返回到列表顶部。
将网络掩码敏感度从默认值 (/24) 更改为另一个子网的命令如下(示例详细说明设置 /16 子网掩码):
dnscmd /config /LocalNetPriorityNetMask 0x0000FFFF
--
我相信你想要完成的事情可以通过使用DNS 策略;这些需要在 Windows Server 2016 或更高版本上运行 DNS。您可以定义客户端子网,然后通过创建DNS 服务器查询解析策略,您可以指定当查询来自指定子网时将使用哪些 A 记录。