diff options
author | Daniil Baturin <daniil@baturin.org> | 2018-11-12 16:57:22 +0100 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2018-11-12 16:57:22 +0100 |
commit | 559ac84addd27c135f5799304434ad3ef872555d (patch) | |
tree | 5d06f61b62ff69760d83f63ca42927f7f61d1d1f /src/conf_mode/dns_forwarding.py | |
parent | 7e6e5a211325b8f00e58a01a67ad2c01d073ff2a (diff) | |
parent | 718d9a123c2ba72b87d7f6e48a5e6d83fa86d494 (diff) | |
download | vyos-1x-559ac84addd27c135f5799304434ad3ef872555d.tar.gz vyos-1x-559ac84addd27c135f5799304434ad3ef872555d.zip |
Merge branch 'current' into crux
Diffstat (limited to 'src/conf_mode/dns_forwarding.py')
-rwxr-xr-x | src/conf_mode/dns_forwarding.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/conf_mode/dns_forwarding.py b/src/conf_mode/dns_forwarding.py index 43be9d526..c21a91a30 100755 --- a/src/conf_mode/dns_forwarding.py +++ b/src/conf_mode/dns_forwarding.py @@ -36,9 +36,11 @@ config_tmpl = """ # Non-configurable defaults daemon=yes threads=1 -allow-from=0.0.0.0/0 +allow-from=0.0.0.0/0, ::/0 log-common-errors=yes non-local-bind=yes +query-local-address=0.0.0.0 +query-local-address6=:: # cache-size max-cache-entries={{ cache_size }} @@ -114,10 +116,10 @@ def get_config(): if conf.exists('domain'): for node in conf.list_nodes('domain'): - server = conf.return_values("domain {0} server".format(node)) + servers = conf.return_values("domain {0} server".format(node)) domain = { "name": node, - "servers": server + "servers": bracketize_ipv6_addrs(servers) } dns['domains'].append(domain) @@ -138,6 +140,8 @@ def get_config(): dns['name_servers'] = dns['name_servers'] + system_name_servers conf.set_level('service dns forwarding') + dns['name_servers'] = bracketize_ipv6_addrs(dns['name_servers']) + if conf.exists('listen-address'): dns['listen_on'] = conf.return_values('listen-address') @@ -193,6 +197,10 @@ def get_config(): return dns +def bracketize_ipv6_addrs(addrs): + """Wraps each IPv6 addr in addrs in [], leaving IPv4 addrs untouched.""" + return ['[{0}]'.format(a) if a.count(':') > 1 else a for a in addrs] + def verify(dns): # bail out early - looks like removal from running config if dns is None: |