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

Re: An idea: GxSE



> Not all applications are TCP or SCTP. UDP applications don't
> (in principle at least) have enough state to respond to
> an address update, do they?
>
Some UDP applications do a connect(). In this case there is state
in the kernel which can react to an address update. In other
cases it would be a problem. Do you mean to say that UDP
applications might remember about destinations it needs
to communicate with, for a long time ?

Most of the documents about renumbering talks only about
TCP connection surviving and so we are a bit carried
away here i guess..

-mohan

o
>    Brian
> 
> Mohan Parthasarathy wrote:
> > 
> > Paul,
> > 
> > TCP endpoint being associated with multiple addresses was
> > discussed in draft-nikander-mobileip-homelessv6-01.txt.
> > Isn't renumbering equivalent to a mobile node moving to
> > a new foreign link ? In that case why can't renumbering
> > event trigger all the TCP connections to generate a
> > new secure message (known as binding update in mobile IPv6)
> > to tell its peer about the new address ? After sending
> > this message, TCP connections start using the new address.
> > Why wouldn't this work ?
> > 
> > If we are looking for a solution that would not change
> > the end host's implementation, then the above is not
> > suitable. So, is the requirement that the
> > renumbering event should be completely transparent to
> > the end hosts ?
> > 
> > -mohan
> > >
> > > I've been tossing around the following basic approach to the
> > > multihoming/renumbering problem, and am wondering if folks think it is worth
> > > pursuing.
> > >
> > > Like GSE, the basic idea is to isolate site numbering from global numbering
> > > by allowing site border routers to rewrite prefixes as packets pass in and
> > > out of a site.  Unlike GSE, however, the ID is not the sole identifier of
> > > the host.  The full address is still the identifier, but multiple (full)
> > > addresses are used to identify the host.  A packet received with any of the
> > > set of addresses identifies the host.  In this sense, the idea is like
> > > SCTP's use of multiple addresses.
> > >
> > > I call this approach GxSE, to convey the idea that like GSE the address has
> > > global, site, and end-system address elements, but unlike GSE, addresses
> > > with multiple globals are used to identify a host (thus the 'x' after the G
> > > conveys a multiplier).
> > >
> > > There are multiple ways one could design GxSE.  Here are the primary aspects
> > > of what I have in mind:
> > >
> > > Every host knows at least one (and typically only one) address for itself,
> > > called the self-known address (SK address).  The SK address may or may not
> > > be globally routable, but must be globally unique.
> > >
> > > In addition to the SK address (from here on I talk as though there is only a
> > > single SK address---it should be understood that there can be multiple of
> > > them), there is a set of one or more globally routable addresses (GR
> > > addresses) for every host.  The host does not need to know its GR addresses
> > > (nor do site-internal routers).  All of the addresses (GR and SK) for a host
> > > have the same "site" and "ID" parts, but different "global" parts (aka
> > > "prefix").  An SK address may also be a GR address.  The (publicly
> > > reachable) DNS entry for a host will typically contain all of the hosts' GR
> > > addresses.
> > >
> > > Each of the GR address prefixes of course represents that assigned by an
> > > ISP.  There is a site border router attached to that ISP with that GR
> > > prefix.  The site border router knows the SK prefixes for the site.  (All
> > > hosts in a site do not necessarily have the same SK prefix, but if they
> > > don't then the site border router must know the SK prefix for every host.)
> > > The site border router knows all of the GR prefixes for the site, not just
> > > its own.  (Again, all hosts in a site do not necessarily "have" the same GR
> > > prefixes, but if they don't then the site border router must know the GR
> > > prefixes for every host.  Clearly it is better if all hosts have the same SK
> > > and GR prefixes, and this should be normal operation.)
> > >
> > > For every "connection" (where a connection is defined as a distinct
> > > address/protocol/port 5-tuple), the host keeps a list of (globally unique)
> > > addresses of the destination (or partner) host.  It knows which of these is
> > > the SK address, and whether theSK address is routable or not.  This full
> > > list identifies the host (not just the SK address).  Two connections with
> > > partner hosts with different lists, even if they use the same SK address,
> > > are considered to be different hosts.
> > >
> > > Packets transmitted by a host contain its SK address as the source address,
> > > and one of the GR addresses of the partner host as the destination address.
> > > Typically the destination address will be that of the most recently received
> > > source address, but not necessarily.  When the packet passes through the
> > > site border router, the router replaces the global prefix part of the SK
> > > address with that of the ISP to which it will route the packet.
> > >
> > > When a packet is received by a site border router incoming, the site border
> > > router replaces the GR prefix with the SK prefix of the destination host,
> > > and forwards the packet into the site.
> > >
> > > The list of addresses (GR and SK) is conveyed to partner hosts by an IPv6
> > > extension header---the address-list extension.  This header is typically
> > > added by the site border router as the packet exits the site.  (It could
> > > also be added by the source host, but this would require the host to know
> > > its GR addresses which is the thing GxSE is trying to avoid.  Nevertheless,
> > > a site could choose to operate this way.)  The header is added typically
> > > only for the first packet sent in either direction (with the return header
> > > indicating whether the forward header was received).  A GxSE-aware host
> > > would tell the site border router to add the address-list extension by
> > > attaching a different extension header (the "please add the address-list
> > > extension" extension, or address-list-trigger extension).  Both extension
> > > headers are of the "if unknown, skip over this option and continue
> > > processing the header" type.
> > >
> > > The typical exchange would go like this:
> > >
> > > SH-->SSBR: |IPv6 head|ALT ext head|transport|
> > > SSBR->DH:  |IPv6 head|ALT ext head|AL ext head|transport|
> > > DH->DSBR:  |IPv6 head|ALT ext head (acks first ALT)|transport|
> > > DSBR->SH:  |IPv6 head|ALT ext head|AL ext head|transport|
> > > SH->DH:    |IPv6 head|transport|
> > > DH->SH:    |IPv6 head|transport|
> > >
> > > (where SH=source host, SSBR=source site border router, DH and DSBR are same
> > > for destination, ALT=address-list-trigger, AL=address-list)
> > >
> > >
> > > This is the basic idea.  Lots of unworked details....
> > >
> > > For API, I imagine that the full list of addresses (GR+SK) gets handed up to
> > > the upper layer, if it cares to know.
> > >
> > > Pseudo-header checksums and IPsec would I suppose be based on the SK address
> > > only (not the GR addresses).
> > >
> > > Not sure how to deal with IPsec regarding the extension headers---due to
> > > inadequate understanding of this stuff.
> > >
> > > The extension header "handshake" needs to be worked through...might need to
> > > be 3-way etc.
> > >
> > > There are some destination address selection issues, to deal with the fact
> > > that SK addresses work within a site but not necessarily outside the site.
> > > Two hosts in the same site would want to use the SK address, not a GR
> > > address, when talking to each other.  One approach is two-faced DNS.
> > > Another might be to go ahead and have DNS return the GR addresses, but after
> > > the address-list extension headers are exchanged, the hosts would recognize
> > > that they share the same SK prefix and could start using that (and
> > > subsequently bypassing the site border router).  Note that IPv6 with
> > > site-local prefixes has the same sorts of issues.
> > >
> > > As for transition, site border routers need to know which hosts are GxSE
> > > aware and which aren't.  For those that aren't the baseline behaviour would
> > > be for site border routers would agree to all use the same GR prefix on
> > > outgoing packets for each host.  Obviously if the site border router with
> > > that GR crashes, then communications breaks, but this is no different from
> > > today's situation.  The site border routers could potentially also try to
> > > proxy GxSE on behalf of the non-GxSE aware hosts (for the case where the
> > > partner host is GxSE aware).  In this case, the site border router would
> > > need to keep enough state to know to attach the address-list extension on
> > > the initial packet only. (An address-list extension minus the
> > > address-list-trigger extension would convey to the destination host that the
> > > source host is non-GxSE aware, but the site border router is.)
> > >
> > > As for the issues brought up by draft-ietf-ipngwg-esd-analysis-05.txt, they
> > > largely don't apply because GxSE uses fully overloaded addresses, just more
> > > of them.  For instance, there is no ID-to-address mapping issue because the
> > > ID is never used alone as the identifier.  A host cannot pretend to be
> > > another host, in essence because the full set of addresses is what
> > > "identifies" a host, not a single address (and certainly not an ID alone).
> > > So, for instance, if a rogue host tries to pass itself off as having another
> > > host's SK address but its own GR address, it won't matter because the
> > > "identity" of the rogue host would be considered to be the whole list of
> > > addresses, and so wouldn't be confused with the "true" host (with the same
> > > SK address but the correct GR address).
> > >
> > > Note that GSxE doesn't prevent renumbering altogether---it would still be
> > > required when two sites merge.  But renumbering would not be necessary
> > > because of changing providers.
> > >
> > > Comments?
> > >
> > > PF