bind: start named early enough to be present when isc-dhcp starts 14233/head
authorPhilip Prindeville <philipp@redfish-solutions.com>
Tue, 15 Dec 2020 04:24:07 +0000 (21:24 -0700)
committerPhilip Prindeville <philipp@redfish-solutions.com>
Tue, 15 Dec 2020 21:03:25 +0000 (14:03 -0700)
Start named before dhcpd so that dhcpd can prime the local zones at startup.

Restore the empty domain zone for rfc1918 addresses that previously existed.

Create an additional subsidiary named.conf.local file (initially empty)
in /tmp/bind/ that can be seeded with dynamic zones and primed with
"rndc reload", and add it to the watched list of config files for procd.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
net/bind/Makefile
net/bind/files/bind/named.conf.example
net/bind/files/named.init

index 31d66be380f8c8367336804a4b69e0aa953fe402..0c4616efeabb47cd9e05398c5cd1b1e610618014 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bind
 PKG_VERSION:=9.16.8
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 USERID:=bind=57:bind=57
 
 PKG_MAINTAINER:=Noah Meyerhans <frodo@morgul.net>
@@ -183,6 +183,9 @@ define Package/bind-server/install
                ./files/bind/db.root \
                ./files/bind/bind.keys \
                $(1)/etc/bind/
+       sed -e '1s/ broadcast / empty rfc1918 /' \
+               < ./files/bind/db.0 \
+               > $(1)/etc/bind/db.empty
        $(CP) ./files/bind/named.conf.example $(1)/etc/bind/named.conf
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/named.init $(1)/etc/init.d/named
index 0f26269197faf2e17fc959f9b5ebf5000e34dd12..fbe99dcf837dc7b87edb2c7099da6af109ca5a27 100644 (file)
@@ -17,6 +17,8 @@ options {
 
 include "/etc/bind/named-rndc.conf";
 
+include "/tmp/bind/named.conf.local";
+
 // prime the server with knowledge of the root servers
 zone "." {
        type hint;
index db505e31c67482c7b054af8138e8c3a09752b379..1a7683704524b0951b6e6a561cf57b3947d60497 100644 (file)
@@ -5,7 +5,7 @@
 
 USE_PROCD=1
 
-START=50
+START=22
 
 config_file=/etc/bind/named.conf
 config_dir=$(dirname $config_file)
@@ -17,9 +17,13 @@ rndc_temp=$(mktemp /tmp/rndc-confgen.XXXXXX)
 logdir=/var/log/named/
 cachedir=/var/cache/bind
 libdir=/var/lib/bind
+dyndir=/tmp/bind
+
+conf_local_file=$dyndir/named.conf.local
+
 
 fix_perms() {
-    for dir in $libdir $logdir $cachedir; do
+    for dir in $libdir $logdir $cachedir $dyndir; do
        test -e "$dir" || {
             mkdir -p "$dir"
             chgrp bind "$dir"
@@ -29,7 +33,7 @@ fix_perms() {
 }
 
 reload_service() {
-    rndc reload
+    rndc -q reload
 }
 
 start_service() {
@@ -55,11 +59,14 @@ start_service() {
 
     rm -f $rndc_temp
 
+    touch $conf_local_file
+
     procd_open_instance
     procd_set_param command /usr/sbin/named -u bind -f -c $config_file
     procd_set_param file $config_file \
                         $config_dir/bind.keys \
                         $named_options_file \
+                        $conf_local_file \
                         $config_dir/db.*
     procd_set_param respawn
     procd_close_instance