ctdb-scripts: Don't set arp_filter=1 by default in 10.interface
[samba4-gss.git] / source4 / scripting / devel / rebuild_zone.sh
blob94d1f9ef84cdfae211b7de2c1adbd708e3c46743
1 #!/bin/sh
2 # rebuild a zone file, adding all DCs
4 [ $# -eq 2 ] || {
5 echo "rebuild_zone.sh <sam.ldb> <zonefile>"
6 exit 1
9 LDB="$1"
10 ZFILE="$2"
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)
18 dcname()
20 GUID=$1
21 echo $(bin/ldbsearch -H $LDB objectguid=$GUID dn --cross-ncs | grep CN=NTDS.Settings | cut -d, -f2 | cut -d= -f2)
24 getip()
26 NAME=$1
27 ret=$(nmblookup $NAME | egrep '^[0-9]' | head -1 | cut -d' ' -f1)
28 test -n "$ret" || {
29 echo "Unable to find IP for $NAME. Using XX.XX.XX.XX. Please edit" 1>&2
30 echo "XX.XX.XX.XX"
32 echo $ret
35 echo "Generating header for host $host in realm $realm"
36 cat <<EOF >$ZFILE
37 ; -*- zone -*-
38 ; generated by rebuild_zone.sh
39 \$ORIGIN $realm.
40 \$TTL 1W
41 @ IN SOA @ hostmaster (
42 $(date +%Y%m%d%H) ; serial
43 2D ; refresh
44 4H ; retry
45 6W ; expiry
46 1W ) ; minimum
47 IN NS $host
49 EOF
51 for GUID in $GUIDs; do
52 dc=$(dcname $GUID)
53 echo "Generating IP for DC $dc"
54 ip=$(getip $dc)
55 test -n "$ip" || exit 1
56 echo " IN A $ip" >>$ZFILE
57 done
59 echo "; IP Addresses" >>$ZFILE
60 for GUID in $GUIDs; do
61 dc=$(dcname $GUID)
62 ip=$(getip $dc)
63 test -n "$ip" || exit 1
64 echo "$dc IN A $ip" >>$ZFILE
65 done
67 for GUID in $GUIDs; do
68 dc=$(dcname $GUID)
69 ip=$(getip $dc)
70 test -n "$ip" || exit 1
71 echo "Generating zone body for DC $dc with IP $ip"
72 cat <<EOF >>$ZFILE
74 ; Entries for $dc
75 gc._msdcs IN A $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
96 EOF
97 done
99 cat <<EOF >>$ZFILE
101 ; kerberos hack
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
109 exit 0