我正在运行绑定在一个小型的服务器用于解决大量的域名,我的主要目标是快速解决域名和低内存使用情况。
我想用所有顶级域名的名称服务器来使用本地区域dig . axfr @g.root-servers.net. dig . axfr @g.root-servers.net.
现在发生的事情是当高速caching限制被命中,绑定停止caching,并为每个决定根服务器DNS命中。 有没有办法使用axfr输出,并告诉绑定从那里获得tld的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"; };
高性能和低内存使用率+caching时间短是冲突的要求。
但是,遇到max-cache-size限制时应该发生的情况是它应该从高速caching(LRU)开始(过早地)驱逐条目。
强制更短的TTL( max-cache-ttl )牺牲了性能,有利于更快的收敛。 (可能是一个坏主意,因为这会抛出那些用得很多的东西,否则在LRUscheme中会有很高的优先级。)
cleaning-interval已经过时,并且在现代的BIND版本中没有效果。
如果你有很高的负载,并想专门优化查询到根区域,你可以有自己的奴隶地区. 而不是正常的提示区域。
ICANN提供对根区域以及其他区域的AXFR访问