web-dev-qa-db-ja.com

BIND DNS高性能キャッシュ

多くのドメインの解決に使用される小さなサーバーでバインドを実行しています。私の主な目標は、ドメインの高速解決とメモリ使用量の削減です。

すべてのTLDのネームサーバーでローカルゾーンのようなものを使用したいDig . axfr @g.root-servers.net.

現在起こっていることは、キャッシュ制限に達すると、バインドがキャッシュを停止し、解決するたびにルートサーバーのDNSがヒットすることです。 axfr出力を使用してbindにNS情報をそこから取得するように指示する方法はありますか?

axfrゾーンの例

「。」を追加しようとしました。 axfr出力のマスターゾーンですが、機能しません。

zone "." IN {
    type master;
    file "axfrOutput.ca";
};

現在のnamed.conf

options {
    listen-on port 53 { 127.0.0.1; };
    listen-on-v6 port 53 { ::1; };
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { localhost; };
    max-cache-size 100m;
    cleaning-interval 1;    // clean cache every 1 minutes
    max-cache-ttl 120;        // limit cached record to a 60s TTL
    max-ncache-ttl 120;       // limit cache neg. resp. to a 60s TTL
    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";
};

zone "." IN {
     type hint;
     file "named.ca";
};
3
nacholibre

高いパフォーマンスと低いメモリ使用量+短いキャッシュ時間は、相反する要件です。

ただし、 max-cache-size の制限に達したときに何が起こるかは、キャッシュ(LRU)からエントリを(時期尚早に)追い出すことです。

短いTTL( max-cache-ttl )を強制すると、パフォーマンスが犠牲になり、収束が速くなります。 (これは、よく使用され、LRUスキームで高い優先度を持つものを捨てるので、おそらく悪い考えです。)

cleaning-interval は廃止されており、最新のBINDバージョンでは効果がありません。


負荷が非常に高く、ルートゾーンへのクエリを特に最適化したい場合は、通常のヒントゾーンの代わりに.の独自のスレーブゾーンを使用できます。

ICANNは ルートゾーンへのAXFRアクセス およびその他のいくつかのゾーンを提供します。

8