Inspired by finishing my PhD corrections (!) today, I decided to hook up the DNS server from our Melange project up to the Internet. The authoritative server is called deens (since the co-author is one Tim Deegan, geddit?), and is written in pure OCaml.
This is all rather experimental, to put it mildly, but I stuck in the zone file below, hooked it up as a delegate to our main name-servers, checked it against the DNS Report, and it all seems to be working!
$ORIGIN deens.recoil.org. ; $TTL 240 deens.recoil.org. 604800 IN SOA ( deens.recoil.org. anil.recoil.org. 2006122401 3600 1800 3024000 1800 ) IN NS ns1.deens.recoil.org. IN NS deensns.recoil.org. ns1 IN A 220.127.116.11 dynamic IN CNAME dynamic.recoil.org. static IN CNAME static.recoil.org. anil IN CNAME dynamic stats IN CNAME dynamic
I also modified stats.recoil.org to be an alias to stats.deens.recoil.org, so all the requests for that domain will go via the deens setup. You actually need a user/pass to access the site, but that doesn’t matter; if it gets that far, the DNS bit has worked.
There’s still an awful lot of tedious work to get the server into a production-ready state, such as proper logging, more error handling and recovery, etc., but I really hope to find the time in 2007 to polish this up somewhat. Performance is excellent already; faster than BIND by quite a lot, and it can optionally use more memory to cache responses to shoot up to crazy levels.
Incidentally, the dig replacement utility also seems to be working fairly well, and David Scott has been messing around with a Bonjour implementation that will get finished sometime in 2007 as well (honest!).