diff options
-rw-r--r-- | interface-definitions/dns-forwarding.xml | 14 | ||||
-rwxr-xr-x | 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 @@ <?xml version="1.0"?> - <!-- DNS forwarder configuration --> - <interfaceDefinition> <node name="service"> <children> @@ -92,6 +90,18 @@ <multi/> </properties> </leafNode> + <leafNode name="negative-ttl"> + <properties> + <help>Maximum amount of time negative entries are cached</help> + <valueHelp> + <format>0-7200</format> + <description>Seconds to cache NXDOMAIN entries</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 0-7200"/> + </constraint> + </properties> + </leafNode> <leafNode name="name-server"> <properties> <help>Domain Name Server (DNS)</help> 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)) |