From d27411c82741d5ab43ed35ba1ecd7339c3073330 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sat, 15 Oct 2011 22:43:41 +0200 Subject: [PATCH] Rewritten blackhole zones It turned out that if we follow RFC 6303, BIND complains about invalid NS records. So let them point to our address instead. --- cf.dist/blackhole | 7 +++++-- m4/mkmf.m4 | 8 +++++++- m4/nsc.m4 | 8 ++++++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/cf.dist/blackhole b/cf.dist/blackhole index e410064..521c51d 100644 --- a/cf.dist/blackhole +++ b/cf.dist/blackhole @@ -1,4 +1,7 @@ +divert(0)dnl ; Recommended contents of blackhole zones as per RFC 6303 +; However, we need to set the NS record to our address, +; since otherwise BIND complains. -@ 10800 IN SOA @ nobody.invalid. 1 3600 1200 604800 10800 -@ 10800 IN NS @ +@ 10800 IN SOA NSNAME nobody.invalid. 1 3600 1200 604800 10800 +@ 10800 IN NS NSNAME diff --git a/m4/mkmf.m4 b/m4/mkmf.m4 index ced7cd2..bb65116 100644 --- a/m4/mkmf.m4 +++ b/m4/mkmf.m4 @@ -19,6 +19,8 @@ define(`PRIMARIES', PRIMARIES ZONEDIR/nsc_file_name($1)) define(`REVERSE', `PRIMARY(nsc_if_v6($1,`nsc_revblock6($1)',`nsc_revaddr($1)'), shift($@))') +define(`BLACKHOLE', `define(`NEED_BLACKHOLE', 1)') + # Insertion of raw makefile material define(`MAKEFILE', `divert(0)$1 @@ -26,9 +28,13 @@ divert(-1)') # Last words -define(`nsc_cleanup', `divert(0)VERSDIR/.version: CFDIR/domains ROOTCACHE`'PRIMARIES +define(`nsc_cleanup', `divert(0)VERSDIR/.version: CFDIR/domains ROOTCACHE`'PRIMARIES`'ifdef(`NEED_BLACKHOLE',` ZONEDIR/blackhole') NAMED_RESTART_CMD touch VERSDIR/.version +ifdef(`NEED_BLACKHOLE', ` +ZONEDIR/blackhole: CFDIR/blackhole $(DDEPS) + `$'(`M4') $(NSC) $< >`$'@ +')dnl clean: find BAKDIR ZONEDIR -maxdepth 1 -type f | xargs rm -f diff --git a/m4/nsc.m4 b/m4/nsc.m4 index 05a7324..2baf299 100644 --- a/m4/nsc.m4 +++ b/m4/nsc.m4 @@ -1,6 +1,6 @@ dnl ### dnl ### NSC -- Zone File Generator -dnl ### (c) 1997--2008 Martin Mares +dnl ### (c) 1997--2011 Martin Mares dnl ### dnl ### Usage: m4 -DVERS=path-to-version-file nsc.m4 domain-source-files >zone-file dnl ### @@ -8,7 +8,7 @@ include(m4/dnslib.m4) # Version number -ifdef(`VERS',`',`nsc_fatal_error(`VERS macro not defined')') +ifdef(`VERS',` define(TODAY_CODE, translit(esyscmd(`date +"%Y%m%d"'),` ',`')) @@ -21,6 +21,10 @@ syscmd(echo >VERS "`define'(`LAST_TODAY_CODE',TODAY_CODE) `define'(`SUBVER_NUM', ifelse(eval(SUBVER_NUM > 99),1,`nsc_fatal_error(`Too many zone changes in a single day, you must tweak 'VERS` manually')') define(`VERSION',TODAY_CODE`'format(`%02d', SUBVER_NUM)) +',` +define(`VERSION', 1) +') + # Record names define(nsc_set_name, `define(`CURRENT_NAME', nsc_corr_dot($1))define(`PRINT_NAME', CURRENT_NAME)') -- 2.39.2