参考文献

参考文献

私は 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 情報が含まれているはずです。

参考文献

関連情報