OK, I've built myself a bind 9.8.3 setup so I can use the 'external'
update-policy. It seems there are a few details not fully described in
the 9.8.3 ARM :) I did have a bit of a look at the list archives but I
couldn't find anything which immediately answered my questions...
* If the external daemon blocks (eg reads the data from bind, but never
writes anything back to the pipe), I think it causes bind itself to
block? (certainly it didn't seem to answer queries any more). Is there a
timeout where it considers the daemon dead and gives up on it? Is that
configurable?
* The signer string seems to have '\' characters before (at least) '$'
and '@' characters. Is this expected? What other characters get escaped?
* At least on my build, the TCP source address field always seems to be
empty. Is that expected or did I screw something up?
* The example perl script sends back a '2' in the event that it doesn't
like the request from bind. This isn't documented as being valid.
* As far as I can see the daemon gets handed the name and rdata type of
the record the client is trying to modify, but doesn't get told what
type of operation the client is attempting (create, delete, whatever),
or the data the client is attempting to insert into the record. The
latter would potentially be useful - for example preventing clients
registering A records with addresses outside my network (I've seen
machines attempt to register an A record where the IP address was
attached to a 3G dongle which happened to be plugged into the machine at
the time). Would this be a worthwhile enhancement? (assuming it is
technically possible...)
* Do the 'name' and 'type' field of the update-policy get ignored for
the extern nametype? I understand that the name field doesn't
necessarily make sense (although I guess it might be useful to just send
it to the daemon as another string), but I was a bit surprised to be
able to update AAAA records when I only had A in the type field.
Oh, and finally - my Vista test box appears to try and register AAAA
records first, and if I deny the AAAA types, it never actually bothers
trying to register A records. Is this behaviour other people have seen
before?
Cheers
David