Re: creating new RRtypes
Hadmut Danisch <[email protected]> Fri, 17 Oct 2003 21:20:04 +0200
| Newsgroups | gmane.ietf.asrg.rmx |
|---|---|
| Message-ID | <[email protected]> |
Meng, On Fri, Oct 17, 2003 at 12:08:13PM -0400, Meng Weng Wong wrote: > Hadmut, in researching the creation of a new RRtype, what have you discovered? > > How long will it take to get a new type approved and created? > > I know TinyDNS lets people definie arbitrary RRtypes using the ":" line. > > Does BIND have a similar facility? No, bind (i.e. I used bind9) does not have such a facility, as far as I know. But it allows easy plugin of a new record type, you just have to copy a new file in the tree. There's an automated code generator which automatically recognizes the code file and generates the glue code needed. A huge problem is that bind9 is poorly documented but complicated. It took me much time to find the required procedures for preparing the encoding, but once they are found it is not too difficult to generate whatever you want. One particular problem is a bug in bind9: The code generator works only with RR Types 0..255, but not which larger numbers. That's the problem: experimental record numbers are somewhere >32768, which does not work with bind9. Using a code number <255 works well, but is not allowed without having a STD RFC. I reported this bug to the maintainers, but they refused to fix it, since the maintainer for this code did not like RMX and RMX-like proposals, because he wants to be able to send mail with any address from anywhere when on the road with his notebook. Not fixing the bug was his kind of protest against RMX and similar proposal. Maybe it's fixed meanwhile. I also had to learn that I've made a mistake: DNS has a mechanism for compression of domain names to keep DNS packages small. E.g. if you query host.domain.com at dns.domain.com, the reply might contain "domain" several times. The second and subsequent occurences of "domain" will be replaced with a reference to the first occurence. While this works well with my test implementation, it does not work if a Non-RMX-aware DNS Server is in the query queue, because since two years ago or so DNS server learned to forward unknown RR types unmodified. If such a server forwards a record containing compressed domain names without de- and recompressing, the will produce rubbish. That's why I had to change my draft to not use domain name compression anymore. The good thing is that the plugin into bind9 is also used for the resolver library. So it takes a single file to have both the server and any client compiled. "dig" works well with that. I have no idea how long it takes to get a new type approved and created. There are three classes, the official ones, which will have to go through some IETF procedure, half-official ones (forget how they are called), and experimental. Experimental don't need an RFC, you can use them immediately (if the bind9 bug is fixed). regards Hadmut