Subject: [BEHAVE] input sought - PowerDNS Recursor additional Lua hooks for IPv6 DNS64 and Renumbering

From: bert hubert <[email-masked]>
Date: Sun, 14 Nov 2010 22:39:38 +0100

Dear BEHAVE WG,

I kindly request your attention for the announcement made below.

It is our aim to provide a safe, working, useful and compliant
implementation of draft-ietf-behave-dns64 in the PowerDNS Recursor.

A very first attempt to achieve this is described below. We've not yet gone
over draft-ietf-behave-dns64-11 in detail to see what we are doing wrong,
but perhaps even at this stage you may have some guidance for us.

If nothing else, the PowerDNS Recursor with Lua hooks may provide an
interesting or alternate platform for experimenting with DNS64.

It is our hope that you'll be able to help us deliver DNS64 as described
above, and any feedback you may have is more than welcome!

Kind regards,

Bert Hubert
(PowerDNS)

----- Forwarded message from bert hubert <[email-masked]> -----

Date: Sun, 14 Nov 2010 22:32:31 +0100
From: bert hubert <[email-masked]>
To: [email-masked], [email-masked]
Subject: [Pdns-announce] PowerDNS Recursor additional Lua hooks for IPv6
	DNS64 and Renumbering

Dear PowerDNS Community,

The PowerDNS Recursor is currently being extended with additional Lua hooks
and extra infrastructure to support flexible DNS64 operations, plus perform
on-the-fly IPv4 or IPv6 renumbering.

DNS64 is described on http://tools.ietf.org/html/draft-ietf-behave-dns64-11
and in brief: 

  "DNS64 is a mechanism for synthesizing AAAA records from A records.  DNS64
   is used with an IPv6/IPv4 translator to enable client-server communication
   between an IPv6-only client and an IPv4-only server, without requiring any
   changes to either the IPv6 or the IPv4 node"

Those of you with an interest in these features are invited to test out the
following *pre-release*, specifically to let us know if the API is sufficient
for your needs:

http://svn.powerdns.com/snapshots/pdns-recursor-3.3-hooks.tar.bz2

It can be compiled like any other PowerDNS Recursor release. 

New in the version are the 'nodata()' and 'postresolve()' Lua hooks. Nodata
functions just like nxdomain(), except that it gets called when a domain
exists, but the requested type doesn't. This is where DNS64 happens.

Postresolve() is different, and very powerful - it gets handed the complete
DNS answer as it would be sent out, ready for modification from Lua. This is
where one might for example perform on the fly IP address renumbering.

In the release you can find powerdns-example-script.lua which contains a
working sample for both of the new hooks. This script can also be viewed on
http://wiki.powerdns.com/trac/browser/branches/pdns-dns64/pdns/powerdns-example-script.lua

Note: DO NOT TAKE THIS SCRIPT INTO PRODUCTION - it blacks out important
sites

To get going without disturbing any existing nameservers on your computer,
compile the PowerDNS Recursor, and start like this:
 $ ./pdns_recursor --local-address=0.0.0.0 --local-port=5300 --daemon=no
   --socket-dir=./ --lua-dns-script=powerdns-example-script.lua 

Known defects are:
	postresolve() can't yet access the original dns rcode
	there is no way for nodata() to set the TTL to the SOA minimum value
		as specified by draft-ietf-behave-dns64

Please let us know your thoughts so we can make sure the API has everything
needed for great DNS64 and renumbering operations!

Kind regards,

Bert Hubert
_______________________________________________
Pdns-announce mailing list
[email-masked]
http://mailman.powerdns.com/mailman/listinfo/pdns-announce

----- End forwarded message -----

---

From: Cameron Byrne <[email-masked]>
Date: Sun, 14 Nov 2010 13:52:04 -0800

> implementation of draft-ietf-behave-dns64 in the PowerDNS Recursor.

Outstanding!

When i get some free cycles i will give this a try in my lab.  I am
very pleased that this will be the 4th implementation of DNS64 to
enter my lab (only counting Viagene and their multiple implementations
once).

Cameron

> Behave mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/behave
>