79 lines
1.7 KiB
Django/Jinja
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 %}
|
|
};
|