Subject: Re: Why is IPv6 a must?

From: "J. Noel Chiappa" <[email-masked]>
Date: Mon, 12 Nov 2001 11:14:06 -0500

> From: "Perry E. Metzger" <[email-masked]>

    >>> People frequently propose "endpoint identifiers" and "routing
    >>> identifiers" be separated but no one has ever come up with a worked
    >>> proposal that was less flawed than the current mechanism.

    >> the IPv6 protocol suite contains a very nicely worked out mechanism
    >> which does *exactly* this!
    >> It's called Mobile IPv6, and the "care-of address" in the basic IPv6
    >> header is exactly the "routing identifier", whilst the home address in
    >> the IPv6 routing header is the "endpoint identifier".

    > That doesn't actually fix the problem, Noel. If you don't have an
    > underlying functioning network with scalable routing even if all
    > systems were running on the mobile protocols it still wouldn't work.

??? I said nothing about Mobile IPv6 being a solution to the routing problem.

I was merely pointing out that your catechismic canard about "no fully worked
out example of separating location and identity" is ludicrous on its face,
given the existence of an *IPv6* mechanism that does just that.

	Noel

---

From: Robert Elz <[email-masked]>
Date: Tue, 13 Nov 2001 01:16:19 +0700

Date:        Mon, 12 Nov 2001 11:14:06 -0500
    From:        "J. Noel Chiappa" <[email-masked]>
    Message-ID:  <[email-masked]>

  | I was merely pointing out that your catechismic canard about "no fully
  | worked out example of separating location and identity" is ludicrous
  | on its face, given the existence of an *IPv6* mechanism that does just that.

Aside from mobile IP being just as much v4 as it is v6, this is really
not a very realistic claim.

Mobile IP doesn't separate location and identity really - the location
of the home agent is an important part of the identity of the mobile node.
So, while the location and identity of the mobile node itself may have been
unlinked, the two concepts haven't been, so as a counter example, this is
useless.

It would truly have been nice if IPv6 could have done something to solve the
routing problems - but we don't have the answer to that yet.   And we really
couldn't afford to wait for the answer.

There were two problems facing us 10 years ago - the exhaustion of the
address space, and (recognised a little later) the routing table growth.

The first of those is, unfortunately, a very hard limit - eventually there
will be absolutely no free addresses left at all.  That one simply had to
be solved by a change of the protocols.   No question about it at all.  It
is also, a pretty trivial change to make.   Notwithstanding that, 10 years
later, real deployment is just beginning.

On the other hand, the routing table growth doesn't necessarily need anything
new at all - maybe it will, once a solution is found.   Maybe it won't.
Two things are clear however - first, had we waited until a solution was
found to design the next generation IP, we'd still be waiting (to start).
That is, deployment would be (at least) another 10 years away.   And second,
routing table growth can certainly be handled by simply throwing large
amounts of money at the problem - perhaps prohibitively large, but it is
possible to keep functioning that way (we can build processors with gargantuan
address spaces, we can supply them with monstrous amounts of RAM, we can
install fibre with (close to if not) terrabit rates, to carry the info, and
we can parallelise the routing computations (at least for DV/PV protocols
like BGP) and throw lots of past processors at the problem.   That's a pretty
brutal thing to contemplate, and would make the net much more expensive for
everyone - but at least there is no hard limit out there (note we have
already gone past the routing table sizes that people were claiming would be
too big to handle, back in the early days).

I certainly would have preferred a more radical next generation IP than
the one we're getting, but I certainly wouldn't want to still be waiting
for anything to have been done at all.

kre

---

From: "Perry E. Metzger" <[email-masked]>
Date: 12 Nov 2001 15:10:12 -0500

> ??? I said nothing about Mobile IPv6 being a solution to the routing problem.

We were talking about the routing problem. If you just brought it up
to be clever (which I assume you did), you didn't further the
discussion.

Lets deal with the situation on the ground. It is costing
organizations vast amounts of money to deal with NAT. It is causing
serious disruptions in our infrastructure and protocols to deal with
NAT. v6, which is (believe it or not) being deployed lets us get past
the address space exhaustion problem. Whether you like the fact that
it doesn't solve everything or not, it is the only available solution
to a very real problem.

Or to put it another way, the folks deploying v6 are doing something
about the problem -- they've got running code and running networks and
running applications -- and you're bitching in the hotel bar at the
IETF. v6 is even in Windows XP. Deployment wins.

So we are left with the routing problem.

My own feeling is that we're just going to have to accept the notion
of our routers having millions of routes in them and go for algorithms
that scale better than distance vector or path vector so we don't
drive them into the ground while doing the computations. We can't get
rid of the desire to have huge numbers of routes so we have to find
ways to avoid nuking ourselves when we have huge numbers of routes. It
would be nice if we could come up with the perfect new architecture
but no one has yet designed it.

--
Perry E. Metzger		[email-masked]
--
NetBSD Development, Support & CDs. http://www.wasabisystems.com/

---

From: Keith Moore <[email-masked]>
Date: Mon, 12 Nov 2001 17:21:06 -0500

> out example of separating location and identity" is ludicrous on its face,

usually when people talk of the problem as one of separating location and
identity, they haven't clearly defined the problem, or they're only
looking at one part of the problem (whereas someone else using the
same problem description may be looking at a different part of the problem)

The IP address is commonly used as, or as part of, at least the following:

- host identity 
- host-to-network interface identity
- location of the host's network interface relative to the network topology
- application rendezvous point (socket or process identity)
- service identity (where the service can consist of multiple hosts)
- TCP connection state identity
- remote host identity (for rtt estimation)

this is just off the top of my head, and it doesn't even consider mobile IP
or most kinds of NATs.

the problems caused by the overloading are mostly that it is very 
difficult for any of these identities to change relative to the others -
the mapping function between them is assumed to be the identity, and 
this assumption is wired into countless pieces of code.

but if you build a "solution" that lets you separate one of these functions
from another, it gives you only one additional degree of freedom - it 
doesn't "solve" the problems resulting from the other kinds of overloading.
for instance you can separate "host identity" from location for the purpose
of authentication, but it still doesn't let you change the host's address
without breaking the utility of that address as a rendezvous point in a 
distributed system. 

and yet you clearly don't want separate values for each of these - 
this would add a tremendous amount of complexity and overhead.  

nor does it appear to be a good idea to assume that these values will
always be separate - for instance, there's an argument that stationary
hosts are common enough that you want to optimize for that case - 
you want to support mobile hosts but you don't want to pay for the 
extra layer of indirection/lookup when sending packets to stationary hosts.

Keith