On Jul 2, 2010, at 5:27 AM, Volker Janzen wrote:

Hi all,

when I add a new zone to my DNS server, I'm always a bit confused about
the correct workflow. In the docs under "Adding/Removing zones" I just
find a call of "ods-ksmutil zone add --zone example.com". This call works
fine and adds the configuration. But the zone is not signed within
minutes.

By private mail contact with Matthijs I found out that I should send a HUP signal to the enforcer. I think is cannot be everything needs to be done.
Doing this the unsigned zone file is not found, because zone fetcher
hasn't got it yet.

I'm running a bind with an internal view for OpenDNSSEC with unsigned zone
data and an external view with signed zone for the rest of the world.

When I add a new unsigned zone to bind, what needs to be done to get a
signed zone back to bind?

Should I first call "ods-ksmutil zone add --zone example.com", then
restart all of OpenDNSSEC software and finally reload bind to send AXFR to OpenDNSSEC or do I have to perform these steps in a different order? After restarting everything and changing SOA again in bind and reload everything
works, but I don't know how to optimize (or script) this procedure.


Best regards,
  Volker Janzen




I use this horrendously ugly shell script -- seems to work...

wkum...@lisa:~/scripts$ more add_zone.sh
#!/bin/bash

# This script add a zone to OpenDNSSEC.
#
# $Revision:: 1                                            $
# $Date::                                                  $
# $Author:: wkumari                                        $
# $HeadURL:: file:///srv/svn/repos/scripts/add_zone.sh     $
# Copyright: Warren Kumari ([email protected]) -- 2010
#

# Where do the zonefiles live? We pust singed zones in a subdir of this.
ZONEPATH=/chroot/named/etc/namedb

if [ -z "$1" ]; then
  cat <<EOF
  This adds a zone file to the OpenDNSSEC system.
  It assumes that the zonefile lives in
  ${ZONEPATH} and will output the
  signed zone to ${ZNOESPATH}/signed/.

  Usage:
    $0 zone
EOF
  exit
fi

# Needs to be root.
if [[ $EUID -ne 0 ]]; then
   echo -e "ERROR: This script must be run as root." 1>&2
   exit 1
fi

# And make sure that the file exists.
if [ ! -e ${ZONEPATH}/$1 ]; then
   echo -e "ERROR: The zonefile $1 does not exist. Aborting!" 1>&2
   exit 1
fi

# Finally ready to do something!
echo -e "\n*** Adding $1 to the OpenDNSSEClist zone list."
/usr/local/bin/ods-ksmutil zone add --zone $1 --input ${ZONEPATH}/$1 -- output ${ZONEPATH}/signed/$1
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
echo -e "ERROR: Unable to add $1 to the zonelist, something went wrong."
  exit 1
fi


echo -e "\n*** Asking ods-enforcerd to wakeup so it will sign the zone."
if [ ! -e /var/run/opendnssec/enforcerd.pid ]; then
echo -e "ERROR: I was not able to find the enforcerd PID file. Is it running?!"
  exit 1
fi

kill -HUP `cat /var/run/opendnssec/enforcerd.pid`
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
  echo -e "ERROR: kill was not able to send the HUP signal. Weird....."
  exit 1
fi

sleep 5

echo -e "\n*** Asking ods-ksmutil and ods-signer to reload the zonelist"
/usr/local/bin/ods-ksmutil update zonelist && /usr/local/sbin/ods- signer update $1
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
echo -e "ERROR: ods-ksmutil / ods-signer unhappy with the config file."
  exit 1
fi

echo -e "\n*** SUCESS ***"




_______________________________________________
Opendnssec-user mailing list
[email protected]
https://lists.opendnssec.org/mailman/listinfo/opendnssec-user

--
No man is an island, But if you take a bunch of dead guys and tie them together, they make a pretty good raft.
                --Anon.


_______________________________________________
Opendnssec-user mailing list
[email protected]
https://lists.opendnssec.org/mailman/listinfo/opendnssec-user

Reply via email to