IXFR and nsd
Colm MacCarthaigh
colm.maccarthaigh at heanet.ie
Thu Mar 3 11:12:56 UTC 2005
On Wed, Feb 16, 2005 at 10:51:37AM +0100, Ted Lindgreen wrote:
> If we do implement IXFR support, it will be done, like our AXFR
> support, outside the daemon process. However, we have no plans
> (and thus no timescale) on implementing IXFR support yet.
O.k. :) Well I do, so this is a quick check to make sure I'm not
duplicating effort. We're hosting a ~= 6million record large zone which
we can't get rsync access to, and because it is US-hosted, the AXFR's
are now taking 4 hours, so it's worth my while to code this :) It's an
RBL zone, and the information is relatively time-sensitive.
My current project plan is to implement something that does:
ixfr-client zonefile [origin] [nameserver]
and outputs a zonefile. From my research on the IXFR standard
this is certainly implementable, and the rough idea is:
1. Parse the zonefile into memory
2. Formulate an IXFR query, extracing the SOA, origin
and target namerserver(s) from the zonefile - if
not supplied from the command line.
3. Parse the response and consolidate two lists:
records to be added
records to be removed
OR if the SOA we have was too old, just a list of
the new records (ala AXFR).
4. Apply these changes to the memory-representation of
the original zonefile
5. Output a zonefile
I can't see any major technical barriers anyway, I just have to code it
all. From my preliminary research it looks like there are no good
generic zonefile parsing libraries, the closest I've found is perl's
DNS::Zoneparse, and that doesn't come very close, so it looks like I'll
be writing it in C and will use the zparser and zonec code from NSD,
since I'm more familiar with NSD's code-base than anything else.
Anyway, would the above prove of general use to people here? would it
satisfy your requirements? Is anyone interested in helping?
--
Colm MacCárthaigh / HEAnet, Teach Brooklawn, / Innealtóir Líonra
+353 1 6609040 / Bóthar Shelbourne, BÁC, IE / http://www.hea.net/
More information about the nsd-users
mailing list