Could you please cite references/books for more details about Dynamic DNS? I've already tried Wikipedia, IEEE papers and RFCs for all those people rolling their eyes reading this. So please, any inputs are welcome. I need help implementing it in a project and would love to know more about it. Thanks.
-
you _implement_ DNS server or want to _update_ DNS server ? – Sandman4 Apr 16 '12 at 12:40
-
Yeah Sandman4. I want to implement a Dynamic DNS server mechanism - not just update the DNS cache. Also isn't the O'reilly book about traditional DNS rather than Dynamic DNS? – Arpith Apr 23 '12 at 15:08
-
By implementing a server, you mean creating a whole new DNS server software (like a replacement to BIND), or baking some solution using existing DNS server (like BIND). – Sandman4 Apr 24 '12 at 05:37
-
Oreilly is about everything DNS. Dynamic is one chapter. – Sandman4 Apr 24 '12 at 09:18
1 Answers
Dynamic DNS is a concept of updating DNS records on-the-fly, as opposed to normal (static) DNS where change in a DNS records required manual intervention.
Dynamic DNS means that you have some DNS server, and you may programmatically update records on it. This can be achieved in different ways:
RFC 2136 dynamic DNS. It's an extension to good ol' DNS protocol which allows not obtaining DNS records, but updating them. Most DNS servers today (for example BIND9 and PowerDNS) support this protocol. Documentation sources: RFC 2136 defines the protocol.
nsupdate
is the command line tool which supports this protocol, readman nsupdate
. For details on how to configure BIND9 for dynamic updates, refer to the BIND9 ARM. Libraries exist for most languages which allow Dynamic DNS updates using this protocol. For PHP for example, it's Net_DNS2. It's not well documented, but sites have nice examples which easily allowed me to use it.Some DNS servers (especially PowerDNS) can read their DNS records from database back-end. Thus it makes possible to write new DNS records into normal SQL database, and server just takes them from there. Documentation sources: If you choose this way I very suggest to use PowerDNS, look for documentation on PowerDNS site.
If updates are not frequent, it's also possible to update text zone files on the DNS server and then request server to re-read the updated zone files. Though this is probably not a convenient way. All major DNS servers support same zone file format, I find DNS for Rocket Scientists excellent.
Now, there's a completely different side of dynamic DNS is a dynamic DNS services like to no-ip.com, my own net-me.net and many others. They all expose some HTTP-based API (usually very simple) to update DNS records, and often provide a GUI client software which actually updates them. Quick overview on the update protocol, the client and the whole process you can get here. As no standard exists, every provider uses his own variation of the protocol, usually they all look quite similar. (All these Dynamic DNS providers internally use some sort of 1.2.3. described above.)
The last but not least - there's a great Oreilly book - DNS and BIND 5th edition which covers all possible aspects of DNS.
-
But if I were to implement the complete dynamic DNS in my project is there some open source code that I could look at and use, or some mailing list that I could post in? Or any other resources. Most books are obsolete by the time they come out and getting help from the community is much better since you get varied opinions (rather than a single opinion from the author - No disrespect meant for the author of the O'Reilly book; I'm sure he has done a great job with the book, based on all the recommendations I've been getting for it!). – Arpith Aug 06 '12 at 12:48
-
@Arpith I doubt you can do it if you are not willing to spend some efforts on self-education. – Sandman4 Aug 07 '12 at 08:33