使用Windows 2008 R2 DNS:
我们有一个正向查找区域:
somerealdomain.com us-wil | A | 10.10.0.1 us-chi | A | 10.10.0.2 us-day | A | 10.10.0.3 us-sea | A | 10.10.0.4 us-sf | A | 10.10.0.5 us-ny | A | 10.10.0.6 give | A | 10.10.0.7 me | A | 10.10.0.8 test | A | 10.10.0.9
如果我为其中的任何一个做NSLookup ,他们显然会正确指向内部IP。
现在,如果我想要任何不存在的子域来解决使用我们的转发8.8.8.8,8.8.4.4等提供的外部DNS我怎么能做到这一点? 说,我想解决get.somerealdomain.com这是不包括在正向查找区域,但可以在公共DNS服务器上parsing?
我需要这个,所以如果有人search我们没有包括在我们的正向查找区域的子域,它将会出去一个公共的DNS服务器,并解决。 我认为这会发生在默认情况下,因为它与任何其他领域,我们没有写的logging,但因为我们有somrealdomain.com作为一个正向查找区域,没有写入logging的任何子域只是死而不是问外部DNS。 为什么? 我该如何解决这个问题?
DNS要求只有一个给定区域的实例(该区域可以由多个授权服务器提供服务,但只允许一个区域实例)。 你根本无法得到一个DNS服务器来首先查询本地转发区域(即本地定义,无论是主区域还是从属区域),然后查询其他DNS服务器,如果没有find匹配的条目。 你实际上正在覆盖你的本地服务器上的somerealdomain.com的定义(就其而言,该区域的公共版本不存在)。
有一些解决方法可能。 如果您有权访问公共区域文件(直接或通过区域传输),则合适的脚本可以使用本地未覆盖的公用条目来回填您的本地区域。 这不是微不足道的,需要一些深入的知识。
另一种方法是在您的DNS服务器前放置一个过滤DNS代理 – 用于渗透testing的DNS代理types,可以根据查询的内容将查询转发到不同的DNS服务器(或直接假回答 – 这是有效地你在做什么)。
最后,您可以使用DNScaching(如dnsmasq)(与过滤DNS代理的原理相同) – 请参阅此答案以了解详细信息。
通常,从较高域指向子域。 您的DNS服务器认为它是somerealdomain.com的权威。 当收到subdomain.somerealdomain.com的请求时,它会检查自己的logging,并说“这不存在,我应该知道我是父亲”。
你需要一个logging来指向你的子域的DNS服务器。 通常这涉及委托子域(或子域)到另一个DNS服务器。 我相信你在DNS控制台中右键单击域并select“新的委派”。 它也可以用dnscmd命令完成。