2 # rebuild a zone file, adding all DCs
5 echo "rebuild_zone.sh <sam.ldb> <zonefile>"
12 dnshostname
=$
(bin
/ldbsearch
-H $LDB --scope=base
-b '' dnsHostname |
grep ^dns | cut
-d' ' -f2)
13 host=$
(echo $dnshostname | cut
-d.
-f1)
14 realm
=$
(echo $dnshostname | cut
-d.
-f2-)
15 GUIDs
=$
(bin
/ldbsearch
-H $LDB objectclass
=ntdsdsa objectguid
--cross-ncs |
grep ^objectGUID | cut
-d' ' -f2)
16 DOMAINGUID
=$
(bin
/ldbsearch
-H $LDB --scope=base objectguid |
grep ^objectGUID | cut
-d' ' -f2)
21 echo $
(bin
/ldbsearch
-H $LDB objectguid
=$GUID dn
--cross-ncs |
grep CN
=NTDS.Settings | cut
-d, -f2 | cut
-d= -f2)
27 ret
=$
(nmblookup
$NAME |
egrep '^[0-9]' |
head -1 | cut
-d' ' -f1)
29 echo "Unable to find IP for $NAME. Using XX.XX.XX.XX. Please edit" 1>&2
35 echo "Generating header for host $host in realm $realm"
38 ; generated by rebuild_zone.sh
41 @ IN SOA @ hostmaster (
42 $(date +%Y%m%d%H) ; serial
51 for GUID
in $GUIDs; do
53 echo "Generating IP for DC $dc"
55 test -n "$ip" ||
exit 1
56 echo " IN A $ip" >>$ZFILE
59 echo "; IP Addresses" >>$ZFILE
60 for GUID
in $GUIDs; do
63 test -n "$ip" ||
exit 1
64 echo "$dc IN A $ip" >>$ZFILE
67 for GUID
in $GUIDs; do
70 test -n "$ip" ||
exit 1
71 echo "Generating zone body for DC $dc with IP $ip"
76 $GUID._msdcs IN CNAME $dc
77 _gc._tcp IN SRV 0 100 3268 $dc
78 _gc._tcp.Default-First-Site-Name._sites IN SRV 0 100 3268 $dc
79 _ldap._tcp.gc._msdcs IN SRV 0 100 389 $dc
80 _ldap._tcp.Default-First-Site-Name._sites.gc._msdcs IN SRV 0 100 389 $dc
81 _ldap._tcp IN SRV 0 100 389 $dc
82 _ldap._tcp.dc._msdcs IN SRV 0 100 389 $dc
83 _ldap._tcp.pdc._msdcs IN SRV 0 100 389 $dc
84 _ldap._tcp.$DOMAINGUID.domains._msdcs IN SRV 0 100 389 $dc
85 _ldap._tcp.Default-First-Site-Name._sites IN SRV 0 100 389 $dc
86 _ldap._tcp.Default-First-Site-Name._sites.dc._msdcs IN SRV 0 100 389 $dc
87 _kerberos._tcp IN SRV 0 100 88 $dc
88 _kerberos._tcp.dc._msdcs IN SRV 0 100 88 $dc
89 _kerberos._tcp.Default-First-Site-Name._sites IN SRV 0 100 88 $dc
90 _kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs IN SRV 0 100 88 $dc
91 _kerberos._udp IN SRV 0 100 88 $dc
92 _kerberos-master._tcp IN SRV 0 100 88 $dc
93 _kerberos-master._udp IN SRV 0 100 88 $dc
94 _kpasswd._tcp IN SRV 0 100 464 $dc
95 _kpasswd._udp IN SRV 0 100 464 $dc
102 _kerberos IN TXT $(echo $realm | tr [a-z] [A-Z])
105 echo "Rebuilt zone file $ZFILE OK"
107 echo "Reloading bind config"
108 PATH
="/usr/sbin:$PATH" rndc reload