Mercurial > hg > anonet-resdb
annotate scripts/nameserver_autogen/bind_tld_zonefile.sh @ 1248:95b01f0aed0d draft
copied structure.txt to root dir as README.txt
author | Passive <passive@21.50.0.1> |
---|---|
date | Sun, 08 Dec 2019 01:14:48 -0600 |
parents | c842697ded21 |
children |
rev | line source |
---|---|
1120
8e01b8361e9e
changed add_dom to not even bother with anything head -c -1 related. should still work.
epoch <epoch@hacking.allowed.org>
parents:
diff
changeset
|
1 #!/bin/bash |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
2 # made for bash. not sure if all /bin/sh work. |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
3 # be sure to set these variables first. |
1241 | 4 # please don't edit this file though. |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
5 #RESDB_PATH=/var/db/resdb |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
6 #ZONEFILE_DIR=/etc/namedb |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
7 # optional: |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
8 : ${TLDS:=ano} |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
9 : ${RDNS_PREFIX:=21} |
1241 | 10 RDNS6_PREFIX=fd63:1e39:6f73 # do not change, hardcoded below |
1120
8e01b8361e9e
changed add_dom to not even bother with anything head -c -1 related. should still work.
epoch <epoch@hacking.allowed.org>
parents:
diff
changeset
|
11 |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
12 if [ ! "$ZONEFILE_DIR" ];then |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
13 echo "You forgot to set some variables. read the source plzkthx." >&2 |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
14 exit 1 |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
15 fi |
1120
8e01b8361e9e
changed add_dom to not even bother with anything head -c -1 related. should still work.
epoch <epoch@hacking.allowed.org>
parents:
diff
changeset
|
16 |
1220
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
17 DOM="3.7.f.6.9.3.e.1.3.6.d.f.ip6.arpa" |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
18 RDNS_ZONEFILE="$ZONEFILE_DIR/$DOM" |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
19 |
1241 | 20 echo -n "generating IPv6 reverse lookup zonefile for $RDNS6_PREFIX::/48..." >&2 |
1220
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
21 echo "; this zonefile generated on: `date -u`" > "$RDNS_ZONEFILE".tmp |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
22 echo '$TTL 3600' >> "$RDNS_ZONEFILE".tmp |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
23 echo '$ORIGIN' $DOM. >> "$RDNS_ZONEFILE".tmp |
1230
24c17a3904b9
Revert "dropped the use of @ so the generated zones would work with yadifa too. also exported env vars so child of bind_tld_zonefile_all.sh can use them"
epoch <epoch@hack.thebackupbox.net>
parents:
1226
diff
changeset
|
24 echo '@ IN SOA @ root ('`date -u +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$RDNS_ZONEFILE".tmp |
24c17a3904b9
Revert "dropped the use of @ so the generated zones would work with yadifa too. also exported env vars so child of bind_tld_zonefile_all.sh can use them"
epoch <epoch@hack.thebackupbox.net>
parents:
1226
diff
changeset
|
25 echo '@ IN NS @' >> "$RDNS_ZONEFILE".tmp |
24c17a3904b9
Revert "dropped the use of @ so the generated zones would work with yadifa too. also exported env vars so child of bind_tld_zonefile_all.sh can use them"
epoch <epoch@hack.thebackupbox.net>
parents:
1226
diff
changeset
|
26 echo '@ IN A 127.0.0.1' >> "$RDNS_ZONEFILE".tmp |
1220
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
27 cd $RESDB_PATH/db/ip6/F/D/6/3/1/E/3/9/6/F/7/3/ |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
28 for i in */*/*/*/ns/*;do |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
29 a=$(printf "%s\n" "$i" | cut -d/ -f1-4 | tr '/' '.' | rev) |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
30 b=$(printf "%s\n" "$i" | cut -d/ -f6) |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
31 printf '%s IN NS %s.\n' "$a" "$b" |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
32 done >> "$RDNS_ZONEFILE".tmp |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
33 mv -f "$RDNS_ZONEFILE".tmp "$RDNS_ZONEFILE" |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
34 echo " done." >&2 |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
35 |
c6fa1e38f44f
updated bind_tld_zonefile.sh to generate IPv6 rDNS zone too. added ns record for volatile.ano so I could test.
epochqwert <epoch@hacking.allowed.org>
parents:
1212
diff
changeset
|
36 |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
37 # convert to hex |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
38 if [ "*" != "$RDNS_PREFIX" ];then |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
39 X="" |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
40 for PFX in $RDNS_PREFIX;do |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
41 C=`printf "%02X\n" $PFX 2>/dev/null` |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
42 [ -z "$X" ] && X="$C" || X="$X $C" |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
43 done |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
44 RDNS_PREFIX="$X" |
1148
5c239f21ff7e
fixed a bug where I used a literal instead of one of the user defined variables (thx mkz)
epoch <epoch@hacking.allowed.org>
parents:
1138
diff
changeset
|
45 fi |
1120
8e01b8361e9e
changed add_dom to not even bother with anything head -c -1 related. should still work.
epoch <epoch@hacking.allowed.org>
parents:
diff
changeset
|
46 |
8e01b8361e9e
changed add_dom to not even bother with anything head -c -1 related. should still work.
epoch <epoch@hacking.allowed.org>
parents:
diff
changeset
|
47 |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
48 cd "$RESDB_PATH/db/ip" || exit 1 |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
49 for PFX in $RDNS_PREFIX;do |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
50 cd "$RESDB_PATH/db/ip/$PFX" 2>/dev/null || continue |
1212
0e5d4b7fc3d8
add missing cidr entry, fix abslimit's IP entry, tweak bind autogen script
cathugger <cathugger@cock.li>
parents:
1210
diff
changeset
|
51 IP=$((0x$PFX)) |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
52 DOM=$IP.in-addr.arpa |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
53 RDNS_ZONEFILE="$ZONEFILE_DIR/$DOM" |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
54 echo -n "generating IPv4 reverse lookup zonefile for $IP/8..." >&2 |
1138
c95369b825a2
whoisd... don't remember.
epoch <epoch@hacking.allowed.org>
parents:
1120
diff
changeset
|
55 |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
56 echo "; this zonefile genreated on: `date -u`" > "$RDNS_ZONEFILE".tmp |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
57 echo '$TTL 3600' >> "$RDNS_ZONEFILE".tmp |
1206
08be53f67e42
NSD requires absolute origin
cathugger <cathugger@cock.li>
parents:
1205
diff
changeset
|
58 echo '$ORIGIN' $DOM. >> "$RDNS_ZONEFILE".tmp |
1230
24c17a3904b9
Revert "dropped the use of @ so the generated zones would work with yadifa too. also exported env vars so child of bind_tld_zonefile_all.sh can use them"
epoch <epoch@hack.thebackupbox.net>
parents:
1226
diff
changeset
|
59 echo '@ IN SOA @ root ('`date -u +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$RDNS_ZONEFILE".tmp |
24c17a3904b9
Revert "dropped the use of @ so the generated zones would work with yadifa too. also exported env vars so child of bind_tld_zonefile_all.sh can use them"
epoch <epoch@hack.thebackupbox.net>
parents:
1226
diff
changeset
|
60 echo '@ IN NS @' >> "$RDNS_ZONEFILE".tmp |
24c17a3904b9
Revert "dropped the use of @ so the generated zones would work with yadifa too. also exported env vars so child of bind_tld_zonefile_all.sh can use them"
epoch <epoch@hack.thebackupbox.net>
parents:
1226
diff
changeset
|
61 echo '@ IN A 127.0.0.1' >> "$RDNS_ZONEFILE".tmp |
1138
c95369b825a2
whoisd... don't remember.
epoch <epoch@hacking.allowed.org>
parents:
1120
diff
changeset
|
62 |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
63 for i in */*/ns/*;do |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
64 [ -e "$i" ] || continue |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
65 f=$(basename $i) |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
66 a=$(basename $(dirname $i)) |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
67 b=$(basename $(dirname $(dirname $i))) |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
68 c=$(basename $(dirname $(dirname $(dirname $i)))) |
1212
0e5d4b7fc3d8
add missing cidr entry, fix abslimit's IP entry, tweak bind autogen script
cathugger <cathugger@cock.li>
parents:
1210
diff
changeset
|
69 ipv4=`printf "%d.%d" $((0x$b)) $((0x$c))` |
1201
7490236529e9
a bit more alignment for bind tld zonefile generation
cathugger <cathugger@cock.li>
parents:
1199
diff
changeset
|
70 printf "%-7s IN NS %s\n" $ipv4 ${f}. |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
71 done >> "$RDNS_ZONEFILE".tmp |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
72 mv -f "$RDNS_ZONEFILE".tmp "$RDNS_ZONEFILE" |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
73 echo " done." >&2 |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
74 done |
1138
c95369b825a2
whoisd... don't remember.
epoch <epoch@hacking.allowed.org>
parents:
1120
diff
changeset
|
75 |
1148
5c239f21ff7e
fixed a bug where I used a literal instead of one of the user defined variables (thx mkz)
epoch <epoch@hacking.allowed.org>
parents:
1138
diff
changeset
|
76 |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
77 cd "$RESDB_PATH/db/dom" |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
78 for TLD in $TLDS;do |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
79 cd "$RESDB_PATH/db/dom/$TLD" 2>/dev/null || continue |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
80 ANO_ZONEFILE="$ZONEFILE_DIR/$TLD" |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
81 echo -n "generating .${TLD} TLD zonefile..." >&2 |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
82 |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
83 echo "; this zonefile genreated on: `date -u`" > "$ANO_ZONEFILE".tmp |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
84 echo '$TTL 3600' >> "$ANO_ZONEFILE".tmp |
1206
08be53f67e42
NSD requires absolute origin
cathugger <cathugger@cock.li>
parents:
1205
diff
changeset
|
85 echo '$ORIGIN' $TLD. >> "$ANO_ZONEFILE".tmp |
1230
24c17a3904b9
Revert "dropped the use of @ so the generated zones would work with yadifa too. also exported env vars so child of bind_tld_zonefile_all.sh can use them"
epoch <epoch@hack.thebackupbox.net>
parents:
1226
diff
changeset
|
86 echo '@ IN SOA @ root ('`date -u +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$ANO_ZONEFILE".tmp |
24c17a3904b9
Revert "dropped the use of @ so the generated zones would work with yadifa too. also exported env vars so child of bind_tld_zonefile_all.sh can use them"
epoch <epoch@hack.thebackupbox.net>
parents:
1226
diff
changeset
|
87 echo '@ IN NS @' >> "$ANO_ZONEFILE".tmp |
24c17a3904b9
Revert "dropped the use of @ so the generated zones would work with yadifa too. also exported env vars so child of bind_tld_zonefile_all.sh can use them"
epoch <epoch@hack.thebackupbox.net>
parents:
1226
diff
changeset
|
88 echo '@ IN A 127.0.0.1' >> "$ANO_ZONEFILE".tmp |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
89 |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
90 for name in *;do |
1205 | 91 if [ -d "$name/ns" ];then |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
92 for server in "$name"/ns/*;do |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
93 [ -e "$server" ] || continue |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
94 fqserver=`cut -d/ -f3- <<< "$server"` |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
95 echo -e "${name}\tIN NS\t${fqserver}." |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
96 for ip in $(cat $server);do |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
97 if grep ':' <<< "$ip" > /dev/null;then |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
98 printf '%s.\tIN AAAA\t%s\n' "${fqserver}" "${ip}" |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
99 else |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
100 printf '%s.\tIN A\t%s\n' "${fqserver}" "${ip}" |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
101 fi |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
102 done |
1120
8e01b8361e9e
changed add_dom to not even bother with anything head -c -1 related. should still work.
epoch <epoch@hacking.allowed.org>
parents:
diff
changeset
|
103 done |
1199
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
104 fi |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
105 done >> "$ANO_ZONEFILE".tmp |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
106 mv -f "$ANO_ZONEFILE".tmp "$ANO_ZONEFILE" |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
107 echo " done." >&2 |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
108 done |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
109 |
dfda92fd4ec3
rewrite bind tld zonefile generators
cathugger <cathugger@cock.li>
parents:
1191
diff
changeset
|
110 echo might want to send a sighup to your named now. >&2 |