|IPv6 Reverse DNS
||[Nov. 2nd, 2004|06:27 pm]
IPv6. The next thing to do was get reverse dns going on ipv6. (That's the bit that allows you to turn an ipv6 address back into a domain name).We've now got a few of our machines, and bits of our office, working with |
Things aren't quite as simple for ipv6 reverse DNS as they were for ipv4. For a start, there are 2 systems largely in use - nibble format and bitlabel format (formally known as Binary Label, but also called bitstream by some people). Oh, and there are 2 TLDs for nibble...
Nibble format is most like ipv4 reverse lookups: you take your address, reverse it, pad with zeros, and add a dot after every hex digit. So, 2001:8b0:c5:1::1 becomes the rather long 188.8.131.52.0.0.0.0.0.0.0.0.0.0.0.0.184.108.40.206.5.c.0.0.0.b.220.127.116.11.0.2.ip6.int . Originally, all nibble entries lived in ip6.int. However, someone pointed out that .int shouldn't be used for things like this, so people migrated the lot to ip6.arpa. Newer applications use .arpa, older ones use .int, so for now you have to support both.
Bitlabel format is the newer one (it was defined in RFC 2673, and has the fun confusion that some people call it bitstream). You take your address, pad with zeros, add the netmask and look up the lot. So, 2001:8b0:c5:1::1 goes to the similar looking \[x200108B000C500010000000000000001/128].ip6.arpa . Such fun.
Assuming you have a couple of name servers under your control, you need to get your upstream provider to delegate the reverse looks to your servers. (How to do this depends entirely on the provider, so you'll have to check with them). Then you have to set up the zones (3 per subnet, 2 nibbles and a bitlabel), have one server as a master on it and the rest as slaves (so you only have to edit in the one place).
This task is quite fiddly. Luckily, there are tools to help. To make your nibble entries, use the wonderful interface here - it'll spit out bind 8/9 zone entries and definitions.
For the bitlabel format, I haven't found a tool. That said, the format's a bit simpler. The bottom section of this shows you how to define the zones, and then this pdf shows you how to create the zone files. I tended to cheat, and just nobble the nibble definitions into the right form - you don't have much to change.
After all that, run "host" against the ipv6 address, and that should check the bitlabel lookup. "host -n" should check the nibble lookup against .int, and if that all works you're away. (This assumes you have a new version of host. If your host moans about -n, try finding a box with a newer version).