mirror of
https://github.com/netbirdio/plugins.git
synced 2026-05-22 18:44:07 -07:00
avoid errors with repeated primary servers and keys (#2874)
This commit is contained in:
+8
-2
@@ -46,13 +46,19 @@
|
||||
<id>domain.transferkeyalgo</id>
|
||||
<label>Transfer Key Algorithm</label>
|
||||
<type>dropdown</type>
|
||||
<help>Set the authentication algorithm for the TSIG key.</help>
|
||||
<help>Set the authentication algorithm for the TSIG key used to transfer domain data from the master server.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>domain.transferkeyname</id>
|
||||
<label>Transfer Key Name</label>
|
||||
<type>text</type>
|
||||
<help>The name of the TSIG key, which must match the value on the master server.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>domain.transferkey</id>
|
||||
<label>Transfer Key</label>
|
||||
<type>text</type>
|
||||
<help>The TSIG key used to transfer domain data from the master server.</help>
|
||||
<help>The base64-encoded TSIG key.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>domain.allownotifyslave</id>
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
<hmac-md5>HMAC-MD5</hmac-md5>
|
||||
</OptionValues>
|
||||
</transferkeyalgo>
|
||||
<transferkeyname type="TextField">
|
||||
<Required>N</Required>
|
||||
<default></default>
|
||||
</transferkeyname>
|
||||
<transferkey type="TextField">
|
||||
<Required>N</Required>
|
||||
<default></default>
|
||||
|
||||
@@ -277,9 +277,9 @@ $( document ).ready(function() {
|
||||
|
||||
$('#domain\\.transferkeyalgo').on('change', function(e) {
|
||||
if (e.target.selectedIndex === 0) {
|
||||
$('#domain\\.transferkey').val('').attr('readonly', true);
|
||||
$('#domain\\.transferkey,#domain\\.transferkeyname').val('').attr('readonly', true);
|
||||
} else {
|
||||
$('#domain\\.transferkey').attr('readonly', false);
|
||||
$('#domain\\.transferkey,#domain\\.transferkeyname').attr('readonly', false);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -131,6 +131,7 @@ zone "rpzbing" { type master; file "/usr/local/etc/namedb/master/bing.db"; notif
|
||||
{% endif %}
|
||||
|
||||
{% if helpers.exists('OPNsense.bind.domain.domains.domain') %}
|
||||
{% set usedkeys = [] %}
|
||||
{% for domain in helpers.toList('OPNsense.bind.domain.domains.domain') %}
|
||||
{% if domain.enabled == '1' %}
|
||||
{% set allow_transfer = helpers.getUUID(domain.allowtransfer) %}
|
||||
@@ -138,7 +139,11 @@ zone "rpzbing" { type master; file "/usr/local/etc/namedb/master/bing.db"; notif
|
||||
zone "{{ domain.domainname }}" {
|
||||
type {{ domain.type }};
|
||||
{% if domain.type == 'slave' %}
|
||||
{% if domain.transferkey is defined %}
|
||||
masters { {{ domain.masterip.replace(',', ' key "' ~ domain.transferkeyname ~ '"; ') }} key "{{ domain.transferkeyname }}"; };
|
||||
{% else %}
|
||||
masters { {{ domain.masterip.replace(',', '; ') }}; };
|
||||
{% endif %}
|
||||
{% if domain.allownotifyslave is defined %}
|
||||
allow-notify { {{ domain.allownotifyslave.replace(',', '; ') }}; };
|
||||
{% endif %}
|
||||
@@ -153,15 +158,12 @@ zone "{{ domain.domainname }}" {
|
||||
allow-query { {{ allow_query.name }}; };
|
||||
{% endif %}
|
||||
};
|
||||
{% if domain.type == 'slave' and domain.transferkey is defined %}
|
||||
{% set key_name = 'tsig-transferkey-' ~ domain.domainname.replace('.', '-') %}
|
||||
key "{{ key_name }}" {
|
||||
{% if domain.type == 'slave' and domain.transferkey is defined and not(domain.transferkeyname in usedkeys) %}
|
||||
{% do usedkeys.append(domain.transferkeyname) %}
|
||||
key "{{ domain.transferkeyname }}" {
|
||||
algorithm "{{ domain.transferkeyalgo }}";
|
||||
secret "{{ domain.transferkey }}";
|
||||
};
|
||||
server {{ domain.masterip }} {
|
||||
keys { "{{ key_name }}" };
|
||||
};
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
Reference in New Issue
Block a user