进一步阅读

进一步阅读

我有一个使用 Bind 的公司 DNS 服务器。
我有 3 台领事服务器。 Consul 正在监听本地主机端口 8660 的 DNS。在这些服务器上,我还使用 DNSmasq 将 DNS 请求从公共 IP 端口 53 转发到本地主机上的 Consul。

Consul的配置非常简单。我刚刚激活了 DNS 端口。当我在端口 8660 上检查本地 DNS 时,它工作正常。

每个consul服务器上DNSmasq的配置是:

server=/subdomain.example.com/127.0.0.1#8600
server=XX.XX.XX.XX (first ip of the corporate DNS)
server=XX.XX.XX.XX (second ip of the corporate DNS)
listen-address=XX.XX.XX.XX (ip of the server)

企业DNS的配置为:

zone "subdomain.example.com" {
    type forward;
    forward only;
    forwarders {
        XX.XX.XX.XX; (ip of the first consul)
        XX.XX.XX.XX; (ip of the second consul)
        XX.XX.XX.XX; (ip of the third consul)
    };
};

当从 consul 添加或删除某些条目时,公司 DNS 上的 DNS 区域会立即更新。

当某个服务的所有条目都从 consul 中删除时,企业 DNS 会删除其表中的所有条目(这是正常的)。但如果再次创建条目,consul 的 DNS 会更新,但企业 DNS 不会更新。要更新公司 DNS,我应该执行命令rndc flushtree subdomain.example.com

答案1

这在 Consul doco 的标题“day 1”下得到了解决。 ☺

设置soa.min_ttl配置选项。如果没有它,缓存 DNS 代理不知道“没有这样的名称”和“没有数据”信息应该持续多久,您将得到他们自己的尽力猜测。这被稍微歪曲为缓存 DNS 代理的错误。事实并非如此。 “无此名称”和“无数据”响应数据报应在(合成的)SOA 资源记录中包含 TTL 信息。

进一步阅读

相关内容