Namensschema

This commit is contained in:
Blackyfff 2021-01-04 20:53:39 +01:00
parent a853e4fcab
commit 4ff8f549af
1 changed files with 15 additions and 15 deletions

View File

@ -21,11 +21,11 @@ function GetZoneFileSerial() {
local EleminateLineBreaks=":a;N;\$!ba;s/\n//g;" local EleminateLineBreaks=":a;N;\$!ba;s/\n//g;"
local SearchPrintSerial="s/\S\+\s\+IN\s\+SOA\s\+\S\+\s\+\S\+\s\+(\?\s\+\([0-9]*\).*/\1/" local SearchPrintSerial="s/\S\+\s\+IN\s\+SOA\s\+\S\+\s\+\S\+\s\+(\?\s\+\([0-9]*\).*/\1/"
local serial=$(sed -e "$FirstSOALineAndFollowing""$RemoveComments""$EleminateLineBreaks""$SearchPrintSerial" "$1") local Serial=$(sed -e "$FirstSOALineAndFollowing""$RemoveComments""$EleminateLineBreaks""$SearchPrintSerial" "$1")
echo "$serial" echo "$Serial"
} }
function dnsreload { function DNSReload {
if [[ -n "$Usernc" ]]; then if [[ -n "$Usernc" ]]; then
rndc reload "$DomainZone" IN "icvpn-internal-view" rndc reload "$DomainZone" IN "icvpn-internal-view"
else else
@ -33,26 +33,26 @@ function dnsreload {
fi fi
} }
function validate_ipv4() { function ValidateIPv4() {
[[ -n "$(echo "$1" | sed -e '/^\(\(25[0-5]\|\(2[0-4]\|1[0-9]\|[1-9]\)\?[0-9]\)\.\)\{0,3\}\(25[0-5]\|\(2[0-4]\|1[0-9]\|[1-9]\)\?[0-9]\)$/!d')" ]] [[ -n "$(echo "$1" | sed -e '/^\(\(25[0-5]\|\(2[0-4]\|1[0-9]\|[1-9]\)\?[0-9]\)\.\)\{0,3\}\(25[0-5]\|\(2[0-4]\|1[0-9]\|[1-9]\)\?[0-9]\)$/!d')" ]]
return $? return $?
} }
mkdir -p $TempDir mkdir -p $TempDir
Serials=() AllSerials=()
for ForwardZoneFile in "${ForwardZoneFiles[@]}" for ForwardZoneFile in "${ForwardZoneFiles[@]}"
do do
ZoneName=$(sed -ne 's/\(\S\+\)\s\+IN\s\+SOA\s\+\S\+.*/\1/p' "$ForwardZoneFile") ZoneName=$(sed -ne 's/\(\S\+\)\s\+IN\s\+SOA\s\+\S\+.*/\1/p' "$ForwardZoneFile")
named-compilezone -o "$TempDir/$ZoneName" $ZoneName $ForwardZoneFile >/dev/null 2>&1 named-compilezone -o "$TempDir/$ZoneName" $ZoneName $ForwardZoneFile >/dev/null 2>&1
serial="$(GetZoneFileSerial '$TempDir/$ZoneName')" Serial="$(GetZoneFileSerial '$TempDir/$ZoneName')"
Serials+=( "$serial" ) AllSerials+=( "$Serial" )
done done
serial=0 Serial=0
for i in ${Serials[@]}; do serial=$((serial+i)); done ) for i in ${AllSerials[@]}; do Serial=$((Serial+i)); done )
echo "$DomainZone $TTL IN SOA $ReverseServerName $ContactEMail $serial $refresh $retry $expire $minimum" > "$TempDir/$DomainZone" echo "$DomainZone $TTL IN SOA $ReverseServerName $ContactEMail $Serial $refresh $retry $expire $minimum" > "$TempDir/$DomainZone"
echo "$DomainZone $TTL IN NS $ReverseServerName" >> "$TempDir/$DomainZone" echo "$DomainZone $TTL IN NS $ReverseServerName" >> "$TempDir/$DomainZone"
for ForwardZoneFile in $(ls $TempDir) for ForwardZoneFile in $(ls $TempDir)
do do
@ -61,7 +61,7 @@ do
i=0 i=0
for IP in $IPs for IP in $IPs
do do
if validate_ipv4 $IP if ValidateIPv4 $IP
then then
echo $(echo $IP | awk 'BEGIN { FS = "." } ; { print $4 "." $3 "." $2 "." $1 }')".in-addr.arpa." $TTL IN PTR ${Hosts[$i]} >> "$TempDir/$DomainZone" echo $(echo $IP | awk 'BEGIN { FS = "." } ; { print $4 "." $3 "." $2 "." $1 }')".in-addr.arpa." $TTL IN PTR ${Hosts[$i]} >> "$TempDir/$DomainZone"
fi fi
@ -70,14 +70,14 @@ do
done done
if [[ -f $ReverseZoneFile ]]; then if [[ -f $ReverseZoneFile ]]; then
oldSerial="$(GetZoneFileSerial '$ReverseZoneFile')" OldSerial="$(GetZoneFileSerial '$ReverseZoneFile')"
else else
oldSerial=0 OldSerial=0
fi fi
if [[ $serial -gt $oldSerial ]] if [[ $Serial -gt $OldSerial ]]
then then
named-compilezone -o $ReverseZoneFile $DomainZone "$TempDir/$DomainZone" >/dev/null 2>&1 named-compilezone -o $ReverseZoneFile $DomainZone "$TempDir/$DomainZone" >/dev/null 2>&1
dnsreload DNSReload
fi fi
rm -r $TempDir rm -r $TempDir