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