Compare commits

...

3 Commits

2 changed files with 58 additions and 38 deletions

View File

@@ -96,6 +96,12 @@ usage() {
-k <tsig key name> -k <tsig key name>
Name of the TSIG key used for dynamical updates. Name of the TSIG key used for dynamical updates.
-m <dns_master>
Main Domains Master DNS Server
-s <dns_slave>
Main Domains Slave DNS Server
-t <allow-transfer options> -t <allow-transfer options>
allow-transfer for zone declaration. Possible values are ip-address(es) allow-transfer for zone declaration. Possible values are ip-address(es)
or existing 'acl' defininition(s). or existing 'acl' defininition(s).
@@ -290,6 +296,10 @@ while getopts hk:qt: opt ; do
;; ;;
k) TSIG_KEY_NAME="$OPTARG" k) TSIG_KEY_NAME="$OPTARG"
;; ;;
m) DNS_MASTER="$OPTARG"
;;
s) DNS_SLAVE="$OPTARG"
;;
q) verbose=true q) verbose=true
;; ;;
t) ALLOW_TRANSFER_OPTION="$OPTARG" t) ALLOW_TRANSFER_OPTION="$OPTARG"
@@ -430,42 +440,47 @@ fi
# - Get DNS server # - Get DNS server
# - # -
echononl "Get responsible zone for domain '$dkim_domain'.." echononl "Get responsible zone for domain '$dkim_domain'.."
found=true if [[ -n "${DNS_MASTER}" ]] && [[ -n "${DNS_SLAVE}" ]] ; then
zone="${dkim_domain}" echo_skipped
dns_servers="$(dig +short $zone NS 2>/dev/null)" dns_server_arr=("${DNS_MASTER}" "${DNS_SLAVE}")
while [[ -z "$dns_servers" ]] ; do
zone=${zone#*.}
if [[ ! $zone =~ \. ]]; then
found=false
break
fi
dns_servers="$(dig +short $zone NS 2>/dev/null)"
done
if $found ; then
echo_ok
info "Found responsible zone for '${dkim_domain}': \033[37m\033[1m${zone}\033[m"
echononl "Get nameservers for domain '${zone}'.."
declare -i _count=0
for _dns_server in $dns_servers ; do
if [[ $_count -eq 0 ]]; then
_tmp_dns_server="$_dns_server"
else
_tmp_dns_server="$_tmp_dns_server $_dns_server"
fi
dns_server_arr+=("$_dns_server")
if [[ ${#dns_server_arr[@]} -eq 0 ]]; then
echo_failed
error "Determin DNS servers for domain '$zone' failed!"
clean_up 17
else
echo_ok
info "Found nameservers \033[37m\033[1m${_tmp_dns_server}\033[m"
fi
done
else else
echo_failed found=true
error "No responsible zone for '$dkim_domain' found!" zone="${dkim_domain}"
clean_up 16 dns_servers="$(dig +short $zone NS 2>/dev/null)"
while [[ -z "$dns_servers" ]] ; do
zone=${zone#*.}
if [[ ! $zone =~ \. ]]; then
found=false
break
fi
dns_servers="$(dig +short $zone NS 2>/dev/null)"
done
if $found ; then
echo_ok
info "Found responsible zone for '${dkim_domain}': \033[37m\033[1m${zone}\033[m"
echononl "Get nameservers for domain '${zone}'.."
declare -i _count=0
for _dns_server in $dns_servers ; do
if [[ $_count -eq 0 ]]; then
_tmp_dns_server="$_dns_server"
else
_tmp_dns_server="$_tmp_dns_server $_dns_server"
fi
dns_server_arr+=("$_dns_server")
if [[ ${#dns_server_arr[@]} -eq 0 ]]; then
echo_failed
error "Determin DNS servers for domain '$zone' failed!"
clean_up 17
else
echo_ok
info "Found nameservers \033[37m\033[1m${_tmp_dns_server}\033[m"
fi
done
else
echo_failed
error "No responsible zone for '$dkim_domain' found!"
clean_up 16
fi
fi fi

View File

@@ -740,12 +740,12 @@ EOF
; ;
; TXT (u.a. SPF) ; TXT (u.a. SPF)
; ;
@ 3600 IN TXT "v=spf1 a mx mx:lists.warenform.de mx mx:lists.oopen.de mx:lists.initiativenserver.de mx:listi.jpberlin.de ~all" @ 3600 IN TXT "v=spf1 a mx mx:lists.warenform.de mx:lists.oopen.de mx:lists.initiativenserver.de mx:listi.jpberlin.de ~all"
; ;
; DMARC ; DMARC
; ;
_dmarc IN TXT "v=DMARC1; p=reject;" _dmarc IN TXT "v=DMARC1; p=none;"
EOF EOF
elif [[ -n "${DEFAULT_MX_HOST_1}" ]] ; then elif [[ -n "${DEFAULT_MX_HOST_1}" ]] ; then
cat << EOF >> "${ZONE_FILE_MASTER_DIR}/${DOMAIN}.zone" cat << EOF >> "${ZONE_FILE_MASTER_DIR}/${DOMAIN}.zone"
@@ -759,7 +759,12 @@ elif [[ -n "${DEFAULT_MX_HOST_1}" ]] ; then
; ;
; TXT (u.a. SPF) ; TXT (u.a. SPF)
; ;
;@ 3600 IN TXT "v=spf1 a mx ~all" ;@ 3600 IN TXT "v=spf1 a mx mx:lists.warenform.de mx:lists.oopen.de mx:lists.initiativenserver.de mx:listi.jpberlin.de ~all"
;
; DMARC
;
;_dmarc IN TXT "v=DMARC1; p=none;"
EOF EOF
fi fi