これにはキャッシュ専用のDNSがあります。平均ネットワーク待ち時間を減らすために、キャッシュされたレコードのTTLフィールドをオーバーライドしたいと思います。
理想的には、SOAデータをオーバーライドする構成のどこかにTTLを設定できます。
これは可能ですか?
そうでない場合:バインド9より前に必要な機能を備えたプロキシDNSを配置する(または完全に切り替えること)も、実行可能なソリューションになる可能性があるため、答えが許可されます。
PS私は確かにこれが悪い解決策であることを認めています。しかし、すべてのルールには例外があり、これがその1つです。私のネットワークの詳細ではなく、実際の質問に集中してください。
答え1
BINDが答えの最小TTL変更をグローバルに許可するかどうかは不明であり、この答えはソースコードをパッチする以外は信頼できません。
この記事では、いくつかのヒントを提供します。https://serverfault.com/questions/113954/how-can-i-override-ttl-of-an-internet-address
ただし、BINDの代わりにこれらのいずれかを使用することも、BINDのDNSフォワーダとして使用することもできますdnsmasq
。Unbound
dnsmasq
--min-cache-ttl=短いTTL値をキャッシュするときに指定された時間まで拡張します。 TTL値を人為的に拡張することは一般的に悪い考えであり、妥当な理由があり、何が行われているのかを知らない限り、実行しないでください。 Dnsmasqは、再コンパイルしない限り、このオプションの値を1時間に制限します。
拘束されない
cache-min-ttl: <seconds> Time to live minimum for RRsets and messages in the cache. Default is 0. If the minimum kicks in, the data is cached for longer than the domain owner intended, and thus less queries are made to look up the data. Zero makes sure the data in the cache is as the domain owner intended, higher values, especially more than an hour or so, can lead to trouble as the data in the cache does not match up with the actual data any more.