[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: About draft-arifumi-lin6-multihome-api-00.txt (was Re: Call forpresentations)



Hi Marcelo,
thank you for reading my document.

On 23 Jun 2003 18:10:02 +0200
marcelo bagnulo <marcelo@it.uc3m.es> wrote:

> Hi,
> 
> I have some questions about draft-arifumi-lin6-multihome-api-00.txt.
> 
> I fail to understand the idea behind this proposal.
> 
> I mean, if i understand correctly, the draft proposes an API that it is
> capable of handling the multiple address that result when a site is
> multi-homed and it uses PA addresses.
> 
> However, it seems somehow linked to LIN6 (LIN6 is mentioned multiple
> times in the document), but i fail to understand how. AFAIK LIN6 maps
> multiple different addresses in a single address, making the change of
> address transparent to transport layer and above.
> 
> So LIN6 handles multiple addresses in the IP layer making it transparent
> to upper layers and the proposed draft proposes a way to handle multiple
> addresses. How is this compatible? i mean the upper layers, see one LIN6
> address or multiple addresses?
> If the upper layers are aware of the multiple address, what do you need
> LIN6 for?

Your understanding about LIN6 is absolutely correct.
In LIN6, the locator part of an IPv6 address isn't visible
to upper layers. This makes it possible to continue
existing sessions even when an LIN6 node moves and
its address is changed.
In this model, however, upper layers cannot make any
controls on outgoing packets' address and route. This
model, we think, doesn't benefit from multihoming.
So we make it possible to make an special socket through
which multiple locators are visible to upper layers
(application layer). This special socket are implemented
so that it can co-exist with normal sockets.
For such a socket, LIN6 is used for address resolution,
notification and registration. LIN6 layer acquires
target node's addresses, registers locators to its
Mapping Agents and notifies address change to the
corresponding nodes and also to upper layers.

> An additional question is about address discovery. I mean how do the end
> nodes find out what addresses are available at the other end? There is a
> mapping agent mentioned, but where is this mapping agent located? which
> addresses does it announce? all the available addresses or just the ones
> that are reachable at the moment? if the latter, how does it find out
> whether an address is reachable or not?

These issues are mentioned in LIN6's draft below.
http://www.lin6.net/draft/draft-teraoka-ipng-lin6-01.txt 
Briefly speaking, you can get the MA's address by a kind
of DNS address-to-name translations. By making a query
,where an mobile node is, to the MA, a corresponding node
can get all the addresses the mobile node has even if some
of the addresses aren't reachable from the corresponding
node.

> Another question is related to security, i.e. how do you authenticate
> the addresses actually belong to the node that is claiming its
> ownership? This is a very important and difficult issue as far i can
> tell, and it should be addressed.

This is also mentioned in the LIN6's draft above. In LIN6
layer, address information are exchanged and updated in
a secure manner using cookies exchanged through a location
query to the MA.

> Finally, how the multi-homed node communicates the alternative address
> to be used when the address that is being used fails? 

Our APIs, mentioned in my draft, are used for this porpose.
By getaddrinfo2(), an application can acquire all the
addresses of the other end node and by setsockopt()
an application specify the kernel which address should
used for destination/source address of outgoing packets.


I hope you understand what our APIs are for and why these
are based on the LIN6.
Any comments are welcome.

-- 
Arifumi Matsumoto (arifumi@kuis.kyoto-u.ac.jp)
Kyoto University