BIND script to create PTR records
Just in case you ever need to manage an instance of BIND manually, you will have the pain of remembering to update the PTR records. Here's a quick script to create the PTR records
For those of you that are looking for an alternative, I suggest you use PowerDNS as a backend and PowerDNSAdmin as a nice front end
Here's the script
#!/bin/sh
NETWORKS=$(cat << ENDNET
10.10.1
10.10.2
.
.
.
10.10.99
ENDNET
)
REV_HEADER=$(cat <
; BIND reverse data file for NETWORK
; Do not edit manually, but run /etc/bin/zones/$0
; after editing /etc/bin/zones/mydomain.tld.db
;
\$TTL 604800
@ IN SOA mydns-server.mydomain.tld. root.mydns-server.mydomain.tld. (
SERIAL ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS mydns-server.mydomain.tld.
END
)
for NETWORK in $NETWORKS ; do
echo $NETWORK
NEWSERIAL=`grep Serial db.${NETWORK} | awk '{printf "%6s", $1+1}'`
echo $NEWSERIAL
echo "$REV_HEADER" | sed -e "s/SERIAL/$NEWSERIAL/" -e "s/NETWORK/$NETWORK/" > db.${NETWORK}.new
egrep "$NETWORK\." mydomain.tld.db | grep -v '^;' | awk 'split($4, ipaddr, ".") {printf "%-3s IN PTR %s.mydomain.tld.\n", ipaddr[4], $1}' | sort -n >> db.${NETWORK}.new
mv db.${NETWORK}.new db.${NETWORK}
done
No comments:
Post a Comment