124 lines
3.4 KiB
Bash
124 lines
3.4 KiB
Bash
#!/bin/sh
|
|
|
|
package=knot
|
|
service=knotd
|
|
|
|
state=$(cat "$__object/parameter/state")
|
|
|
|
################################################################################
|
|
# Basic stuff
|
|
#
|
|
__package "$package" --state "$state"
|
|
require="__package/$package" __start_on_boot "$service"
|
|
|
|
zonesrc=$__files/dns/zones
|
|
zonesextsrc=$__files/dns/zones_extensions
|
|
zonedst=/var/lib/knot
|
|
confdst=/etc/knot/knot.conf
|
|
|
|
tmpdir="$__object/files"
|
|
confsrc=$tmpdir/knot.conf
|
|
mkdir "$tmpdir"
|
|
|
|
cp $__type/files/knot.conf "$confsrc"
|
|
|
|
for zone in $(cd "$zonesrc" && ls -1); do
|
|
zonefile="$zonedst/${zone}.zone"
|
|
zonesrcfile="$zonesrc/$zone"
|
|
|
|
# Handled synthetic in knot
|
|
synth_module=""
|
|
case $zone in
|
|
# Treat IPv4 all the same
|
|
*.155.185.in-addr.arpa|*.203.185.in-addr.arpa|*.78.147.in-addr.arpa)
|
|
module="module: mod-synthrecord/ungleich-reverse-v4"
|
|
;;
|
|
ipv4.at.ungleich.ch)
|
|
module="module: mod-synthrecord/ungleich-forward-v4"
|
|
;;
|
|
|
|
1.1.0.0.2.0.0.0.0.c.5.e.a.0.a.2.ip6.arpa)
|
|
module="module: mod-synthrecord/k8s-p6-1-reverse"
|
|
;;
|
|
k8s-1.place6.ungleich.ch)
|
|
module="module: mod-synthrecord/nameservice-forward"
|
|
;;
|
|
d.1.0.0.0.c.5.e.a.0.a.2.ip6.arpa)
|
|
module="module: mod-synthrecord/linthfarm-reverse"
|
|
;;
|
|
linthfarm.place6.ungleich.ch)
|
|
module="module: mod-synthrecord/linthfarm-forward"
|
|
;;
|
|
3.1.0.0.0.c.5.e.a.0.a.2.ip6.arpa)
|
|
module="module: mod-synthrecord/place7-reverse"
|
|
;;
|
|
6.1.0.0.0.c.5.e.a.0.a.2.ip6.arpa)
|
|
module="module: mod-synthrecord/room7-reverse"
|
|
;;
|
|
0.1.0.0.0.c.5.e.a.0.a.2.ip6.arpa)
|
|
module="module: mod-synthrecord/ungleich-reverse-diesbach"
|
|
;;
|
|
1.c.5.e.a.0.a.2.ip6.arpa)
|
|
module="module: mod-synthrecord/vpn-reverse"
|
|
;;
|
|
*[0-7].c.5.e.a.0.a.2.ip6.arpa)
|
|
module="module: mod-synthrecord/ungleich-reverse"
|
|
;;
|
|
*[0-7].4.9.2.9.0.a.2.ip6.arpa)
|
|
module="module: mod-synthrecord/ungleich-reverse2"
|
|
;;
|
|
|
|
hacks.in.digitalglarus.ch)
|
|
module="module: mod-synthrecord/ungleich-forward-diesbach"
|
|
;;
|
|
|
|
has-a.name|has-aaaa.name)
|
|
module="module: mod-synthrecord/nameservice-forward"
|
|
;;
|
|
|
|
ipv6.fun.via.wifi.ungleich.ch)
|
|
module="module: mod-synthrecord/place7-forward"
|
|
;;
|
|
|
|
ipv6.magic.ungleich.ch)
|
|
module="module: mod-synthrecord/vpn-forward"
|
|
;;
|
|
|
|
loves.ipv6.at.ungleich.ch)
|
|
module="module: mod-synthrecord/ungleich-forward"
|
|
;;
|
|
|
|
room7.place10.ungleich.ch|magic.room7.ungleich.ch)
|
|
module="module: mod-synthrecord/room7-forward"
|
|
;;
|
|
|
|
uses.ipv6.at.ungleich.ch)
|
|
module="module: mod-synthrecord/ungleich-forward2"
|
|
;;
|
|
|
|
*)
|
|
module=""
|
|
;;
|
|
|
|
esac
|
|
|
|
# Add to configuration
|
|
cat << eof >> "$confsrc"
|
|
- domain: ${zone}.
|
|
file: $zonefile
|
|
${module}
|
|
eof
|
|
|
|
# Zone
|
|
require="__package/$package" __file "$zonefile" \
|
|
--state "$state" \
|
|
--source "$zonesrcfile" \
|
|
--mode 0644 \
|
|
--owner knot
|
|
done
|
|
# Config
|
|
require="__package/$package" __file "$confdst" \
|
|
--state "$state" \
|
|
--mode 0644 \
|
|
--source "$confsrc"
|