Subject: RE: (ngtrans) Shipworm Questions

From: "Christian Huitema" <[email-masked]>
Date: Tue, 9 Oct 2001 16:23:44 -0700

> From: Pekka Savola [mailto:[email-masked]]
> 
> On Mon, 8 Oct 2001, Eng Soo Guan wrote:
> > In Section 4.3.2, when the server replies to a RS, "the IPv6
> destination
> > address is normally set to the IPv6 source address of the RS; if
> that
> > address was the unspecified address, the IPv6 destination should be
> set to
> > the Shipworm IPv6 anycast address".

You are right, this is dubious. As Pekka points out, clients should not
send messages from an unspecified address in the first place. When they
do so, the router must make up an address. We could pick the "local
scope all node multicast address" as specified in [RFC2641] instead of
Shipworm IPv6 anycast address; I have no real preference there, will
follow the majority opinion.

> > In Section 4.2.1, during initialisation, a client sends a Router
> > Solicitation Message whereby the "IPv6 destination of the RS is the
> Shipworm
> > IPv6 anycast address; the IPv6 source is the unspecified address".
> In the
> > same section, when a client receives a router advertisement, it has
> to check
> > if the "the IPv6 destination address is equal to the random link
> local
> > address picked used in the router solicitation".
> >
> > My question is where in the Router Solicitation Message is the
> random link
> > local address stored? If it is not in the RS, ther Shipworm server
> will not
> > the random link local address. Then, how can it send a response with
> the
> > destination set to the link local address?
> 
> This appears to be a bug, from times when random link local address
> wasn't
> required yet.  The client should use random link local address as the
> source (and server in the reply).  Good catch.

Yes, this is a leftover of the previous edition. I will correct it.

> > Furthermore, if the IPv6 destination address of the RA sent by
> Shipworm
> > Server is the Shipworm IPv6 anycase address, according to Section
> 4.2.1, it
> > will be discarded, right?
> 
> There is no point the RA sent by Server would be anycast address.
> Source
> yes, but the Client checks destination.
> 
> So I'm not sure what you mean.

Eng picked up the typo in 4.2.1, and observed that this typo generates a
problem: if the client sends the RS from an unspecified address, the
destination address in the RA will not match the link local random
address, which would cause the procedure to fail. This is corrected by
specifying that the source address of the RS should be the link local
random address.

> > Subsequent in Section 4.2.1, the client prefix must should be valid
> based
> > on:
> > "- the first 16 bits contain the Shipworm service TLA,
> > - the next 32 bits are the client's Shipworm mapped address,
> > - the next 16 bits are the client's Shipworm mapped port."
> >
> > But the Shipworm mapped address and port will not be known to the
> Shipworm
> > Client before teh Router Advertisement (RA) is returned. How did the
> client
> > then validate the RA?
> 
> The spec doesn't say that that the packet should be verified as you
> understood it; it cannot (as you pointed out).
> 
> It just means that basically, TLA must be the shipworm prefix, mapped
> address should be sane if the local implementation made it so (e.g.
> require non-private address), etc., and the values there should be
> configured to the Shipworm Client from the advertisement.
> 
> There might be room for a minor clarification on what is actually
> considered valid there.

I will rewrite the text so as to eliminate this ambiguity:

   This prefix should be a valid Shipworm IPv6 client prefix: the first 
   16 bits should contain the Shipworm service TLA. If this is the case,

   then the client learns the local Shipworm mapped address and Shipworm

   mapped port associated to the local Shipworm service port:

   - the next 32 bits are the client's Shipworm mapped address,

   - the next 16 bits are the client's Shipworm mapped port.

-- Christian Huitema

---

From: "Eng Soo Guan" <[email-masked]>
Date: Wed, 10 Oct 2001 10:59:41 +0800

Dear Christian and Pekka,

Thanx for the help in clarifying my doubts.

I still have questions about the random link local address.

Consider a Shipworm Client uses the random link local address
FE80::1:NODE_ID (where NODE_ID is a 64 bit node identifier).

From Section 5.8, "the use of a randomized link-local address in the router
solicitation messages provides some protection against this attack: a router
advertisement whose destination address does not match the expected value
will be silently discarded".

My first doubt is if the destination of a RA must be FE80::1:NODE_ID (from
Section 5.8), then the source of the corresponding RS must be
FE80::1:NODE_ID right? If yes, then a malevolent third party with a Shipworm
IPv6 Anycast will still be able to send perform denial of service attach. If
no, then how will a Server knows the random link-local address?

For RS, instead of Shipworm Anycast Address, let the Client uses the local
scope all node multicast address FF02::1 in RFC2641. From Section 4.3.2, the
Server will send a RA back to the Client with a destination FF02::1.

My second doubt is when is FE80::1:NODE_ID used as a source/destination
address?

I am also unsure about using IPv4 Anycast Address. I hope I am not wrong in
saying that Shipworm will be an excellent solution if it requires minimum
modifications to existing IPv4 Internet.  The use of IPv4 Anycast address
will requires some modifications/additions to existing routing protocols.
Will this not affect the 'usefuleness' of Shipworm?

SG
Soo Guan, Eng
Centre for Wireless Communications
http://www.cwc.nus.edu.sg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~