Archive for the ‘General’ Category.

New Hardware

The server on which is hosted had a hardware-failure of the extend that it needed to replaced. The machine has been renewed.
The downtime was long because the machine broke at the start of a 18 days business trip.

Comments dropped


During an upgrade of the blog software all comments got removed in order to deal with an inconsistency in the database.

10 year anniversary

This weekend, 10 years ago, Michal Fuhr announced Net::DNS on the comp.lang.perl.modules newgroup:.

From: Michael Fuhr – view profile
Date: Mon, Jan 20 1997 12:00 am

I've been working on a general interface to the DNS resolver, allowing the programmer to look up any record type instead of just A (gethostbyname) and PTR (gethostbyaddr). I hope to have it finished by the end of Jan 1997; in the meantime, there's some info about it at:

Although the module isn't available yet, there are a few manpages that show what you'll be able to do. The Net::DNS and Net::DNS::Resolver manpages have some code fragments as examples.

I originally called the module DNS but my current choice is Net::DNS, which seems more consistent with the modules for other protocols such as Net::FTP, Net::SMTP, etc. I'm open to other suggestions.

I'd appreciate any feedback on the info I've provided so far. Thanks.

Michael Fuhr

Related Projects

We added a page about Related Projects.
Currently the page contains links to ldns and pNet-DNS
Let us know if you are aware about other projects related to, or inspired by Net::DNS.

A wise Lesson…

In a recent e-mail thread about misbehaving recursive nameserver David Ulevitch wrote:

Lesson: perl -MNet::DNS::Nameserver -e ‘return new(“$qname $ttl $qclass $qtype $rdata”)’;

…does not a recursive nameserver make…

Net::DNS::TestNS 1.06

I have just uploaded Net::DNS::TestNS to CPAN.

It provides a class to setup a number of nameservers that respond to specific DNSqueries (QNAME,QTYPE) by pre-specified answers. This class is to be used in test suites where you want to have servers to show predefined behavior. The behaviour is defined through XML files.

I have been using the class in some tests suites of (yet unreleased) code. I think its useful enough for a wider audience.

The code also has its own branch on the subversion tree.

Net::DNS on Tiger

I received several comments on how to patch Net::DNS to properly support Tiger.

The most appropriate patch is below.

Note that this patch is not going to be needed with version 0.50 as that commes with its own implementation of dn_expand and will therefore not depend on the BIND libs that are shipped with your OS.

It may take a while (weeks) before I release the beta of 0.50 on CPAN (as version 0.49_01). I would appreciate folk trying to run the code currently on the subversion trunk.

Here is the patch:

--- Makefile.PL~
+++ Makefile.PL
@@ -62,7 +62,7 @@
if ($^O eq 'MSWin32') {
$Makefile{'PREREQ_PM'}->{'Win32::Registry'} = 0;
-if ($^O eq 'darwin' and $Config{'osvers'} =~ m/^7./) {
+if ($^O eq 'darwin' and $Config{'osvers'} =~ m/^[78]./) {
$Makefile{'DEFINE'} = '-DBIND_8_COMPAT';

DNSSEC RFCs released

RFCs 4033, 4034 and 4035 have just been released. These RFCs specify the DNSSEC protocol.

An extention to Net::DNS that implements the records specified used in DNSSEC is available through CPAN. The module is called Net::DNS::SEC.

The Subversion repository is available through

Binary label content


NOTE: There is a bug in plog that prevents me writing literal backslashes, even html esecaped backslashes get lost. So every where where you read 32 you were supposed to read backslash-zero-three-two.

When I tried to use Net::DNS to prototype a server to support "draft-sisson-dnsext-dns-name-p-s-01.txt"I found out the hard way that Net::DNS does not support binary content of domain names that well. While trying to fix this I noticed that the dn_expand function from libresolv returns different expansions on different platforms.

Last week I decided to build Net::DNS with its own library and created the first version of that library. The library currently only contains dn_expand but I may add other hooks functions to it. The code is not ready for the main branch yet but mostly because I want to make sure that the RDATA format of TXT and other data can do the proper presentation format to wire format transalations too.

For those dependend on binary content try using the subversion directory.

There is one design choice: Shall I print out a space in a domain name as " " or as "32". One of my friends suggested to print it as "32" as the space is to often used as a field seperator in scripts. I am sympathetic to that.

Taking over maintenance.

New Maintainer

After years of rocksolid and very responsive support of Net::DNS, Chris Reinard passed the token. I’ll be maintaining Net::DNS for a while.

This blog, which I hope will grow beyond good intentions, is planned to be used for announcements on code releases.

Subscribe to the RSS feed if you want to be kept up to date.