classful addressing considered harmful [was Re: Closure?]

Bob Hinden hinden at iprg.nokia.com
Thu Feb 8 17:06:36 EST 2001


Randy,

Please excuse the roughness of my reply.  I am not that articulate even 
when I am not jet lagged :-)

I think there is still much confusion.

The major problem with IPv4's class-full addressing was that the boundaries 
in the address were built into implementations and into routing 
protocols.  The network part of the address was derived by looking at the 
bits in the address.  This made it impossible to add new prefix lengths 
without changing all of the implementations and routing protocols.  We even 
had routing protocols that only carried the bits of the network part (i.e., 
not the full address).  Even BGP started out without a prefix length.  It 
was added when we invented CIDR.

IPv4 today is still class-full in how multicast addresses are distinguished 
from unicast (i.e., uses class D), and the non-global prefixes (net 10, 
etc.).  These are built into implementations.  All other unicast addresses 
are not predefined in implementations and the network part is distinguished 
from the host part by a prefix length.

IPv6 follows the same model as IPv4 with CIDR.  With just about the same 
exceptions as IPv4, IPv6 addresses are class-less.  The exceptions are 
defined in section 2.8 of the addressing architecture document.  These are:

       o Multicast Prefix (FF)
       o Local-Use Prefixes (Link-Local and Site-Local)
       o Pre-Defined Multicast Addresses
       o IPv4-Compatible Prefixes

IPv6 implementation do not have any other built in knowledge about the 
boundaries in the addresses.  Like IPv4, IPv6 uses prefixes.  It uses 
CIDR.  IPv6 routing protocols carry prefixes.  Just like IPv4 with CIDR.

You argued that the /64 boundary is a class-full boundary.  This is a 
middle ground.  It is from an address creation point of view.  As Thomas 
pointed out, this was a tradeoff to make auto-configuration 
simple.  However, it is not from a routing and forwarding point of view.  I 
think the distinction is important.

All of the other "boundaries" are for allocation purposes.  They do not 
affect forwarding and routing.  They can be changed with having to change 
any implementations.  As you pointed out the /35 prefix was not defined in 
a standard.

The main point I am trying to make is that IPv6 is no more class-full than 
IPv4 is today.

Bob

p.s. The history behind of the TLA/NLA structure is that it is generally 
based on work that came out of Mike O'Dell's 8+8/GSE proposal.  That had a 
similar top level structure.  The specifics of the current TLA/NLA fields 
were worked out with Mike and I sitting at one of tables in the hotel lobby 
at Memphis, Tennessee IETF meeting.  I think this was before the ducks came 
down from the roof :-)






More information about the V6wg mailing list