From 682f8ffdd7cd71b77277719b114d4ca813175da4 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 21 May 2018 11:47:17 +0200 Subject: T588: Configurable Negative TTL caching in forwarder --- interface-definitions/dns-forwarding.xml | 14 ++++++++++++-- src/conf_mode/dns_forwarding.py | 10 +++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/interface-definitions/dns-forwarding.xml b/interface-definitions/dns-forwarding.xml index 273d7777b..5b69ecc81 100644 --- a/interface-definitions/dns-forwarding.xml +++ b/interface-definitions/dns-forwarding.xml @@ -1,7 +1,5 @@ - - @@ -92,6 +90,18 @@ + + + Maximum amount of time negative entries are cached + + 0-7200 + Seconds to cache NXDOMAIN entries + + + + + + Domain Name Server (DNS) diff --git a/src/conf_mode/dns_forwarding.py b/src/conf_mode/dns_forwarding.py index a04726da0..f5ad2e482 100755 --- a/src/conf_mode/dns_forwarding.py +++ b/src/conf_mode/dns_forwarding.py @@ -43,6 +43,9 @@ non-local-bind=yes # cache-size max-cache-entries={{ cache_size }} +# negative TTL for NXDOMAIN +max-negative-ttl={{ negative_ttl }} + # ignore-hosts-file export-etc-hosts={{ export_hosts_file }} @@ -65,11 +68,12 @@ forward-zones-recurse=.={{ name_servers | join(';') }} """ default_config_data = { - 'cache_size' : 10000, + 'cache_size': 10000, 'export_hosts_file': 'yes', 'listen_on': [], 'interfaces': [], 'name_servers': [], + 'negative_ttl': 3600, 'domains': [] } @@ -100,6 +104,10 @@ def get_config(): cache_size = conf.return_value('cache-size') dns['cache_size'] = cache_size + if conf.exists('negative-ttl'): + negative_ttl = conf.return_value('negative-ttl') + dns['negative_ttl'] = negative_ttl + if conf.exists('domain'): for node in conf.list_nodes('domain'): server = conf.return_values("domain {0} server".format(node)) -- cgit v1.2.3