[Opendnssec-develop] from xml to DB
John Dickinson
jad at jadickinson.co.UK
Mon Apr 20 14:15:53 UTC 2009
Changes I made to the way I think things work today are. These are
mostly me just catching up with the current state of the xml files,
but there are one or two issues to resolve.
1. DB schema (http://www.opendnssec.se/browser/docs/DB.pdf) no longer
needs to hold the zone adapter information. So the zone table is now
just zone_id, zone_name, policy_id - and exists so that one can
calculate the number of keys to generate.
2. DB schema - Adapters table is gone
3. If I understand things the signer engine will read the zone list to
figure out which adapter to use and where the file is. BTW - I think
we should just enforce a hard coded standardized file naming system
rather than explicitly specify a path/name for every file.
Something like this (thanks Jakob)
# programs et al
PREFIX/{bin,lib,include}
# static configurations, not written to by the daemons (SYSCONFDIR is
usually /etc). not writable by the daemons.
SYSCONFDIR/opendnssec/kasp.xml
SYSCONFDIR/opendnssec/conf.xml
SYSCONFDIR/opendnssec/zonelist.xml
SYSCONFDIR/opendnssec/kasp.rng
SYSCONFDIR/opendnssec/conf.rng
SYSCONFDIR/opendnssec/zonelist.rng
# dynamic stuff (LOCALSTATEDIR is usually /var). writable by daemons.
LOCALSTATEDIR/opendnssec/signconf/<zonename>.conf
LOCALSTATEDIR/opendnssec/unsigned/<zonename>
LOCALSTATEDIR/opendnssec/signed/<zonename>
LOCALSTATEDIR/opendnssec/kasp/kasp.`date`.xml (These are exported
kasp.xml files for historical or audit reasons)
4. kaspimporter.pl now reads kasp.xml and zonelist.xml.
5. Applications all read config.xml directly.
6. Since the repository information is now in config.xml and that is
read by all applications it doesn't need to be in the DB. So the
security modules table could be dropped. However, the policies need to
refer to the repository to use for ksk's or zsk's. As things stand we
either add
a) a repository field to the policies table,
b) an integer ID to the config.xml or
c) have kaspimporter read the config.xml repository info into the
securitymodules table in the DB (not the PIN).
I am not sure which I favour - I think c. Thoughts?
BTW - I really think that each repository needs to have a specified
capacity, even if it is effectively constrained by the size of disk
you can buy. This was/is in the DB and should be in config.xml
7. We need to think how changes to the xml files are reported to the
various apps and the DB gets updated. We may, at some point develop a
GUI that will access the KASP database directly removing the need for
the KASP importer altogether. This GUI will also create the necessary
entries in conf.xml and zonelist.xml - therefore this could be ignored
for v1 I suppose.
8. HSMkey_ID field in the keypairs table now needs to hold a uuid.
9. The securitymodule_id field in the keypairs table is no longer
needed if libhsm will search for a uuid in all HSMs. and the
communicator only passes the uuid to the signer anyway.
OK thats enough for one email. I will start testing the modified
kaspimporter.pl and get it checked in...
John
---
John Dickinson
http://www.jadickinson.co.uk
I am riding from Lands end to John O'Groats to raise money for
Parkinson's Disease Research. Please sponsor me here http://justgiving.com/pedalforparkinsons2009
More information about the Opendnssec-develop
mailing list