我正在设置 DNS(绑定)服务器,默认情况下 /etc/named.conf 具有以下条目:
zone "." IN {
type hint;
file "named.root";
};
zone "localdomain." IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost." IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "255.in-addr.arpa." IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa." IN {
type master;
file "named.zero";
allow-update { none; };
};
当我尝试启动时named
,它失败了,因为这 5 个文件(named.root、named.zero、named.broadcast、localhost.zone 和 localdomain.zone)在此服务器上的任何位置都不存在。所以我删除了这些条目并named
开始正常运行。 DNS 正在按预期工作。我做了一些研究,发现这些文件用于解析localhost
域。我检查了几个其他 DNS 服务器,发现这些文件基本上有指向本地主机的记录A
。NS
我的问题是:
如果我在没有这些文件的情况下继续在生产环境中运行此 DNS 可以吗?有什么副作用?
我的
named.ca
服务器里有,但是没有named.root
。我检查了另一个 DNS 服务器(这两个文件都存在),发现它们具有相同的内容(指向根名称服务器的记录。我可以只使用named.ca,因为它具有根名称服务器条目吗?是named.root
已弃用的版本named.ca
吗?我没有在 中设置转发器
named.conf
,但外部域都解析得很好。我还需要某种货运代理吗?我们其他一些较旧的 DNS 服务器设置了转发器,该转发器指向我们拥有服务器的机架空间。
答案1
首先,如果您的发行版提供或安装了named.conf
引用这些区域文件的默认文件,那么它们肯定应该存在于您的系统上。也许您应该重新安装该软件包? (或者你是从源安装的?)
如果您的 DNS 服务器仅具有权威性
(您正在谈论解析外部域,所以我认为情况并非如此。)
您绝对不需要“占位符”区域“localhost”、“localdomain”、“0.in-addr.arpa”和“255.in-addr.arpa”。他们永远不会被询问。
我不确定根提示区域。我想知道即使在仅权威配置中,BIND 是否仍然不会使用它。我宁愿把它留在里面。
如果您的 DNS 服务器启用了递归
您确实需要根提示区域。 BIND 具有内置默认值,这就是为什么即使没有它它仍然可以为您工作,但根提示信息确实会不时更改,并且内置提示可能会过时。尽管根提示不太可能发生太大变化,以致内置提示和当前根服务器位置之间不再有任何重叠,并且您的服务器开始出现故障,但您仍然应该有一个根提示文件并使其保持最新状态(非常)偶尔约会。
至于其他占位符区域,如果您没有它们,则不会出现任何问题,但这意味着,如果您的服务器收到对这些域下的名称的“垃圾”查询,它会将它们转发到 Internet,而使用占位符区域时,它会将它们转发到 Internet。本来可以更快地得出否定答案。
根提示文件名
named.root
关于关于根提示文件名的第二个问题,无论您调用该文件还是其他任何内容都没关系named.ca
,只要您named.conf
使用正确的文件名引用它即可。根提示不会经常更改,这就是为什么您注意到另一台服务器具有相同的副本。
如上所述,您应该使用根提示文件而不是依赖于编译的默认值。
货运代理
如果需要,您可以配置转发器。它将保留少量流量远离根服务器,并将其直接发送到上游服务器,但这对于少数服务器来说并不是什么大问题。配置转发器、使其保持最新状态以及转发器发生故障时服务器出现故障的风险通常是不值得的。如果您正在管理数百或数千台服务器,或者您正在创建在最终用户系统上使用的默认配置,那么我肯定会考虑它。