vn-ansible/roles/ns/templates/named.conf.slave.j2

79 lines
1.7 KiB
Django/Jinja

options {
directory "/var/cache/bind";
max-cache-size 500m;
auth-nxdomain no;
listen-on-v6 { none; };
version "DNS";
allow-update { none; };
blackhole { rfc5735; };
notify no;
allow-transfer { none; };
masterfile-format text;
};
masters master-ips {
{% for ip in bind_slave_masters %}
{{ ip }};
{% endfor %}
};
view "lan" {
match-clients {
{%- for item in key_match_clients_lan_master if item.startswith("!key") -%}
{{ item }};
{% endfor %}
{%- for item in acl_match_clients -%}
{{ item }};
{% endfor %}
{%- for item in key_match_clients_lan_slave if not item.startswith("!key") -%}
{{ item }};
{% endfor %}
};
plugin query "filter-aaaa.so" {
filter-aaaa-on-v4 yes;
filter-aaaa-on-v6 yes;
filter-aaaa { any; };
};
recursion yes;
allow-recursion { any; };
empty-zones-enable yes;
include "/etc/bind/named.conf.default-zones";
{% for zone in bind_zones.lan %}
zone "{{ zone.name }}" {
type slave;
masters { master-ips; };
forwarders {};
file "{{ zone.file }}";
};
{% endfor %}
};
view "wan" {
match-clients { any; };
recursion no;
allow-query-cache { none; };
empty-zones-enable no;
{% for zone in bind_zones.wan %}
{% if zone.in_view is defined %}
{% for z in zone.in_view %}
zone "{{ z }}" {
in-view "lan";
};
{% endfor %}
{% else %}
zone "{{ zone.name }}" {
type slave;
masters { {{ bind_slave_masters | join('; ') }} key {{ zone.key }}; };
forwarders {};
file "{{ zone.file }}";
};
{% endif %}
{% endfor %}
};