我有一个Windows Server 2008 R2服务器托pipe公共网站。 我最近通过以下方法停用了“DNSrecursion”安全选项:
在服务器选项下的“高级”选项卡中的我的DNS服务器的属性中,我检查选项: 禁用recursion 。
现在我遇到了这样的问题,即DNS名称在本地不能parsing。 所以我无法打开google.com或microsoft.com,也没有其他的东西。
现在我发现我必须configuration一个拆分的DNSconfiguration,以便我有:
我目前的设置是这样的:

我有一个名为WIN-FOOBAR的服务器和一个名为foo.bar.com的域名,所以有两个条目_msdcs.foo.bar.com和foo.bar.com。
现在我有两个问题:
如果我禁用服务器选项中的recursion(例如在名为WIN-FOOBAR的父节点),那么我怎么能有两个区域,一个允许recursion,一个不是? Forward-Lookupzone条目是WIN-FOOBAR的子节点。 但是我没有看到一个选项来禁用单个区域的recursion。
我应该如何命名内部使用的第二个区域? 当前的区域是foo.bar.com ,我可以创build第二个区域并将其命名为foo.bar.com ,或者必须命名为不同的区域吗? 如果我把它命名为foo.local ,它是否仍然可以parsing查询到foo.bar.com ?
recursion是服务器设置,而不是区域设置。
如果DNS服务器只能访问内部客户端,那么您可以启用recursionfunction。
如果DNS服务器用于公共域名/区域,并且不被内部客户端使用,那么您可以完全禁用recursion,您不需要为您的公有域名创build一个区域,并确保您拥有在注册商注册的正确NSlogging。
如果DNS服务器同时被内部客户端使用,并且托pipe你的公共DNS区域,那么你做错了,你应该分开这两个。
此外,_msdcs区域的存在告诉我这个服务器是你的AD域的DNS服务器,在这种情况下,我强烈build议你不要使用这个服务器来托pipe你的公共DNS区域,并且你不要使这个服务器外部访问。
您不能使用Microsoft DNS服务器执行此操作。
你可以在BIND中使用acls来指定谁可以做recursion查询。
BIND9configuration代码示例:
acl "internal" { 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; } allow-query: 0.0.0.0/0; allow-recursion: "internal";