forwarders
在主区域中设置选项的目的是什么?
在 中named.conf
它看起来像这样:
zone "master.zone"
{
type master;
file "zones/master/zone/master.zone";
key-directory "zones/master/zone/keys";
allow-update {
admin;
};
forward only;
forwarders {
8.8.8.8;
};
};
我了解前向区域的重要性forwarders
和forward
选项,但我不知道如何在主区域中设置它们。
谢谢。
答案1
实际上会产生影响的情况是当您收到某个位于此区域之下但不属于此区域的事物的递归请求时。
具体来说:
- 您运行的是混合权威+递归名称服务器
- 你有一个权威区域(主区域或从区域),例如
example.com
- 您在该区域中有一些子域名被委托到其他地方,例如
foo.example.com. IN NS ns.other.example.
- 您收到递归请求
foo.example.com
或其下的内容(该名称不属于您的区域,因为foo.example.com
已在其他地方委派)
在这种情况下,forwarders { ... };
权威区域上的值是您可以用来定义哪些(如果有)转发器应用于解析其下方不属于您自己的任何区域的名称的最具体的位置。
除了这种特殊情况之外,我不知道该设置是否有任何效果。
答案2
您的名称服务器无法在本地解析的任何查询都将发送到该地址,实际上是要求它代表您的服务器解析查询(即递归询问)。
这样做通常是出于网络原因 - 比如说,您不希望公司 DNS 直接暴露在互联网上,您可以创建一个转发器到 DMZ 名称服务器,它将代表它查询互联网。
答案3
当 bind 没有关于仍属于区域权限的一部分的特定域的信息时,将使用区域文件中的转发器。
例如,如果您有区域foo.com
,并且您收到 的请求user3.bar.foo.com
,则转发器将被查询结果应该是什么,除非您有该bar.foo.com
域的记录。您将收到请求,因为您是该foo.com
域的权威服务器。
现在,这可能最有助于“取消设置”之前设置的转发器。使用前面的示例,如果您使用 取消设置转发器,则将查询 的forwarders { };
NS 服务器,bar.foo.com
而不是您设置的任何转发器!这意味着你不会陷入无限循环:
User's DNS Server -> foo.com DNS Server -> forwarder (i.e. Google DNS) --|
^-------------------------------------------|
答案4
它成功的可能性很小。因为这意味着 8.8.8.8 服务器在此主区域声明上拥有子域的委托。
8.8.8.8 不是权威服务器。此 BIND 配置没有意义。