[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Two more NSEC++ proposals
First, these are incomplete -- many details, like how to expose empty
non-terminals and details of hash parameterization, are not addressed.
These may also be very bad ideas for a number of reasons. You've been
warned.
On Wed, 30 Mar 2005, Alex Bligh wrote:
> I think without hash truncation, "long" names just won't work.
This is true so long as one assumes that the hashes have to be
expressed as part of domain names (i.e. the owner names of NSEC++
RRs). What if one instead moved both (lists of) hashes into the
NSEC++ RDATA and somehow encoded them as something other than domain
names (or using an alternate domain name encoding that avoids the
length limits, remembering that we have full control over the RDATA):
ownername NSEC8 start-hash end-hash bitmap
This still tells a resolver that any name whose hash falls between the
values in this NSEC8 does not exist in this zone. The question then
becomes: what does one use as an ownername?
Proposal 1:
Anything. Make up (truly) random names in the zone.
bert.example.com NSEC8 hash1 hash2 bitmap
hates.example.com NSEC8 hash2 hash3 bitmap
spam.example.com NSEC8 hash3 hash1 bitmap
There's still a potential recursion problem (the NSEC8s prove
themselves not to exist), but the NSEC3 discussions have led us to
think this won't have any real effect. Also, the authoritative
server needs to index the NSEC8s by hash values, not ownernames.
One could also create a delegation within the zone to keep these
names in one place:
foo.nsec.example.com NSEC8 hash1 hash2 bitmap
bar.nsec.example.com NSEC8 hash2 hash3 bitmap
baz.nsec.example.com NSEC8 hash3 hash1 bitmap
Proposal 2:
Since the ownernames of these NSEC8's don't matter, why not just
stick them all at the same name? Even the apex? Having them be
part of one big RRset with one RRSIG just won't scale. Instead,
treat each NSEC8 as a separate possible NSEC8 RRset for the apex.
The authoritative server keeps a table of these and selects the
right one, along with its RRSIG, whenever needed. Even better,
have each NSEC8 RRset also contain the NSEC8 RR proving that no
wildcard exists.
Using the example above, there would be three possible NSEC8 RRsets
at the apex, and the server would select among them on demand.
Assuming that the wildcard hashes between hash2 and hash3, these
RRsets would be:
example.com NSEC8 hash1 hash2 bitmap (proves no exact)
example.com NSEC8 hash2 hash3 bitmap (proves no wildcard)
example.com NSEC8 hash2 hash3 bitmap (proves both)
example.com NSEC8 hash2 hash3 bitmap (proves no wildcard)
example.com NSEC8 hash3 hash1 bitmap (proves no exact)
Running for cover,
-- Sam
--
to unsubscribe send a message to namedroppers-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/namedroppers/>