递归转发绑定 DNS 服务器未从缓存中应答

递归转发绑定 DNS 服务器未从缓存中应答

问题陈述

我有一个正在运行的绑定缓存和转发服务器几乎正如预期的那样。所有查询都已转发,其 TTL 已缓存。乍一看,一切似乎都很正常,直到我发现我的 VPN 的响应时间从未低于 150 毫秒。

执行 tcpdump 后,我发现,尽管 bind 很清楚 TTL 大于 0(本例中 TTL 为 14000),解析器仍然转发每个请求。响应的 TTL仍按预期减少, 但每一个无论缓存记录中剩余的 TTL 如何,单个请求仍会向上游转发。

如果我禁用转发,此行为将停止并且缓存将按预期工作。

版本

Bind 9.9.4-29  (Redhat forked)
OS: CentOS 7

配置的相关部分

allow-query { local; };
recursion yes;
allow-recursion { local; };
max-cache-size unlimited;
stacksize unlimited;
datasize unlimited;

    zone "." IN {
    type forward;
    forward first;
    forwarders { 192.168.120.3; 192.168.120.2; };
    };

我尝试过这两种方法forward first;forward only;该解析器几乎没有负载,并且有几 GB 的内存可用。在任何给定时间,它缓存的记录都不会超过几百条。

我对 bind 中的行为的期望是否错误?使用 Unbound 时我没有看到此行为,但出于其他原因我想切换回 bind。

答案1

解决了

键盘和椅子之间存在问题。

什么地方出了错

在我的故障排除过程中,我在本地和上游解析器之间来回切换 /etc/resolv.conf。

根本原因

只剩一杯咖啡了。我以为我已经切换回本地解析器了,但事实并非如此。抱歉,误报。

相关内容