
私は Bind を使用する企業 DNS サーバーを持っています。3
台の Consul サーバーがあります。Consul はローカルホストのポート 8660 で DNS をリッスンしています。これらのサーバーでは、パブリック IP ポート 53 からローカルホストの Consul に DNS 要求を転送する DNSmasq も持っています。
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 のドキュメントで「1 日目」というタイトルで説明されています。☺
構成オプションを設定しますsoa.min_ttl
。これがないと、キャッシュ DNS プロキシは「そのような名前はありません」および「データはありません」という情報がどのくらい続くか分からず、独自のベストエフォート推測が提供されます。これは、キャッシュ DNS プロキシのせいであると少し誤解されていますが、そうではありません。「そのような名前はありません」および「データはありません」という応答データグラムには、(合成された) SOA リソース レコードに TTL 情報が含まれているはずです。
参考文献
- https://learn.hashicorp.com/consul/security-networking/dns-caching
- ジョナサン・デ・ボイン・ポラードフィールド
MINIMUM
「」。SOA リソース レコードのフィールドのセマンティクスよくある質問。