diff options
author | Christian Poessinger <christian@poessinger.com> | 2019-07-14 10:59:07 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2019-07-21 17:47:25 +0200 |
commit | c9787fb53c067ee73149431306d3a561cc37633c (patch) | |
tree | 9b9c7976eff8a97f7b67cdee5def9cd8f30aea36 | |
parent | 99ab24d440d4ee3969679b6c023a377c4a94b9e1 (diff) | |
download | vyos-1x-c9787fb53c067ee73149431306d3a561cc37633c.tar.gz vyos-1x-c9787fb53c067ee73149431306d3a561cc37633c.zip |
[dns-forwarding] T1333: handle domain forward and general recursion in one configuration line
In the past we used the PowerDNS cofniguration option forward-zones and
forward-zones-recurse, but only the latter one sets the recursion bit in
the DNS query.
Thus all recursions have been moved to this config statement.
(cherry picked from commit 5886dd27cbc65f8cda04752bbd39a960b0887523)
-rwxr-xr-x | src/conf_mode/dns_forwarding.py | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/conf_mode/dns_forwarding.py b/src/conf_mode/dns_forwarding.py index aab389074..3ca77adee 100755 --- a/src/conf_mode/dns_forwarding.py +++ b/src/conf_mode/dns_forwarding.py @@ -65,21 +65,19 @@ local-address={{ listen_on | join(',') }} # dnssec dnssec={{ dnssec }} -{% if name_servers -%} -# name-server -forward-zones-recurse=.={{ name_servers | join(';') }} -{% else %} -# no name-servers specified - start full recursor -{% endif %} - -# domain ... server ... -{% if domains -%} - -forward-zones-recurse={% for d in domains %} +# forward-zones / recursion +# +# statement is only inserted if either one forwarding domain or nameserver is configured +# if nothing is given at all, powerdns will act as a real recursor and resolve all requests by its own +# +{% if name_servers or domains %}forward-zones-recurse= +{%- for d in domains %} {{ d.name }}={{ d.servers | join(";") }} -{{- "," if not loop.last -}} -{% endfor %} - +{{- ", " if not loop.last -}} +{%- endfor -%} +{%- if name_servers -%} +{%- if domains -%}, {% endif -%}.={{ name_servers | join(';') }} +{% endif %} {% endif %} """ @@ -248,7 +246,6 @@ def generate(dns): return None tmpl = jinja2.Template(config_tmpl, trim_blocks=True) - config_text = tmpl.render(dns) with open(config_file, 'w') as f: f.write(config_text) |