[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [DNA] Design Team solution 1: Question about DNA Option
Greg Daley wrote:
> from draft-pentland-dna-protocol-00.txt:
>
> Section 4.3:
>
> The learned prefixes in the DNA option are not
> 8 octet aligned, and include prefix lengths.
>
> Assuming that advertised prefixes are global
> addresses, can't the prefixes be:
> 1) 8 octet aligned and
>
> 2) 8 octets (64 bits) long
>
> With no prefix length field.
Since prefixes can be of arbitrary length (0-127 bits) [there is nothing
that constrains the length for the 000/3 part of the address space, and
I wouldn't be surprised if over time we relax the /64 recommendation
either], the only way you can ensure that *all* the prefixes in the DNAO
are 8 byte aligned is to include 16 bytes for every prefix.
From an implementation perspective there aren't any benefits to ensure
that some prefixes are 8 byte aligned, since you need to write code to
handle the unaligned cases anyway.
Up leveling, I'd expect that in the wast majority of IPv6 links, all the
routers would advertise the same set of prefixes. While RFC 2461 in its
generality allows for different set of prefixes being advertised by
different routers, I see no operational use for this when running a
stable network.
When all routers advertise the same set of prefixes, DNA would never
need to send a DNAO option. Thus spending a lot of complexity on trying
to optimize the DNAO option layout doesn't make much sense to me.
> Also, if there is a requested landmark prefix, could it not appear
> in the DNA option, even if the option is does not provide complete RA?
> The minimum NACK for an unknown landmark would then be 8 octets
> (no prefixes in the list), on top of the existing RA.
Since in the wast majority of cases there wouldn't be a DNAO, I don't
see the benefits of overloading the DNAO with the landmark
question/answer parts.
> The solicited RAs then already have space for either a landmark or
> a completeRA (DNA) Option. Each of the specifications will have
> wasted space, which can be put to use for other purposes.
What is the wasted space and in which case?
We have 3 cases:
1. LO with "yes" answer (just the RA header + LO).
2. LO with "no" answer (RA+LO+misc options+PIOs) ["misc" being MTU etc]
3. Multicast RA (periodic and solicited): RA+misc options+PIOs and DNAO
if there are any learned prefixes
I don't see much wasted space in either one of them.
> It's actually not one bit of information either.
>
> The fact that a host knows all the number of prefixes but can't fit
s/host/router/>>>
> them in an RA can be used to compose a complete prefix list which is
> provably (with SEND) complete. At least the MN can stop hunting for new
> prefixes if in the responses from two or more routers, it can see that
> a conjoined (and complete) set of prefixes is available.
The DT discussed whether a count of prefixes was useful when not all
advertised and learned prefixes fit in one RA, but came to the
conclusion that due to the prefix not being static, it actually doesn't
help. The routers might at any time be reconfigured to advertise an
additional prefix, one less prefix, or replace one prefix with another.
Combining this with the fact that the host in question plus the N
routers on the link form a distributed system, and there is no definable
order of the events in a distributed system (see "Time, clocks, and the
ordering of events in a distributed system" by Leslie Lamport), the DT
couldn't come up with any host processing rules that would use a count
of prefixes that actually worked.
> I don't like the yes/no either.
Did you have some technical comments, our should we switch to discussing
our personal tastes and distastes :-)
> Well, SEND already has better response matching than this
> using its Nonce Options (which are mandatory for SEND responses).
>
> It's also possible to use this without SEND as detailed in:
>
> draft-daley-dna-nonce-resp-01.txt
>
> Sorry about the self plug, but I think it's a good solution.
But that solves the question of making matching the RA with the RS,
which isn't a problem we need to solve.
The problem we need to solve with landmark is making sure that the
answer applies to the question. This problem is solved in the draft by
repeating the question with the answer. (A technique which is also used
in the DNS protocol.)
For example, if host H1 and H2 have duplicate addresses, and send the RS
while being in optimistic DAD mode, then it might be that the RS sent by
H2 results in a unicast RA being delivered to H1. This is harmless,
since the host verifies that the question in the LO is indeed the
question they asked, and if not ignore the answer. And if both hosts
asked the same landmark question then H1 will happily accept the LO
answer that was a result of H2 sending an RS.
This never gets things wrong.
A nonce scheme is making a probabilistic argument about the likelihood
of the two hosts picking the same nonce, hence needs to depend on good
random number generators. And with a non-zero probability it will end up
with two hosts picking the same nonce.
Note that using nonces in SEND is a bit different. First of all, to do
security you need a good random number generator. Second, SeND doesn't
fail if two hosts by chance pick the same nonce; SeND just needs to make
it unlikely that a nonce value gets repeated, since it would allow an
attacker to replay an old message.
Erik