Subject: [mobile-ip] general sloppiness in recommendations about how MN handles overlapping subnets/overlapping coverage areas

From: "Ed Remmell" <[email-masked]>
Date: Thu, 21 Nov 2002 10:58:42 -0700

Hello,

I've noted a general sloppiness in draft 19 regarding how the MN should
handle the scenario of overlapping coverage areas, specifically how to go
about selecting the primary CoA in this scenario. This also applies to other
scenarios which approximate the L3 behavior of the MN being attached to
multiple IPv6 links simultaneously.

---------------------
Recommended solution:

Section 11.5.2 says the right thing, but is incomplete:
"After detecting that it has moved from one link to another (i.e., its
current default router has become unreachable and it has discovered a new
default router), a mobile node SHOULD form a new primary care-of address
using one of the on-link subnet prefixes advertised by the new router."

Section 11.5.1 also says the right thing, again incomplete:
"For example, a mobile node MAY use signal strength or signal quality
information (with suitable hysteresis) for its link with the available
routers to decide when to switch to a new primary care-of address using that
router rather than its current default router (and current primary care-of
address)."

However, the following wording should be removed from section 11.5.3,
because it is misleading:
"A mobile node SHOULD select a primary care-of address from among those
care-of addresses it has formed using any of these subnet prefixes, based on
the movement detection mechanism in use, as described in Section 11.5.1."

This should be replaced with a new requirement, which can either go in
section 11.5.2 or section 11.5.3:
"The MN MUST ensure that its primary care-of address always has a prefix
that is considered on-link by its current default router (i.e., advertised
by its current default router in a solicited Router Advertisement); this may
require the MN to either change its primary care-of address and/or its
current default router."

Those are the important modifications that I think really need to be made to
this draft. Here are some additional changes that could be made to provide
additional guidance to implementors:

New requirements text, add to section 11.5.3:
"Whenever a MN determines that it is no longer reachable through a given
link, it SHOULD invalidate all care-of addresses associated with address
prefixes that it discovered from routers on the unreachable link which are
not in the current set of address prefixes advertised by the (possibly new)
current default router."

"The MN MAY choose to restrict auto-configuration of care-of addresses to
use only those prefixes it discovers by receiving Router Advertisements from
the current default router."

--------------
Justification:

On a given physical link there may be overlapping subnets, each with their
own router(s). Per RFC-2461, section 6.2.7.  Router Advertisement
Consistency:
"Note that it is not an error for different routers <on the same link> to
advertise different sets of prefixes."

This is similar to the "Overlapping RF Coverage Areas" scenario, i.e. it
could be possible (although undesirable) for two RF link layers to be on the
same channel and received by the same MN simultaneously (or, if insufficient
L2 triggers are provided, it might appear that way to L3, i.e. the
ping-ponging case).

This "Overlapping RF Coverage Areas" scenario is even mentioned in draft 19
section 11.5.2 as a seemingly acceptable situation:
"Furthermore, since a wireless network interface may actually allow a mobile
node to be reachable on more than one link at a time (i.e., within wireless
transmitter range of routers on more than one separate link), a mobile node
MAY have care-of addresses on more than one link at a time."

It seems to me like there are two problems in draft 19, not explicit
problems per se, but lack of detail and suggestions of how to do things
(i.e. auto-configure as many CoAs as you want, on as many overlapping links
as you want, it doesn't matter what link the prefixes that you use to
auto-configure CoAs come from, just pick any old one and use it as your
primary CoA) that can be misleading:

1) It does matter where the CoAs come from, and more importantly where your
primary CoA came from. This is because when you move to a new link that
doesn't advertise those prefixes, you want to invalidate all of the CoAs
that you previously auto-configured that have the old prefixes which are not
advertised by the new default router. This isn't really discussed in draft
19.

2) The overlapping RF coverage areas scenario is very misleading - you may
only be able to hear some of those other routers on those other links, you
may not actually be able to transmit successfully to them. Just because you
can hear any old router, you don't want to necessarily be auto-configuring
CoAs from the prefixes that it advertises, because you may not be able to
transmit successfully on that link. I'm assuming the scenario of overlapping
RF coverage areas here, which means you can hear/receive on multiple links
simultaneously, but that doesn't mean that you can successfully transmit on
all of those links.

Section 6.2.3 of RFC-2461 additionally says:
"However, when responding to a Router Solicitation or while sending the
first few initial unsolicited advertisements, a router SHOULD include all
options so that all information (e.g., prefixes) is propagated quickly
during system initialization."
This says that to ensure you get a complete set of subnet prefixes from a
router, you must solicit the router. An unsolicited RA may not contain the
complete set, but a solicited RA should.

So, what I want to handle is the case where the MN has its interface
attached to functionally two different IPv6 links/subnets at the same time
(or at least it appears that way to L3). According to RFC-2461, when I
solicit the router with a RS, the solicited RA should contain the complete
set of subnet prefixes that that router supports for this link. What if
there is another router that appears to be (or even is) on the same link
which broadcasts an entirely different set of prefixes? According to
RFC-2461, this is not an error, so then I must handle it. According to draft
19, this situation may happen due to overlapping RF coverage areas, which is
treated as an acceptable situation.

The MN could get pretty confused, if it has auto-configured a primary CoA
belonging to a router which isn't its current default router and which isn't
on the same link (anymore, although it appeared to be for awhile), since it
isn't going to necessarily know to invalidate that CoA and then pick a new
primary CoA. Perhaps the solution is obvious to all of the MN implementors
out there but I would have liked to have seen more detail about this in the
specification. For example, there is no requirement on the MN or hint in the
specification that says that when the MN switches to a new default router,
any prefix that it auto-configured using the old default router now needs to
be invalidated if it isn't in the full set of prefixes advertised in the
solicited RA sent by the new default router when it is solicited by the MN.
That is part of what I was missing.

Thanks.
- Ed Remmell
Elmic Systems, USA
http://www.elmic.com

---

From: "Ed Remmell" <[email-masked]>
Date: Thu, 21 Nov 2002 19:11:21 -0700

Hello,

I'm somewhat surprised I didn't get any response to this (but then I am the
impatient type...). Perhaps it is difficult to understand what the problem
really is.

>From the justification section of this problem report:
"The MN could get pretty confused, if it has auto-configured a primary CoA
belonging to a router which isn't its current default router and which isn't
on the same link (anymore, although it appeared to be for awhile), since it
isn't going to necessarily know to invalidate that CoA and then pick a new
primary CoA."

There is a big problem if this occurs: if the MN is using a primary CoA that
is no longer on-link, it will never receive packets sent to that primary
CoA. The only way to guarantee that the primary CoA is on-link is to
syncronize it with the current default router (which you are monitoring for
your move detection, i.e. bi-directional reachability confirmation of your
current default router means that you are still on-link and haven't moved),
which is what my proposed requirements changes ensure happens.

There can also be a problem due to ingress filtering if you try to use a
primary CoA to send packets through your current default router if the
prefix of that primary CoA isn't one of the prefixes advertised by that
current default router; this could cause your current default router to drop
all packets that you send with that source address.

Also, this is relevant to some of the stuff I've been seeing about source
address selection w/ regards to Mobile IPv6. You want to be certain that if
you use a CoA, it comes from a router that is currently bi-directionally
reachable. The only router that you must monitor to confirm bi-directional
reachability (per draft 19) is the current default router, all other routers
are suspect. Just because you can hear some other router's transmissions
because it might be on the same link or on an overlapping link (i.e.
overlapping coverage areas, or ping-ponging), doesn't mean that it can hear
your transmissions, i.e. does not guarantee bi-directional reachability.
Lots of weird things happen with RF, it is messy. Being able to
auto-configure lots of different CoAs from lots of different overlapping
links that you appear to be simultaneously attached to is not a bonus, it is
downright scary actually, because lots of things can go wrong if you aren't
careful. Personally, I'm happy just to stick with using a single primary CoA
for everything, and keeping that primary CoA in sync with whomever my
current default router is at the time by making sure that the prefix of my
primary CoA matches one of the advertised prefixes of my current default
router.

'nuff said. If you don't think this needs clarification in the Mobile IPv6
specification for MN implementors, then I'm OK with that, because we've
already figured out the correct thing to do in our MN implementation. I was
just trying to share ;-)

Thanks.
- Ed Remmell
Elmic Systems, USA
http://www.elmic.com

> -----Original Message-----
> From: [email-masked]
> [mailto:[email-masked]]On Behalf Of Ed Remmell
> Sent: Thursday, November 21, 2002 10:59 AM
> To: Mobile IPv6 mailling list
> Subject: [mobile-ip] general sloppiness in recommendations about how MN
> handles overlapping subnets/overlapping coverage areas
>
>
> Hello,
>

---

From: "Ed Remmell" <[email-masked]>
Date: Mon, 25 Nov 2002 08:01:49 -0700

proposed text changes to draft 19:

> the following wording should be removed from section 11.5.3,

Thanks.
- Ed

---

From: Jari Arkko <[email-masked]>
Date: Mon, 25 Nov 2002 16:47:21 +0200

Ed Remmell wrote:

>>require the MN to either change its primary care-of address and/or its.
>>current default router."

Looks OK to me.

>>not in the current set of address prefixes advertised by the

Ok.

>>the current default router."

I'm not sure why we need this. Aren't the two above changes already enough?

Jari

---

From: "Ed Remmell" <[email-masked]>
Date: Mon, 25 Nov 2002 08:55:25 -0700

Jari -

Yes, I agree with you, the other two changes are enough. I was just
including the 3rd "MAY" as a note/hint to implementors, but it isn't really
needed.

Thanks.
- Ed Remmell
Elmic Systems, USA
http://www.elmic.com

> From: Jari Arkko [mailto:[email-masked]]
> Sent: Monday, November 25, 2002 7:47 AM
> To: Ed Remmell
> Cc: Mobile IPv6 mailling list
> Subject: Re: [mobile-ip] general sloppiness in recommendations about how
> MN handles overlapping subnets/overlapping coverage areas
>
>
> Ed Remmell wrote:
>