network/salt/bind/named.conf

77 lines
1.8 KiB
Plaintext
Raw Normal View History

2017-03-12 03:12:52 +01:00
# Slaves rely on static IPv4 addrs over dn42. Do not contact them over
# their public addrs because our source addr is dynamic!
2017-01-23 22:23:56 +01:00
{% macro slaves() -%}
{%- if pillar['bind']['slaves'] -%}
allow-transfer {
{%- for addr in pillar['bind']['slaves'] -%}
{{ addr }};
{%- endfor -%}
};
also-notify {
{%- for addr in pillar['bind']['slaves'] -%}
{{ addr }};
{%- endfor -%}
};
{%- endif -%}
{%- endmacro %}
2017-03-12 03:12:52 +01:00
# root domain
2018-06-23 02:14:10 +02:00
{%- for ctx, root_domain in pillar['bind']['root-domain'].items() %}
zone "{{ root_domain }}" IN {
2017-01-23 21:59:33 +01:00
type master;
2018-06-23 02:14:10 +02:00
file "/etc/bind/{{ root_domain }}.zone";
2017-01-23 22:23:56 +01:00
{{ slaves() }}
2017-01-23 21:59:33 +01:00
};
2017-03-12 03:12:52 +01:00
# net zones
2018-06-23 02:14:10 +02:00
{%- for net, subnet4 in pillar['subnets-inet'].items() %}
{%- set domain = net ~ '.' ~ root_domain %}
2017-01-13 03:57:09 +01:00
zone "{{ domain }}" IN {
type master;
file "/etc/bind/{{ domain }}.zone";
2017-01-23 22:23:56 +01:00
{{ slaves() }}
2017-01-13 03:57:09 +01:00
};
2018-06-23 02:14:10 +02:00
{%- endfor %}
2017-01-13 03:57:09 +01:00
{%- endfor %}
2017-03-12 03:12:52 +01:00
# IPv4 reverse zones
2017-01-14 00:13:35 +01:00
{%- for domain in pillar['bind']['reverse-zones-inet'] %}
2017-01-13 03:57:09 +01:00
zone "{{ domain }}" IN {
type master;
2017-01-14 00:13:35 +01:00
file "/etc/bind/{{ domain }}.zone";
2017-01-13 03:57:09 +01:00
};
{%- endfor %}
2017-03-12 03:16:48 +01:00
# IPv6 reverse zones
2018-06-23 02:04:35 +02:00
{%- for ctx, domains in pillar['bind']['reverse-zones-inet6'].items() %}
{%- for domain in domains %}
2017-01-13 03:57:09 +01:00
zone "{{ domain }}" IN {
type master;
2017-01-14 00:13:35 +01:00
file "/etc/bind/{{ domain }}.zone";
2018-06-23 02:57:46 +02:00
{{ slaves() }}
2017-01-13 03:57:09 +01:00
};
2018-06-23 02:04:35 +02:00
{%- endfor %}
2017-01-13 03:57:09 +01:00
{%- endfor %}
2017-03-12 03:16:48 +01:00
# DynDNS
{%- for name, conf in pillar['dyndns'].items() %}
key "{{ name }}" {
algorithm hmac-sha256;
secret "{{ conf['secret'] }}";
};
{%- endfor %}
# DynDNS zone
2018-06-23 02:04:35 +02:00
{%- set domain = 'dyn.' ~ pillar['bind']['root-domain']['up1'] %}
2017-03-12 03:16:48 +01:00
zone "{{ domain }}" IN {
type master;
file "/etc/bind/{{ domain }}.zone";
{{ slaves() }}
update-policy {
{%- for name, conf in pillar['dyndns'].items() %}
grant {{ name }} name {{ name }}.{{ domain }} ANY;
{%- endfor %}
};
};