我正在对 DNS 转发进行一些研究,并且在一些项目的信息上遇到困难:
DNS 优先转发和仅转发有什么区别?网上的信息好像不是那么清楚。
如果在 DNS 服务器的转发选项卡上配置了多个 DNS 转发器,那么在什么条件下会查询第二个转发器?
谢谢
答案1
DNS 服务器通常有一组根提示。即,列表中大约有十几个服务器拥有根.
区域。因此,如果它需要解析 DNS 名称而不进行转发,它将从根开始并进行查询,直到找到答案。也许可以向根服务器询问 的名称服务器.org
,.org
向服务器询问处理 的服务器.example.org
,最后向.example.org
服务器询问 的结果是什么www.example.org
。
当您启用仅转发时,此过程将完全禁用,所有 DNS 请求都将转发到其他服务器。因此,如果您转发到8.8.8.8
该服务器,则就是这样。您将请求发送到8.8.8.8
,如果您收到有效回复,则返回该回复,否则将失败。
当你启用了转发功能,但未设置仅转发时,你的 DNS 服务器将尝试将请求转发到另一台服务器,如果失败或者超时,那么请求将回退到使用从根提示开始的标准方法进行解析。
请记住,NXDOMAIN 回复不是失败。失败是 SERVFAIL、超时或类似情况。
答案2
关于forward only
/forward first
这在手册的转发部分:
向前
此选项仅在转发器列表不为空时才有意义。第一的默认情况下,服务器会先查询转发器 — 如果转发器没有回答问题,服务器将自行寻找答案。如果仅有的指定后,服务器将仅查询转发器。
如何使用列表中的多个条目forwarder { server1; server2; };
似乎并未在手册中详细说明。
话虽如此,单词 在 街道建议转发器选择的工作方式与选择非常相似NS
(也许完全相同?),这将非常有意义。
在这种情况下,服务器的列出顺序并不重要,而是所有服务器都在一定程度上被使用,对不同服务器的查询的往返时间 (RTT) 被跟踪,并且最快的服务器被优先考虑并且将接收大部分查询,而故障或无响应的服务器将受到非常高的“RTT”的惩罚。