develooper Front page | perl.fwp | Postings from November 2006

Minimal DNS answer using Net::DNS

Thread Next
From:
Kelly Jones
Date:
November 25, 2006 22:56
Subject:
Minimal DNS answer using Net::DNS
Message ID:
26face530611252256p220b2a10if7f72a7df8493713@mail.gmail.com
I've used xinetd to set up a test nameserver on port 1024. Here's the
Net::DNS Perl I'm using to say (falsely) that news.yahoo.com resolves
to 10.1.2.3 with a TTL of 1 day:

$res = Net::DNS::Packet->new();
$rr = Net::DNS::RR->new("news.yahoo.com. 86400 A 10.1.2.3");
$res->push(answer => $rr);
print $res->data;

According to Net::DNS, here's the prettyprint version of the packet I create:

;; HEADER SECTION
;; id = 26432
;; qr = 0    opcode = QUERY    aa = 0    tc = 0    rd = 1
;; ra = 0    ad = 0    cd = 0    rcode  = NOERROR
;; qdcount = 1  ancount = 1  nscount = 0  arcount = 0

;; QUESTION SECTION (1 record)
;; .    IN      A

;; ANSWER SECTION (1 record)
news.yahoo.com. 86400   IN      A       10.1.2.3

;; AUTHORITY SECTION (0 records)

;; ADDITIONAL SECTION (0 records)

It's ugly and minimal, but is it a valid DNS answer? Does the question
section actually have to contain the question asked or is that
optional?

When I try using dig to test, I get this error:

> dig -p 1024 @localhost news.yahoo.com

; <<>> DiG 9.3.1 <<>> -p 1024 @localhost news.yahoo.com
; (1 server found)
;; global options:  printcmd
;; connection timed out; no servers could be reached

My debug logs show that my test nameserver is called thrice (dig tries
3 times by default?) with this packet (prettyprinted below):

;; HEADER SECTION
;; id = 41909
;; qr = 0    opcode = QUERY    aa = 0    tc = 0    rd = 1
;; ra = 0    ad = 0    cd = 0    rcode  = NOERROR
;; qdcount = 1  ancount = 0  nscount = 0  arcount = 0

;; QUESTION SECTION (1 record)
;; news.yahoo.com.      IN      A

;; ANSWER SECTION (0 records)

;; AUTHORITY SECTION (0 records)

;; ADDITIONAL SECTION (0 records)

I did notice the packet dig sends has id=41909 and my response has
id=26432-- is that a problem?

I'm pretty sure the problem isn't with xinetd and that dig is getting
my response packet-- it just doesn't seem to like it for some reason.

-- 
We're just a Bunch Of Regular Guys, a collective group that's trying
to understand and assimilate technology. We feel that resistance to
new ideas and technology is unwise and ultimately futile.

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About