From e6d31c73c68e213763184cd791d2707be940fff5 Mon Sep 17 00:00:00 2001 From: Maximiliano Garcia Silva Date: Mon, 9 Sep 2024 23:31:40 -0300 Subject: [PATCH 1/2] Support for secondary external areas --- simple-bind/defaults/main.yaml | 6 +++ simple-bind/templates/named.conf.local.j2 | 62 +++++++++++++++++------ 2 files changed, 53 insertions(+), 15 deletions(-) diff --git a/simple-bind/defaults/main.yaml b/simple-bind/defaults/main.yaml index 9f57b3d..aab425f 100644 --- a/simple-bind/defaults/main.yaml +++ b/simple-bind/defaults/main.yaml @@ -29,4 +29,10 @@ simple_bind__forward_zones: # extra_conf: # - 'foo: bar' +simple_bind__external_secondary_zones: +# - zone: example.com +# primaries: [192.168.1.1] +# extra_conf: +# - 'foo: bar' + simple_bind__install_ferm_svc: false diff --git a/simple-bind/templates/named.conf.local.j2 b/simple-bind/templates/named.conf.local.j2 index e2107b7..81da309 100644 --- a/simple-bind/templates/named.conf.local.j2 +++ b/simple-bind/templates/named.conf.local.j2 @@ -1,34 +1,66 @@ // {{ ansible_managed }} +acl internals { + localhost; + {{ internal_networks | ansible.utils.ipv4 }} + {{ internal_networks | ansible.utils.ipv6 }} +}; + +view internals { + match-clients { internals; }; + allow-transfer { internals; }; + allow-recursion { internals; }; + {% for zone in simple_bind__forward_zones or [] -%} -zone "{{ zone.zone }}" { - type forward; - forward {{ zone.forward | default('first') }}; - forwarders { + zone "{{ zone.zone }}" { + type forward; + forward {{ zone.forward | default('first') }}; + forwarders { {% for forwarder in zone.get('forwarders') or [] %} - {{ forwarder }}; + {{ forwarder }}; {% endfor -%} - }; - file "db.{{ zone.zone }}"; + }; + file "db.internal{{ zone.zone }}"; {% for extra in zone.get('extra_conf') or [] %} - {{ extra }}; + {{ extra }}; {% endfor %} }; {% endfor -%} {% for zone in simple_bind__secondary_zones or [] -%} -zone "{{ zone.zone }}" { - type slave; - masters { + zone "{{ zone.zone }}" { + type slave; + masters { {% for primary in zone.get('primaries') or [] %} - {{ primary }}; + {{ primary }}; {% endfor %} - }; - file "db.{{ zone.zone }}"; + }; + file "db.internal.{{ zone.zone }}"; {% for extra in zone.get('extra_conf') or [] %} - {{ extra }}; + {{ extra }}; +{% endfor %} + }; + {% endfor %} }; +view externals { + match-clients { any; }; + allow-transfer {"none"; }; + recursion no; + +{% for zone in simple_bind__external_secondary_zones or [] -%} + zone "{{ zone.zone }}" { + type slave; + masters { +{% for primary in zone.get('primaries') or [] %} + {{ primary }}; +{% endfor %} + }; + file "db.{{ zone.zone }}"; +{% for extra in zone.get('extra_conf') or [] %} + {{ extra }}; {% endfor %} + }; +}; From 1fc1d5d617a027bde9bc7d8d38bf4e3d225363e7 Mon Sep 17 00:00:00 2001 From: Maximiliano Garcia Silva Date: Mon, 9 Sep 2024 23:31:40 -0300 Subject: [PATCH 2/2] Support for secondary external areas --- simple-bind/templates/named.conf.local.j2 | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/simple-bind/templates/named.conf.local.j2 b/simple-bind/templates/named.conf.local.j2 index 81da309..57b4b21 100644 --- a/simple-bind/templates/named.conf.local.j2 +++ b/simple-bind/templates/named.conf.local.j2 @@ -10,7 +10,7 @@ view internals { match-clients { internals; }; allow-transfer { internals; }; allow-recursion { internals; }; - + {% for zone in simple_bind__forward_zones or [] -%} zone "{{ zone.zone }}" { type forward; @@ -20,9 +20,10 @@ view internals { {{ forwarder }}; {% endfor -%} }; - file "db.internal{{ zone.zone }}"; + file "db.internal.{{ zone.zone }}"; {% for extra in zone.get('extra_conf') or [] %} - {{ extra }}; + {{ extra }}; + }; {% endfor %} }; @@ -30,12 +31,12 @@ view internals { {% for zone in simple_bind__secondary_zones or [] -%} zone "{{ zone.zone }}" { - type slave; - masters { + type slave; + masters { {% for primary in zone.get('primaries') or [] %} - {{ primary }}; + {{ primary }}; {% endfor %} - }; + }; file "db.internal.{{ zone.zone }}"; {% for extra in zone.get('extra_conf') or [] %} {{ extra }}; @@ -58,7 +59,7 @@ view externals { {{ primary }}; {% endfor %} }; - file "db.{{ zone.zone }}"; + file "db.external.{{ zone.zone }}"; {% for extra in zone.get('extra_conf') or [] %} {{ extra }}; {% endfor %}