aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 3b77e2d96943013c68dfb4c5500dae77de52a294 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Our local master server.
MASTER=		hemlock.eden.le-fay.org
MASTER_ADDR!=	getaddrinfo -f inet6 -p tcp -t stream hemlock.eden.le-fay.org|awk '{ print $$4 }'

# The DN42 master server.
DN42_MASTER=	fd42:4242:2601:ac53::1

NSDIFF=		nsdiff
NSDIFFFLAGS=	-Sserial -s ${MASTER}
DIFF?=

# The zones we serve.
ZONES=	le-fay.org \
	le-fay.org.uk \
	le-fay.dn42 \
	rt.uk.eu.org \
	b.6.0.b.3.8.a.0.b.5.d.f.ip6.arpa \
	e.1.0.0.0.8.c.1.6.0.a.2.ip6.arpa \
	b.6.0.0.8.9.0.1.0.0.a.2.ip6.arpa \
	a.4.0.4.8.a.b.0.1.0.0.2.ip6.arpa \
	5.1.0.4.8.a.b.0.1.0.0.2.ip6.arpa \
	5.b.a.a.0.b.8.0.1.0.0.2.ip6.arpa \
	117.73.187.81.in-addr.arpa \
	160-175.96.2.81.in-addr.arpa \
	192-207.47.187.81.in-addr.arpa \
	0/26.76.23.172.in-addr.arpa \
	18.198.in-addr.arpa

# These zones are used for DN42.
DN42_ZONES= \
	dn42 \
	d.f.ip6.arpa \
	20.172.in-addr.arpa \
	21.172.in-addr.arpa \
	22.172.in-addr.arpa \
	23.172.in-addr.arpa \
	24.172.in-addr.arpa \
	25.172.in-addr.arpa \
	26.172.in-addr.arpa \
	27.172.in-addr.arpa \
	28.172.in-addr.arpa \
	29.172.in-addr.arpa \
	30.172.in-addr.arpa \
	31.172.in-addr.arpa

# Our local networks.
# TODO: Generate these from LDAP.
LFNETWORKS= \
	2001:8b0:aab5::/48 \
	81.187.47.192/28 \
	81.2.96.160/28 \
	81.187.73.117/32 \
	2a00:1098:6b::/48 \
	2001:ba8:4015::/48 \
	2001:ba8:404a::/48 \
	fd5b:a83:b06b::/48 \
	172.16.0.0/12 \
	10.0.0.0/8 \
	198.18.0.0/15

UNBOUND_SERVERS= \
	witch.le-fay.org \
	turnera.le-fay.org

UNBOUND_PROCESS_FLAGS= \
	-Dconfdir=/usr/local/etc/unbound \
	-Dmaster="${MASTER}" \
	-Dmaster_addr="${MASTER_ADDR}" \
	-Dlfnetworks="${LFNETWORKS}" \
	-Dlocal_zones="${ZONES}" \
	-Ddn42_zones="${DN42_ZONES}" \
	-Ddn42_master="${DN42_MASTER}"
UNBOUND_PROCESS_FLAGS.witch.le-fay.org=		-Dtls=yes
UNBOUND_PROCESS_FLAGS.turnera.le-fay.org=	-Dtls=yes

all:
	@echo "Please specify a target:"
	@echo "  make diff           show diff between zone files and online zone"
	@echo "  make update-zones   update online zones"
	@echo "  make unbound-update build and install Unbound configs"

clean:

.PATH: ${.CURDIR}/zones
.OBJDIR: ${.CURDIR}/build
.PHONY: all update-zones clean

.for zone in ${ZONES}
update-zones: ${zone}

.PHONY: ${zone}

${zone}: ${zone:S,/,_,g}.zone
.if ${DIFF} != ""
	@tmpfile="$$(mktemp dns.XXXXXX)"; \
	${NSDIFF} ${NSDIFFFLAGS} ${zone} $> \
		>"$$tmpfile" 2>&1 \
	|| cat "$$tmpfile"; \
	rm "$$tmpfile"
.else
	${NSDIFF} ${NSDIFFFLAGS} ${zone} $> | nsupdate -g
.endif
.endfor

.PHONY: diff

diff:
	@${MAKE} -C ${.CURDIR} update-zones DIFF=yes

unbound-update:

.for server in ${UNBOUND_SERVERS}
update-unbound: update-unbound-${server}
update-unbound-${server}: unbound.conf.${server}
	@echo "updating ${server}"
unbound.conf.${server}: unbound.conf.erb
	${.CURDIR}/bin/process				\
		-Dservername=${server}			\
		${UNBOUND_PROCESS_FLAGS}		\
		${UNBOUND_PROCESS_FLAGS.${server}}	\
		$> $@
clean: clean-unbound-${server}
clean-unbound-${server}:
	rm -f ${.OBJDIR}/unbound.conf.${server}
.endfor