JINMEI Tatuya / 神明達哉 a écrit :
At Thu, 19 Feb 2009 21:56:21 +0100,
Alexandru Petrescu <[email protected]> wrote:
If what you mean is something like this:
- router A advertises P::/48 with L=1, A=1
- router B (a downstream of A) advertises P::/52 with L=1, A=1
- router C (a downstream of B) advertises P::/56 with L=1, A=1
while allowing hosts to configure addresses with the shorter prefixes,
then hosts won't be able to communicate off-link: host X, which
receives an RA from router C and configures P::x, would tries neighbor
discovery to send packet to a different host Y, which receives an RA
from router A and configure P::y, because P::y is covered by X's
on-link prefix, P::/56. This attempt will of course fail.
Thanks for digesting an example. I suppose the illustration is:
48 52 56
--A----B----C---
| |
Y X
but by being specific I realized I should have used a different
example. So let me revise the situation:
Assume the /48 prefix is 2001:db8:1111::/48.
- A (or B) advertises 2001:db8:1111::/48 and Y configures
2001:db8:1111::1 (by the hypothetical extension for address
configuration).
- C advertises 2001:db8:1111:cc00::/56 and X configures
2001:db8:1111:cc00::2 (by the hypothetical extension for address
configuration).
The revised question is, how can host Y send a packet destined to
2001:db8:1111:cc00::2 via router B, instead of directly trying
neighbor discovery (which will fail)? Since Y is told
2001:db8:1111::/48 (which covers 2001:db8:1111:cc00::2) as an on-link
prefix, the destination address should be a neighbor of Y.
That breaks (Y can't send to X) because by this hypothetical extension
the 2001:db8:1111::/48 is 'on-link' for the A-B link. Y uses
2001:db8:1111:cc00::2 to find a sort of longest-prefix match[*] in the
Neighbor Cache and finds 2001:db8:1111::/48. And then tries to NS/NA and
times out because no response. Ok.
You seem to say that if that on-link prefix were 2001:db8:1111::/64
(instead of 48) then Y-X communication would have worked; because
presumably the above sort of longest-prefix match wouldn't have hit
2001:db8:1111::/64, and no NS/NA but straight send to router. Ok.
But this means I couldn't accommodate the situation with two distinct
PIO prefixes in the RA either (/48 A=0 L=1, /64 A=1 L=0), because the
/48 L=1 prefix would still fool Y to believe 2001:db8:1111:cc00::2 were
on link.
Which is, again, a strange situation to be in.
Alex
[*]: 'sort of' longest prefix match because it's different than a
typical longest-prefix match performed on the routing table
(routing table and ND search algorithms differ on their inputs and
stop conditions).
--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email protected]
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------