我想知道,如果一个根服务器可以委托一个区域的不同子区域到不同的域名服务器,其余的域名服务器。
例如,我有区域“东西”,“一些东西”,“任何东西”,“我有一些东西”,“我有一些东西”。 根区域文件应该如何,如果我想要以下行为:
每个查询“i.do.some.thing”和“* .i.do.some.thing”都转到nameserver a
每个查询“i.do.any.thing”和“* .i.do.any.thing”都转到nameserver b
对“some.thing”和“* .some.thing”的剩余查询转到nameserver c
对“any.thing”和“* .any.thing”的剩余查询转到nameserver d
对“thing”和“* .thing”的剩余查询转到nameserver e
这是可能的根名称服务器或只能使用authorative名称服务器吗?
不,根区域不能在已经委托给别处的东西的树中进一步下放。 至less不违反协议和创造奇怪的不一致。
每个区域的授权服务器可以委派任何子域,创build可以驻留在其他位置的新区域。
它是如何工作的例子:
根( . )区域代表example. 以ns.example.
example. 区代表foo.example. 到ns.foo.example.
foo.example. 区域代表bar.foo.example. 到ns.bar.foo.example.
等等
相反,如果你有这样的情况,根区域将为已经在其他地方委托的东西提供权限信息(这不是!),如下所示:
根( . )区域代表example. 以ns.example.
根( . )区域委托foo.example. 到ns.foo.example.
然后,你将会遇到这样一种情况:一个caching加热的parsing器服务器查找foo.example. 可能已经知道这个example. 在ns.example. 然后从这一点开始查询(并可能得到完全不同的响应),而具有冷藏caching的parsing器服务器将开始在根处查询并从那里获取委托信息(不应该能够共存的委托与第一个代表团)。
以上是不是你应该期望看到的东西,但我认为与buggy软件违反协议或在某种恶意攻击这种反应理论上可能发生。 (DNSSEC在涉及到攻击时会解决一些这样的问题。)
区域委派是主要的DNSfunction
在根区域文件中,您必须描述主机和子区域。
$ORIGIN thing. ; root domain @ IN NS ns.thing. ; who is responsible for root domain ns IN A 11.22.33.44 ; It's me itself so I have to add the "glue record" $ORIGIN any.thing. ; subdomain @ IN NS ns.any.thing. ; who is responsible for subdomain ns IN A 22.33.44.55 ; address of the ns.any.thing $ORIGIN some.thing. ; subdomain @ IN NS ns.some.thing. ; who is responsible for subdomain ns IN A 33.44.55.66 ; address of the ns.some.thing
然后你可以在子域的NS服务器上做任何你想要的事情,所有的请求都会由他们的子域进行。