ipv6 addressing - non-routable equivalents?

Jonathan Guthrie jguthrie@brokersys.com
Thu, 5 Oct 2000 12:28:46 -0500 (CDT)


On Wed, 4 Oct 2000, Sebastien Roy wrote:

> > > On Sun, 1 Oct 2000, Jonathan Guthrie wrote:
 
> > > > What I don't understand is what to do if you want multiple global
> > > > addresses on a single computer.

> > My reading of rfc2373 (which can be retrieved from
> > ftp://ftp.isi.edu/in-notes/rfc2373.txt, if you have a mind to read it) is
> > that those 16 bits (which are inserted starting at bit 24) are required to
> > be 0xfffe.
 
> > I don't want to speak ill of the standards process as it's tough enough to
> > accomplish as it is, but didn't anybody consider the fact that people are
> > going to want to use address-based virtual hosting when designing this
> > scheme, or am I missing something?
 
> It's perfectly acceptable to manually configure multiple global IPv6
> addresses on a single interface.  There's no mandate on using
> stateless address autoconfiguration, or on using an IEEE 48bit MAC
> address as a token to the EUI-64 based identifier (i.e., ::1 is a
> perfectly fine interface identifier as long as it's unique on the
> link).  It's also acceptable to use stateless address
> autoconfiguration in combination with manual configuration, or any
> other stateful protocols.

Yes, ::1 is a perfectly fine interface identifier, and I make use but it's
not a GLOBAL interface identifier.  That is, interface identifiers with
the global bit set are guaranteed to be unique on the Internet.  Perhaps
my terminology is incorrect, but unless I can put multiple globally-unique
interface identifiers on the same box, an awful lot of the magic IPv6
promises simply isn't there.

Here's why:

Currently the Internet is a "stupid network".  That is, as far as any of
the endpoints hooked to the Internet is concerned, you put bits in and you
get bits out.  Any interaction is between you and the far end, not with
the network itself.  That means that adding a capability, like a new
service type, simply requires that both ends support it:  The network
doesn't have to be modified.

Contrast this with the PSTN, where to do anything requires interacting
directly with the network and where adding services (like call waiting,
caller id, and so forth) requires modification, sometimes substantial
modifications, to the network.  For a more complete discussion of "stupid
networks", check out http://www.camworld.com/att.html.

The thing is, the Internet is NOT stupid with respect to routing.  In
order to do anything more complicated than a single nonredundant
connection, you have to have your equipment interact with the routing
structure of the Internet.  One of the most common questions on the Zebra
(a freeware routing protocol package) is "I've got two connections to the
Internet at my house from different providers, can I use Zebra to help me
use both of them at the same time?"  The answer, of course, is "no"
because multihoming requires (in principle and usually in practice) that
the entire Internet understand that routes through both providers are
equally valid for the addresses in question.

Globally-unique interface identifiers gives us a chance to change that.

With globally-unique interface identifiers, it becomes possible for the
software at the endpoints to determine that multiple routing options exist
and to exercise their own control over what routes a packet take.  The
rest of the Internet can simply take the attitude that the routing
structure is a tree and pass the packets along, fat, dumb, and happy.

Of course, this requires more than the adoption of IPv6 to accomplish.  
In particular, it requires the ability for the TCP and UDP implementations
to recognize that packets sent from the same globally-unique interface
identifier are from the same place even if the network numbers are
different and it requires the routing software to routinely make routing
decisions, at least in part, on the source address, and it may require
other things I haven't thought of.  However, the point is that it doesn't
work unless most interface identifiers are globally unique.

I believe that many people will want to have multiple globally-unique
interface identifiers on the same computer.  Is there a standard way of
doing this?
-- 
Jonathan Guthrie (jguthrie@brokersys.com)
Brokersys  +281-580-3358   http://www.brokersys.com/
12703 Veterans Memorial #106, Houston, TX  77014, USA