DNSSEC introduces one more new record
type: the NXT record. We'll explain what it's for.
What happens if you look up a domain name that doesn't exist in
a secure zone? If the zone weren't secure, the name server
would simply respond with the "no such domain name"
response code. But how do you sign a response code? If you signed the
whole response message, it would be difficult to cache.
The NXT record solves the problem of signing negative responses. It
"spans" a gap between two consecutive domain names in a
zone, telling you which domain name comes next after a given domain
name -- hence the name of the record.
But doesn't the notion of "consecutive domain
names" imply a canonical order to the domain names in a zone?
Why, yes, it does.
To order the domain names in a zone, you begin by sorting by the
rightmost label in those domain names, then by the next label to the
left, and so on. Labels are sorted case-insensitively and
lexicographically (by dictionary order), with numbers coming before
letters and nonexistent labels before numbers (in other words,
movie.edu would come before
0.movie.edu). So the domain
names in movie.edu would
sort to the following:
movie.edu
bigt.movie.edu
carrie.movie.edu
cujo.movie.edu
dh.movie.edu
diehard.movie.edu
fx.movie.edu
bladerunner.fx.movie.edu
outland.fx.movie.edu
horror.movie.edu
localhost.movie.edu
misery.movie.edu
robocop.movie.edu
shining.movie.edu
terminator.movie.edu
wh.movie.edu
wh249.movie.edu
wh253.movie.edu
wormhole.movie.edu
Notice that just as movie.edu comes before bigt.movie.edu, fx.movie.edu precedes bladerunner.fx.movie.edu.
Once the zone is in canonical order, the NXT records make sense.
Here's one NXT record (the first, in fact) from movie.edu:
movie.edu. NXT bigt.movie.edu. ( NS SOA MX SIG NXT )
This record says that the next domain name in the zone after
movie.edu is bigt.movie.edu, which we could see from
our sorted list of domain names. It also says that movie.edu has NS records, an SOA record,
MX records, a SIG record, and a NXT record.
The last NXT record in a zone is special. Since there's really
no next domain name after the last one, the last NXT record
"wraps around" to the first record in the zone:
wormhole.movie.edu. NXT movie.edu. ( A SIG NXT )
In other words, to indicate that wormhole.movie.edu is the last domain
name in the zone, we say that the next domain name is movie.edu, the first domain name in the
zone.
So how do NXT records provide authenticated negative responses? Well,
if you looked up www.movie.edu internally, you'd
get back the wormhole.movie.edu NXT record,
telling you that there's no www.movie.edu because there are no
domain names in the zone after wormhole.movie.edu. Similarly, if you
tried to look up TXT records for movie.edu, you'd get the first NXT
record we showed you, which tells you there are no TXT records for
movie.edu, just NS, SOA, MX,
SIG, and NXT records.
A SIG record covering the NXT record accompanies it in the response,
authenticating the nonexistence of the domain name or type of data
you asked for.
It's important that the NXT records, in
toto, identify specifically what doesn't exist in the zone. A single catch-all record
that simply says "That doesn't exist" could be
sniffed off the wire and replayed to claim falsely that existing
domain names or records don't actually exist.
For those of you worried about the prospects of adding of these new
records to your zone and keeping them up to date
manually -- uh-oh, now that I've added a host, I've
got to adjust my NXT records -- take heart: BIND provides a tool
to add NXT and SIG records for you automatically.