From: Martin Mares Date: Sat, 20 Dec 2003 19:18:25 +0000 (+0000) Subject: First step to version 3.0. Changes too extensive to comment them. X-Git-Tag: v5.1~58 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=ad59bf15d0e8a781477a25f69b97f7d4c9eb0e00;p=nsc-5.git First step to version 3.0. Changes too extensive to comment them. I'll update the NEWS one day. --- diff --git a/bin/nsconfig b/bin/nsconfig index d103f4d..b104932 100755 --- a/bin/nsconfig +++ b/bin/nsconfig @@ -1,24 +1,16 @@ #!/bin/bash # NSC -- Makefile & Config file build script -# (c) 1997--2000 Martin Mares +# (c) 1997--2003 Martin Mares -ROOT=/etc/named # Root dir of the whole package -CF=cf # Place for all configuration files -ZONES=zone # Place for all primary zone files -BAX=bak # Place for all secondary zone files -VERS=ver # Place for all primary version files -NSC=m4 # Place for all scripts - -DOMAINS=$CF/domains # The master domain list -MKFILE=Makefile # Makefile to generate -CONFFILE=named.conf # Configuration file to generate -CACHE=root.cache +set -e M4=`which gm4` || M4=`which m4` || ( echo "Unable to find M4!" ; exit 1 ) +DOMAINS=cf/domains if [ ! -f $DOMAINS ] ; then echo "Domain list file missing." exit 1 fi -m4 $NSC/dnslib.m4 $NSC/mkconf.m4 $DOMAINS >$CONFFILE -DZONEDIR=$ZONES -DBAKDIR=$BAX -DCACHE=$CACHE -DROOT=$ROOT -m4 $NSC/dnslib.m4 $NSC/mkmf.m4 $DOMAINS >$MKFILE -DZONEDIR=$ZONES -DBAKDIR=$BAX -DCACHE=$CACHE -DVERSDIR=$VERS -DNSCDIR=$NSC -DCONF=$CONFFILE -DCFDIR=$CF -DM4=$M4 + +$M4 m4/mkconf.m4 $DOMAINS >named.conf +$M4 m4/mkmf.m4 $DOMAINS >Makefile -DM4=$M4 diff --git a/m4/dnslib.m4 b/m4/dnslib.m4 index 9c4d0a4..8049ee7 100644 --- a/m4/dnslib.m4 +++ b/m4/dnslib.m4 @@ -1,30 +1,104 @@ dnl ### -dnl ### NSC 2.0 -- Library Functions For DNS Processing -dnl ### (c) 1997 Martin Mares +dnl ### NSC 3.0 -- Library Functions For DNS Processing +dnl ### (c) 1997--2003 Martin Mares dnl ### divert(-1) +# NSC version + +define(`NSCVER', `NSC 2.99a') + # Current date and time -define(`curdate', translit(esyscmd(`date'),` +define(`CURRENT_DATE', translit(esyscmd(`date'),` ',`')) # Time conversion -define(minutes, `eval($1*60)') -define(hours, `eval($1*3600)') -define(days, `eval($1*86400)') +define(MINUTES, `eval($1*60)') +define(HOURS, `eval($1*3600)') +define(DAYS, `eval($1*86400)') + +# Reverse an IP address + +define(nsc_revIPa, `ifelse($#, 1, `$1', `nsc_revIPa(shift($@)).$1')') +define(nsc_revaddr, `nsc_revIPa(translit($1, `.', `,'))') + +# Fix up dots in a name: if the name is not simple (i.e., it contains at least one dot), +# ensure that it ends with a dot. -# Reversal of IP address +define(nsc_corr_dot, `ifelse(substr($1,decr(len($1))),.,$1,$1`'ifelse(index($1,.),-1,,.))') -define(revIPa, `ifelse($#, 1, `$1', `revIPa(shift($@)).$1')') -define(revaddr, `revIPa(translit($1, `.', `,'))') +# Normalize IPv6 address -# Add explicit dot at the end if the name contains domain part +define(nsc_if_v6, `ifelse(index($1,:),-1,`$3',`$2')') -define(corr_dot, `$1`'ifelse(index($1,`.'),-1,,`.')') +define(nsc_norm_v6, `nsc_norm_v6_z(dnl +ifelse(regexp($1,`::.*::'),-1,`ifelse(index($1,::),-1,`nsc_norm_v6_nn($1)',`nsc_norm_v6_cc($1)')',`nsc_bad_v6($1)'))') +# If there is no ::, check the number of :'s +define(nsc_norm_v6_nn, `ifelse(nsc_extract_colons($1),:::::::,$1,`nsc_bad_v6($1)')') +# Replace :: by the right number of :'s to get 8 (possibly empty) components +define(nsc_norm_v6_cc, `regexp($1,`\(.*\)::\(.*\)',`\1'nsc_n_times(eval(9-len(nsc_extract_colons($1))),:)`\2')') +# Delete everything except colons +define(nsc_extract_colons, `ifelse(index($1,:),-1,,`:nsc_extract_colons(regexp($1,`\(.*\):\(.*\)',`\1\2'))')') +# Repeat a given string N times +define(nsc_n_times, `ifelse($1,0,,`$2`'nsc_n_times(eval($1-1),`$2')')') +# Pad each component to 4 hex digits and convert them to lowercase +define(nsc_norm_v6_z, `nsc_norm_v6_digs(translit($1,:,`,'))') +define(nsc_norm_v6_digs, `nsc_norm_v6_dig($1)`'ifelse($#,1,,:`nsc_norm_v6_digs(shift($@))')') +define(nsc_norm_v6_dig, `ifelse(eval(len($1) > 4),1,`nsc_bad_v6($1)',`nsc_n_times(eval(4-len($1)),0)`'translit($1,A-F,a-f)')') +# Report a fatal error in IPv6 address +define(nsc_bad_v6, `nsc_fatal_error(`Invalid IPv6 address: '$1)') + +# Reverse an IPv6 address or block + +define(nsc_revaddr6, `substr(nsc_do_revaddr6(nsc_norm_v6($1)),1)') +define(nsc_do_revaddr6, `ifelse($1,,,substr($1,0,1),:,`nsc_do_revaddr6(substr($1,1))',`nsc_do_revaddr6(substr($1,2)).substr($1,1,1).substr($1,0,1)')') +define(nsc_revblock6, `nsc_do_revblock6(translit($1,/,`,'))') +define(nsc_do_revblock6, `substr(nsc_revaddr6($1),dnl +ifelse(eval($2%4),0,`eval(64-$2/2)',`nsc_fatal_error(`Prefixes must respect hex digit boundary')'))') # Iteration -define(itera, `ifelse($#, 1, `iter($1)', `iter($1)`'itera(shift($@))')') -define(iterate, `define(`iter', defn(`$1'))itera($2)') +define(nsc_itera, `ifelse($1,,,`nsc_iter($1)')`'ifelse($#,1,,`nsc_itera(shift($@))')') +define(nsc_iterate, `define(`nsc_iter', defn(`$1'))nsc_itera(shift($@))') + +# Generate name of reverse domain + +define(REV, `nsc_if_v6($1,`nsc_revblock6($1).ip6.arpa',`nsc_revaddr($1).in-addr.arpa')') + +# A for loop macro from m4 doc + +define(`nsc_forloop', + `pushdef(`$1', `$2')nsc__forloop(`$1', `$2', `$3', `$4')popdef(`$1')') +define(`nsc__forloop', + `$4`'ifelse($1, `$3', , + `define(`$1', incr($1))nsc__forloop(`$1', `$2', `$3', `$4')')') + +# Reporting errors + +define(`nsc_fatal_error', `errprint(`NSC error: $1 +')m4exit(1)') + +# Default values of parameters and user configuration + +define(`NAMED_RESTART_CMD', `ndc reload') + +define(`BIND_OPTIONS', ` # Other options can be added here via macro BIND_OPTIONS') + +define(`ROOT', `/etc/named') +define(`CFDIR', `cf') +define(`ZONEDIR', `zone') +define(`BAKDIR', `bak') +define(`VERSDIR', `ver') +define(`ROOTCACHE', `root.cache') + +define(`REFRESH', HOURS(8)) +define(`RETRY', HOURS(2)) +define(`EXPIRE', DAYS(14)) +define(`MINTTL', DAYS(1)) +define(`NSNAME', translit(esyscmd(`hostname -f'),` +',`')) +define(`MAINTNAME', `root'.`nsc_corr_dot(NSNAME)') + +include(CFDIR/config) diff --git a/m4/mkconf.m4 b/m4/mkconf.m4 index a729eba..0b4c961 100644 --- a/m4/mkconf.m4 +++ b/m4/mkconf.m4 @@ -1,17 +1,21 @@ dnl ### -dnl ### NSC 2.2 -- BIND Config File Builder -dnl ### (c) 1997--1999 Martin Mares +dnl ### NSC -- BIND Config File Builder +dnl ### (c) 1997--2003 Martin Mares dnl ### +include(m4/dnslib.m4) -# Definition of primary domain +# Definition of primary domains -define(`PRIMARY', `divert(0)zone "$1" in { +define(`DO_PRIMARY', `divert(0)zone "$1" in { type master; - file "ZONEDIR/$1"; + file "ZONEDIR/$2"; }; divert(-1)') +define(`PRIMARY', `DO_PRIMARY($1,$1)') +define(`REVERSE', `DO_PRIMARY(REV($1),nsc_if_v6($1,`nsc_revblock6($1)',`nsc_revaddr($1)'))') + # Definition of secondary domain define(`SECONDARY', `divert(0)zone "$1" in { @@ -22,20 +26,6 @@ define(`SECONDARY', `divert(0)zone "$1" in { divert(-1)') -# Definition of reverse domain - -define(`REVERSE', `divert(0)zone "revaddr($1).in-addr.arpa" in { - type master; - file "ZONEDIR/revaddr($1)"; -}; - -divert(-1)') - -# Definition of reverse sub-domain - -define(`PARTIAL', `SECONDARY(revaddr($1).in-addr.arpa,$3)') -define(`PREVERSE', `REVERSE($1)') - # Definition of forwarders for both normal and slave mode define(`FORWard', `patsubst(`$@',`,',`; ')') @@ -53,25 +43,24 @@ divert(-1)') define(`CONFIG', `divert(0)$1 divert(-1)') -# BIND options +# The preamble + +divert(0)dnl +`#' +`#' BIND configuration file +`#' Generated by NSCVER (mkconf.m4) on CURRENT_DATE +`#' Please don't edit manually +`#' -define(`OPTIONS', `divert(0)options { +options { directory "ROOT"; interface-interval 0; -$1}; +BIND_OPTIONS +}; zone "." in { type hint; - file "root.cache"; + file "ROOTCACHE"; }; -divert(-1)') - -divert(0)dnl -`#' -`#' Name server configuration file -`#' Generated by mkconf.m4 on curdate -`#' Please don't edit manually -`#' - divert(-1) diff --git a/m4/mkmf.m4 b/m4/mkmf.m4 index 81489fa..19942c5 100644 --- a/m4/mkmf.m4 +++ b/m4/mkmf.m4 @@ -1,46 +1,23 @@ dnl ### -dnl ### NSC 2.2 -- Makefile Builder -dnl ### (c) 1997--1999 Martin Mares +dnl ### NSC -- Makefile Builder +dnl ### (c) 1997--2003 Martin Mares dnl ### +include(m4/dnslib.m4) -# Things we allow to override +# Definition of primary domains; secondaries we needn't take care of -define(`named_restart_cmd', `ndc reload') +define(`PRIMARIES', `') -# List of all version files available - -define(`ALLVERS', CONF CACHE) -define(`ADDVER', `define(`ALLVERS', ALLVERS` $1')') - -# Definition of primary domain - -define(`PRIMARY', `divert(0)VERSDIR/$1 ZONEDIR/$1: CFDIR/$1 - `$'(NSC) CFDIR/$1 >ZONEDIR/$1 -DVERS=VERSDIR/$1 - -divert(-1) -ADDVER(VERSDIR/$1) -') - -# Definition of reverse domain - -define(`REVCF', ` patsubst(CFDIR/$1,`^cf/\(.*\)\+\(.*\)$',`ZONEDIR/\1+\2')') -define(`REVERSi', `define(`ev',revaddr($1))define(`ew',`shift(shift($@))') -divert(0)VERSDIR/ev ZONEDIR/ev:iterate(`REVCF', `ew') - `$'(NSC)iterate(`REVCF', `ew') >ZONEDIR/ev -DVERS=VERSDIR/ev -DREVERSE=$2 -DREVBASE=$1 +define(`nsc_prepend_cf_one', ` 'CFDIR/`$1') +define(`nsc_prepend_cf_multi', `nsc_iterate(`nsc_prepend_cf_one', $@)') +define(`PRIMARY', `divert(0)ZONEDIR/$1:nsc_prepend_cf_multi($@) $(DDEPS) + `$'(NSC)nsc_prepend_cf_multi($@) >ZONEDIR/$1 -DVERS=VERSDIR/$1 divert(-1) -ADDVER(VERSDIR/ev) +define(`PRIMARIES', PRIMARIES ZONEDIR/$1) ') -define(`REVERSE', `REVERSi($1,$@)') -define(`PREVERSE', `REVERSi($1,patsubst($1,`^\(.*\)\..*$',`\1'),shift($@))') - -# Definition of partial reverse zone delegation (also called classless in-addr.arpa) - -define(`PARTIAL', `divert(0)ZONEDIR/$1+$2: - `$'(PGEN) >ZONEDIR/$1+$2 -DBASE=revaddr($1) -DFROM=patsubst(`$1', `^.*\.\(.*\)$', `\1') -DCOUNT=$2 -DSERV=shift(shift($@)) - -divert(-1)') +define(`REVERSE', `PRIMARY(nsc_if_v6($1,`nsc_revblock6($1)',`nsc_revaddr($1)'), shift($@))') # Insertion of raw makefile material @@ -49,15 +26,15 @@ divert(-1)') # Last words -define(`cleanup', `divert(0)VERSDIR/.version: ALLVERS - named_restart_cmd +define(`nsc_cleanup', `divert(0)VERSDIR/.version: CFDIR/domains ROOTCACHE`'PRIMARIES + NAMED_RESTART_CMD touch VERSDIR/.version clean: find BAKDIR ZONEDIR -type f -maxdepth 1 | xargs rm -f clobber: clean - rm -f Makefile CONF + rm -f Makefile named.conf distclean: clobber find VERSDIR -type f -maxdepth 1 | xargs rm -f @@ -66,13 +43,14 @@ distclean: clobber divert(0)dnl `#' `#' Nameserver Configuration Makefile -`#' Generated by mkmf.m4 on curdate +`#' Generated by NSCVER (mkmf.m4) on CURRENT_DATE `#' Please don't edit manually `#' -NSC=M4 NSCDIR/dnslib.m4 NSCDIR/nsc.m4 -PGEN=m4 NSCDIR/dnslib.m4 NSCDIR/pgen.m4 +`M4'=M4 +NSC=$(`M4') m4/nsc.m4 +DDEPS=m4/nsc.m4 m4/dnslib.m4 cf/config all: VERSDIR/.version -m4wrap(`cleanup') +m4wrap(`nsc_cleanup') divert(-1) diff --git a/m4/nsc.m4 b/m4/nsc.m4 index f682832..ad6fa76 100644 --- a/m4/nsc.m4 +++ b/m4/nsc.m4 @@ -1,106 +1,144 @@ dnl ### -dnl ### NSC 2.3 -- Zone File Generator -dnl ### (c) 1997--2000 Martin Mares +dnl ### NSC -- Zone File Generator +dnl ### (c) 1997--2003 Martin Mares dnl ### -dnl ### Usage: m4 nsc.m4 domain-source-files >zone-file -dnl ### Or: m4 nsc.m4 domain-source-files >rev-zone-file -DREVERSE=net-ip -DREVBASE=net-ip-to-SOA +dnl ### Usage: m4 nsc.m4 domain-source-files >zone-file -DVERS=path-to-version-file dnl ### +include(m4/dnslib.m4) -# Default values of zone parameters: +# Version number + +ifdef(`VERS',`',`nsc_fatal_error(`VERS macro not defined')') -define(refresh, hours(8)) -define(retry, hours(2)) -define(expire, days(7)) -define(minttl, days(1)) -define(nsname, translit(esyscmd(`hostname -f'),` +define(TODAY_CODE, translit(esyscmd(`date +"%Y%m%d"'),` ',`')) -define(maintname, `root'.`corr_dot(nsname)') +sinclude(VERS) +# Backward compatibility with NSC 2.x version files +ifdef(`last_today_code', `define(`LAST_TODAY_CODE',last_today_code)undefine(`last_today_code')') +ifdef(`subver_num', `define(`SUBVER_NUM',subver_num)undefine(`subver_num')') +ifelse(TODAY_CODE, LAST_TODAY_CODE, `', `define(`SUBVER_NUM',1)') +syscmd(echo >VERS "`define'(`LAST_TODAY_CODE',TODAY_CODE) `define'(`SUBVER_NUM',incr(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)) -# Domain name +# Record names -define(whole_domain, `ifdef(`REVERSE', `define(esrever,revaddr(REVBASE))esrever.in-addr.arpa', `Xdomain')')) -define(dotdomain, `ifelse(Xdomain,,,.Xdomain)') +define(nsc_set_name, `define(`CURRENT_NAME', nsc_corr_dot($1))define(`PRINT_NAME', CURRENT_NAME)') +define(nsc_emit_name, `ifdef(`PRINT_NAME', `PRINT_NAME`'undefine(`PRINT_NAME')', `')') +define(nsc_abs_name, `ifelse(CURRENT_NAME, translit(CURRENT_NAME,.,:), CURRENT_NAME.CURRENT_DOMAIN, CURRENT_NAME)') -# Generate reverse addressing if needed +# SOA record -define(stop_if_rev, `ifdef(`REVERSE', `divert(-1)')') -define(mk_PTR, `divert -revaddr(substr($1,incr(len(REVERSE)))) PTR $2`'ifelse(index($2,`.'),-1,`dotdomain.',`')') +define(nsc_SOA, `divert; Primary file for the CURRENT_DOMAIN domain +; Generated by NSCVER (nsc.m4) on CURRENT_DATE +; Please do not edit manually + +$ORIGIN CURRENT_DOMAIN +$TTL MINTTL +nsc_emit_name `SOA' nsc_corr_dot(NSNAME) MAINTNAME ( + VERSION REFRESH RETRY EXPIRE MINTTL )') +define(SOA, `ifdef(`CURRENT_DOMAIN',`ifdef(`REVERSE_MODE',,`nsc_fatal_error(`SOA record defined twice')')')dnl +define(`CURRENT_DOMAIN',$1.)dnl +nsc_set_name(CURRENT_DOMAIN)dnl +ifdef(`REVERSE_MODE',,`nsc_SOA')') + +# Reverse zones + +define(REVERSE, `divert(-1) + define(`REVERSE_MODE', `') + nsc_if_v6($1,` + define(`REVNET6', nsc_revblock6($1)) + ',` + define(`REVNET', `$1.') + define(`REVLOW', `$2') + define(`REVHIGH', `$3') + ') +') -define(mk_ptr, `ifelse(REVERSE, substr($1, 0, len(REVERSE)),`mk_PTR($1,$2)')') -define(emit_ptr, `ifdef(`REVERSE', `mk_ptr($1,$2)divert(-1)')') +define(nsc_mk_PTR, ` + divert`'$1 `PTR' $2 +divert(-1) +') -# Version number +define(nsc_auto_PTR4, `dnl +ifdef(`REVNET', ` + ifelse(REVNET, substr($1, 0, len(REVNET)), ` + define(`REVX', substr($1, len(REVNET))) + ifelse(REVLOW, `', + `nsc_mk_PTR(nsc_revaddr(REVX), $2)', + ` + ifelse(eval((REVX >= REVLOW) && (REVX <= REVHIGH)), 1, `nsc_mk_PTR(REVX, $2)') + ') + ') + ')dnl +') -define(ver_file, ifdef(`VERS',`VERS',`.nsc_version')) -define(today_code, translit(esyscmd(`date +"%Y%m%d"'),` -',`')) -sinclude(ver_file) -ifelse(today_code, last_today_code, `', `define(`subver_num',1)') -syscmd(echo >ver_file "`define'(`last_today_code',today_code) `define'(`subver_num', incr(subver_num))") -define(Subver_num, format(`%02d', subver_num)) -define(version,`today_code`'Subver_num') +define(nsc_auto_PTR6, `dnl +ifdef(`REVNET6', ` + define(`REVA', nsc_revaddr6($1)) + ifelse(REVNET6, substr(REVA, eval(63-len(REVNET6))), ` + nsc_mk_PTR(substr(REVA, 0, eval(62-len(REVNET6))), $2) + ') + ')dnl +') -# Host / Subdomain name +# A records -define(emit_name, `ifdef(`keep_addr', `keep_addr`'undefine(`keep_addr')', `$1')') +define(nsc_AONLY, `nsc_emit_name nsc_if_v6($1,`AAAA nsc_norm_v6($1)',``A' $1') +') +define(nsc_A, `nsc_if_v6($1,`nsc_auto_PTR6',`nsc_auto_PTR4')($1,nsc_abs_name)nsc_AONLY($1)') +define(ADDR, `nsc_iterate(`nsc_A', $@)dnl') +define(DADDR, `nsc_iterate(`nsc_AONLY', $@)dnl') -# SOA record +# Host specification -define(DO_SOA, `divert; Primary file for the whole_domain domain generated on curdate +define(H, `nsc_set_name($1)nsc_iterate(`nsc_A', shift($@))dnl') +define(DH, `nsc_set_name($1)nsc_iterate(`nsc_AONLY', shift($@))dnl') -$TTL minttl -whole_domain. `SOA' corr_dot(nsname) maintname ( - version refresh retry expire minttl )') -define(SOA, `ifdef(`Xdomain',`define(`Xdomain',$1)',`define(`Xdomain',$1)DO_SOA')') +# Subdomain specification and glue records + +define(D, `nsc_set_name($1)dnl') +define(GLUE, `DH($@)') # NS record -define(exNS, `emit_name `NS' corr_dot($1) +define(nsc_NS, `nsc_emit_name `NS' nsc_corr_dot($1) ') -define(NS, `iterate(`exNS', `$@')dnl') +define(NS, `nsc_iterate(`nsc_NS', $@)dnl') # MX record -define(exMX, `emit_name `MX' corr_dot($1) +define(nsc_MX, `nsc_emit_name `MX' nsc_corr_dot($1) ') -define(MX, `stop_if_rev`'iterate(`exMX', `$@')dnl') +define(MX, `nsc_iterate(`nsc_MX', $@)dnl') # HINFO record -define(HI, ` HINFO "$1" "$2"') +define(HI, `nsc_emit_name HINFO "$1" "$2"') -# Host records +# ALIASing records -define(exH, `emit_ptr($1, cname) A $1 +define(nsc_ALIAS, `$1 `CNAME' CURRENT_NAME ') -define(H, `define(`cname', $1)stop_if_rev`'$1`'iterate(`exH', `shift($@)')dnl') +define(ALIAS, `nsc_iterate(`nsc_ALIAS', $@)dnl') -# Reverse-only host records +# CNAME records -define(exRH, `emit_ptr($1, cname)') -define(RH, `define(`cname', $1)stop_if_rev`'iterate(`exRH', `shift($@)')dnl') +define(CNAME, `$1 `CNAME' nsc_corr_dot($2)') -# Domain records +# Explicit PTR records -define(D, `stop_if_rev`'define(`keep_addr', $1)define(`cname', $1)dnl') +define(PTR, `$1 `PTR' nsc_corr_dot($2)') -# Addressless entry (for example mail alias) +# Shortcut for classless reverse delegation of a block -define(HH, `define(`keep_addr', $1)define(`cname', $1)dnl') - -# ALIASing records - -define(exALIAS, `$1 CNAME cname +define(REVBLOCK, `nsc_forloop(`i', $2, $3, `i' `CNAME' `i'.$1 +)D($1) ') -define(ALIAS, `iterate(`exALIAS', `$@')dnl') # Cleanup actions -define(cleanup, ` +define(nsc_cleanup, `ifdef(`DISABLE_LOCALHOST',,` localhost A 127.0.0.1 -divert`'ifdef(`REVERSE',` ')') -m4wrap(`cleanup') - -include(cf/config) +m4wrap(`nsc_cleanup') diff --git a/m4/pgen.m4 b/m4/pgen.m4 deleted file mode 100644 index c363133..0000000 --- a/m4/pgen.m4 +++ /dev/null @@ -1,21 +0,0 @@ -dnl ### -dnl ### NSC 2.2 -- Partial Reverse Delegation Generator -dnl ### (c) 1997--1999 Martin Mares -dnl ### -dnl ### Usage: m4 nsc.m4 >zone-file -DBASE=domain -DFROM=first-addr -DCOUNT=count -DSERV=primary-server -dnl ### - -define(`XTHEMALL', `ifelse(`$2',`1',,`$1 CNAME $1.BASE.in-addr.arpa. -XTHEMALL(incr($1),decr($2))')') - -define(`partNS', ` ``NS'' $1 -') - -divert(0); Partial Reverse Delegation for COUNT entries starting with FROM in BASE.in-addr.arpa. -; Generated by pgen.m4 on curdate. Please don't edit manually. - -`divert(0)' - -FROM ``NS'' `corr_dot(nsname)' -iterate(`partNS', `SERV') -XTHEMALL(incr(FROM),decr(COUNT))`divert(-1)'dnl diff --git a/nsc.lsm b/nsc.lsm index 6cf5fc1..dac5d05 100644 --- a/nsc.lsm +++ b/nsc.lsm @@ -1,14 +1,14 @@ Begin3 Title: Name Server Configurator -Version: 2.3 -Entered-date: 010627 +Version: 2.99a +Entered-date: 031220 Description: Set of utilities and M4 scripts for easy maintenance of - DNS server configuration and zone files. Requires GNU m4 - and BIND version 8.X or newer. + DNS zone files and also automatic generation of BIND 8/9 configuration + files. Requires GNU m4 and a Posix-compatible shell. Keywords: named, bind, dns Author: mj@ucw.cz (Martin Mares) Maintained-by: mj@ucw.cz (Martin Mares) -Primary-site: atrey.karlin.mff.cuni.cz pub/local/mj/net/nsc-2.3.tar.gz -Alternate-site: metalab.unc.edu pub/Linux/system/network/management/nsc-2.3.tar.gz +Primary-site: atrey.karlin.mff.cuni.cz pub/local/mj/net/nsc-2.99a.tar.gz +Alternate-site: metalab.unc.edu pub/Linux/system/network/management/nsc-2.99a.tar.gz Copying-policy: GPL End diff --git a/root.cache b/root.cache index a20028e..034dc29 100644 --- a/root.cache +++ b/root.cache @@ -1,19 +1,22 @@ +; ; This file holds the information on root name servers needed to ; initialize cache of Internet domain name servers ; (e.g. reference this file in the "cache . " ; configuration file of BIND domain name servers). ; -; This file is made available by InterNIC registration services -; under anonymous FTP as -; file /domain/named.root -; on server FTP.RS.INTERNIC.NET -; -OR- under Gopher at RS.INTERNIC.NET -; under menu InterNIC Registration Services (NSI) -; submenu InterNIC Registration Archives -; file named.root +; This file is made available by the Internet Assigned Numbers Authority +; (IANA) as +; . +; +; A copy of this file is also available (for compatibility purposes) +; from InterNIC registration services as +; +; +; New versions of this file are announced periodically on the +; d mailing lists. ; -; last update: Aug 22, 1997 -; related version of root zone: 1997082200 +; last update: January 19, 1999 +; related version of root zone: 1999011900 ; ; ; formerly NS.INTERNIC.NET @@ -66,10 +69,10 @@ I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 . 3600000 NS J.ROOT-SERVERS.NET. J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10 ; -; housed in LINX, operated by RIPE NCC +; housed at LINX, operated by RIPE NCC ; . 3600000 NS K.ROOT-SERVERS.NET. -K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 +K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 ; ; temporarily housed at ISI (IANA) ;