From 17bce754270301b951d0af9c80bfbf08872ec5af Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Tue, 15 May 2018 20:46:38 +0200 Subject: bugfix: remove whitespaces in generated 'powerdns/recursor.conf' --- src/conf-mode/vyos-config-dns-forwarding.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/conf-mode/vyos-config-dns-forwarding.py') diff --git a/src/conf-mode/vyos-config-dns-forwarding.py b/src/conf-mode/vyos-config-dns-forwarding.py index df273b321..5556c1693 100755 --- a/src/conf-mode/vyos-config-dns-forwarding.py +++ b/src/conf-mode/vyos-config-dns-forwarding.py @@ -31,7 +31,6 @@ config_file = r'/etc/powerdns/recursor.conf' # especially in the semicolon-separated lists of name servers. # Please be careful if you edit the template. config_tmpl = """ - ### Autogenerated by vyos-config-dns-forwarding.py ### # Non-configurable defaults @@ -47,19 +46,19 @@ max-cache-entries={{ cache_size }} export-etc-hosts={{ export_hosts_file }} # listen-on -local-address= {{ listen_on | join(',') }} +local-address={{ listen_on | join(',') }} # domain ... server ... {% if domains -%} {% for d in domains -%} -forward-zones = {{ d.name }} = {{ d.servers | join(";") }} +forward-zones={{ d.name }} = {{ d.servers | join(";") }} {% endfor -%} {% endif %} # name-server -forward-zones-recurse=.= {{ name_servers | join(';') }} +forward-zones-recurse=.={{ name_servers | join(';') }} """ -- cgit v1.2.3 From 86771ef232f45058f8cf8c5848ef2e805afadd1b Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Tue, 15 May 2018 20:58:29 +0200 Subject: bugfix: vyos-config-dns-forwarding.py: adding name-server into dictionary --- src/conf-mode/vyos-config-dns-forwarding.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/conf-mode/vyos-config-dns-forwarding.py') diff --git a/src/conf-mode/vyos-config-dns-forwarding.py b/src/conf-mode/vyos-config-dns-forwarding.py index 5556c1693..9f3bb7aee 100755 --- a/src/conf-mode/vyos-config-dns-forwarding.py +++ b/src/conf-mode/vyos-config-dns-forwarding.py @@ -52,7 +52,7 @@ local-address={{ listen_on | join(',') }} {% if domains -%} {% for d in domains -%} -forward-zones={{ d.name }} = {{ d.servers | join(";") }} +forward-zones={{ d.name }}={{ d.servers | join(";") }} {% endfor -%} {% endif %} @@ -112,7 +112,7 @@ def get_config(): if conf.exists('name-server'): name_servers = conf.return_values('name-server') - dns.setdefault('name_servers', name_servers) + dns['name_servers'] = dns['name_servers'] + name_servers if conf.exists('system'): conf.set_level('system') -- cgit v1.2.3 From 560411eae7be70e5ef44edbdb5000aa311fdae8f Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Tue, 15 May 2018 21:16:11 +0200 Subject: bugfix: DNS domain forward server syntax When generating a configuration for DNS domain forward to a local server with 'set service dns forwarding domain foo.com server 1.1.1.1' this resulted in # domain ... server ... forward-zones=bar.com = 2.1.1.1;2.1.1.2 forward-zones=foo.com = 1.1.1.1;1.1.1.2 On PowerDNS recursor restart the last line won and it totally forgot about 'bar.com'. This could be seen from the logfiles that only one domain was loaded: Redirecting queries for zone 'foo.com.' to: 1.1.1.1:53, 1.1.1.2:53 The manual at https://doc.powerdns.com/3/recursor/settings/#forward-zones shows that all domains have to be configured on one 'forward-zones=' line. In the above example this has to result in: forward-zones=bar.com=2.1.1.1;2.1.1.2, foo.com=1.1.1.1;1.1.1.2 A subsequent check within the logfiles reveal that it's now working: Redirecting queries for zone 'bar.com.' to: 2.2.2.2:53, 2.2.2.1:53 Redirecting queries for zone 'foo.com.' to: 1.1.1.1:53, 1.1.1.2:53 --- src/conf-mode/vyos-config-dns-forwarding.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/conf-mode/vyos-config-dns-forwarding.py') diff --git a/src/conf-mode/vyos-config-dns-forwarding.py b/src/conf-mode/vyos-config-dns-forwarding.py index 5494d07aa..be48cde60 100755 --- a/src/conf-mode/vyos-config-dns-forwarding.py +++ b/src/conf-mode/vyos-config-dns-forwarding.py @@ -51,9 +51,10 @@ local-address={{ listen_on | join(',') }} # domain ... server ... {% if domains -%} -{% for d in domains -%} -forward-zones={{ d.name }}={{ d.servers | join(";") }} -{% endfor -%} +forward-zones={% for d in domains %} +{{ d.name }}={{ d.servers | join(";") }} +{%- if loop.first %}, {% endif %} +{% endfor %} {% endif %} @@ -184,7 +185,7 @@ def generate(dns): if dns is None: return None - tmpl = jinja2.Template(config_tmpl) + tmpl = jinja2.Template(config_tmpl, trim_blocks=True) config_text = tmpl.render(dns) with open(config_file, 'w') as f: -- cgit v1.2.3