web-dev-qa-db-ja.com

短期間にのみキャッシュするローカルDNSリゾルバーを構成する

新しいドメインがホスティング用にセットアップされているときに正しく構成されていることを確認するために使用されるアプリケーションに取り組んでいます。この一部は、SPF、DomainKey、DKIMレコードなどの有効性をチェックします。

現在、これらのレコードのほとんどにデフォルトのTTL 1時間)を使用しています。レコードの1つに誤りが見つかることがあるため、更新する必要があります。現在、テストしたばかりの場合は、ドメインシステムのリゾルバーのキャッシュされたレコードが期限切れになるのを待ってから、アプリケーションで正しいことを確認する必要があります(はい、手動で確認できますが、アプリケーションを作成したので、そうする必要はありません)。

システム上にDNSサーバーをセットアップして、通常のキャッシュリゾルバーとして機能させたいと思います。ただし、レコードは最大5分などの設定時間で期限切れになるか、まったくキャッシュされません。すべてのドメインが通常のネームサーバーでDNSをホストしているわけではないため、このシステムは、アップストリームリゾルバー(キャッシュされたレコードのみを使用)を使用するのではなく、権限のあるネームサーバーにドメインを照会する必要があります。

このマシンは現在DNSを実行していないので、BINDまたはdjbdns(または適切な提案がある場合は他の何か)をインストールできます。

2
Dave Forgac

ご意見、ご提案ありがとうございました。彼らは私に次の解決策を教えてくれました:

  • Bind9をインストールします。
  • フォワーダーが空白になるように/etc/bind/named.conf.optionsを編集します(サーバーが別のキャッシュサーバーのキャッシュレコードを使用しないようにします)。
  • max-cache-ttlおよびmax-ncache-ttlオプションを300秒に設定します。 ( 参照
  • サーバーが他のシステムによって使用されないように、listen-on-v6 { any; };listen-on-v6 { localhost; };に変更します。 ( 参照
  • システムの/etc/resolv.confを編集してnameserver 127.0.0.1のみを含めるようにし、サーバー上のアプリが新しいローカルサーバーを使用するようにします。

Bind9を再起動し、機能していることを確認しました。

dev:~# Dig serverfault.com

; <<>> Dig 9.5.1-P2 <<>> serverfault.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63591
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;serverfault.com.               IN      A

;; ANSWER SECTION:
serverfault.com.        300     IN      A       69.59.196.212

;; AUTHORITY SECTION:
serverfault.com.        300     IN      NS      ns21.domaincontrol.com.
serverfault.com.        300     IN      NS      ns22.domaincontrol.com.

;; Query time: 190 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jul 18 03:06:24 2009
;; MSG SIZE  rcvd: 101

Serverfault.comのレコードで公開されているTTLは3600ですが、TTLは300と表示されています。

10
Dave Forgac

あなたが言うように、BINDオプション句または開発サーバーにのみ適用されるビューのいずれかで、最長のTTLをmax-cache-ttlおよびmax-ncache-ttlで制限できます。 。

ただし、これはすべてのルックアップのTTLに影響するため、運用サーバーのネットワーク/負荷が増加し、DNSの復元力が低下します。

BIND 9.3以降では、1つのドメインのキャッシュをクリアしたいだけの場合は、次のことができます。

rndc flushname <domain>

これにより、サブドメインではなく、正確なドメインのすべてのレコードがフラッシュされます。 rndcの出力を参照してください。

もちろん、longenしたい場合は、何らかの理由でTTL、つまり 別の質問

0
Cedric Knight

(djbdnsスイートの)dnscacheを使用して、5分ごとに強制終了しないのはなぜですか?

Djbdns、特にdnscacheを使用したことがない方のために説明します。これは、ディスク上に何も保持しない再帰リゾルバーです。また、djbは、プログラムを自動的に監視する一連のツールを作成しました。プログラムが停止すると、監視プログラムは自動的に(そして即座に)再起動します。

5分ごとにそれを殺し、ボブはあなたの叔父です...

0
chris