Dynamic DNS

Brian J. Murrell brian_murrell at bctel.net
Fri Aug 6 18:10:55 UTC 1999


from the quill of Irina Goble <irinag at ims.com> on scroll
<199908061744.KAA26462 at speed.ims.com>
> 
> 	What is the difference between A and PTR RRs?

Hmmmm.  Normally I would start to explain the difference between a DNS A
and PTR record, but you know that, so I am not sure what you are asking.

> I still think there should be only two transactions: add and delete.
> 
> 	ddns_add (lease)
> 	ddns_delete (lease)

Hmmmm.  Perhaps.  Ted, since the dns-update() expression is your
"brainchild"  :-) would care to jump in with reasoning, etc.  This
non-atomicness of updates is starting to get ugly.  When a client roams
from one subnet to another his new A record gets rejected because his old
one is still in place.  I am thinking that perhaps a nsupdate(remove A)
needs to be stacked on top of the nsupdate(add A), but I don't think you
can remove an A record with NULL rdata to effect a removal of all names. 
Do you know Irina?

> on DHCPACK call ddns_add()
> on DHCPRELEASE call ddns_delete()
> on "ABANDON LEASE" call ddns_delete()
> ddns_add can call ddns_delete to remove some leftovers.

I think some careful design needs to be done here to map out all of the
possible reasons for adds/changes/deletes and make sure that we have all of
the possibilities covered.  Impact on the DNS server is one of the items of
major importance.  From having run a not very large but larger than average
DHCP/DDNS service for a year, I can tell you that gratuitous updates to the
DNS will kill your servers.  You need to only perform updates when they are
absolutely necessary.

> 	I agreed that there is a need for additional RRs (MX, TXT, KEY, etc),
> that is what I meant by "additional RRs". All these "additional RRs" are
> related to ddns_fwd_name or ddns_rev_name, right? So it is not only a
> trigger
> it is a base domain name for update requests. It could be easy to 
> connect add. RRs to PTR by having some parameters/declarations in 
> global/subnet/host declarations? But e.g. for MX RRs it is logical to 
> connect add. RRs to DNS domains and it could be some additional syntax
> in dhcpd.conf. Then _somehow_ we can have all this ns_updrec connected to
> a lease structure. 
> 	struct lease {
> 	...
> 	char *ddns_fwd_name;
> 	char *ddns_rev_name;
> 	struct ns_updrec *ddns_fwd_upd;	/* additional RRs for a ddns_fwd_name */
> 	struct ns_updrec *ddns_rev_upd;	/* additional RRs for a ddns_rev_name */
> 	...
> 	int flags;
> #	define SOME_GOOD_NAME /* for a flag saying who is responsible for
> dyn. updates for a forward name, client or server */

Ted.  At this point I think some direction is needed.  Have you thought any
further than where we are now about the dns-update() expression?  It is
troublesome as it is right now because all updates are not done atomically.

b.



--
Brian J. Murrell                                        Brian_Murrell at bctel.net
BCTel Advanced Communications                                      604 454 5279
Vancouver, B.C.


More information about the dhcp-hackers mailing list