
我有一個使用 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 資訊。
進一步閱讀
- https://learn.hashicorp.com/consul/security-networking/dns-caching
- 喬納森·德博因·波拉德“
MINIMUM
場」。SOA 資源記錄欄位的語意。經常給的答案。