One document matched: draft-ietf-ipngwg-ipaddressassign-00.txt


INTERNET-DRAFT                                         Marc Blanchet
17 october 1998                                        Viagenie inc.
Expires 16 april 1999


     A method for flexible IPv6 address assignments
          <draft-ietf-ipngwg-ipaddressassign-00.txt>

Status of this Memo

     This document is an Internet-Draft.  Internet-Drafts are working
     documents of the Internet Engineering Task Force (IETF), its
     areas, and its working groups.  Note that other groups may also
     distribute working documents as Internet-Drafts.

     Internet-Drafts are draft documents valid for a maximum of six
     months and may be updated, replaced, or obsoleted by other
     documents at any time.  It is inappropriate to use Internet-
     Drafts as reference material or to cite them other than as
     "work in progress."

     To view the entire list of current Internet-Drafts, please check
     the "1id-abstracts.txt" listing contained in the Internet-Drafts
     Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net
     (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au
     (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu

Abstract

This draft presents a method for assigning IP address prefixes that
enables the IP assigning autority - the organisation that assigns IP
address prefixes to other organisations, like a registry to an
internet service provider or an internet service provider to a client
organisation connected to its network -to postpone the final decision
of prefix length by keeping space between assigned bits of the
different parts of the IP address.  This enables the assigning
autority to change the different part lengths of the prefix (TLA (top
level aggregator), subTLA, NLA(next-level aggregator) SLA (site-level
aggregator), ...) even after allocated spaces. This scheme is
applicable to both IPv4 and IPv6 but is envisionned mainly for IPv6
where the address space is larger and more flexible.  It is a
generalization of RFC1219 and can be used for IPv6 assignments based
on RFC2373 and RFC2374.

1. Context

IPv6 addresses have a more flexible structure for address assignments where 
no pre-defined prefixes (called subnetmasks in IPv4) are used (except a few 
special cases).  It enables registries, internet service providers,  
network designers and others to assign addresses ranges to organisations and 
networks based on different criterias, like size of networks, estimated 
growth rate, etc.  Often, the initial assignation 
doesn't scale well because a small network becomes larger than expected, 
needing more addresses. But then, the assignment autority cannot allocate 
contiguous addresses because they were already assigned to another network. 

RFC1219 [IPv4Assign] describes an allocation scheme for IPv4 where address
space is kept unallocated between the leftmost bits of the subnet part 
and the rightmost bits of the host part of the address. This enables the 
network designer to change the subnetmask without renumbering, for the 
central bits that were not allocated. 

This work generalizes the previous scheme by extending the algorithm
so it can be applied on any part of an IP address, which are assigned
by any assignment autority level (TLA, registries, ISPs,
organisations, ...).  It can be used for both IPv4 and IPv6, with IPv6
assignments conforming to RFC2373 [IPv6AddrArch] and RFC2374 [IPv6Aggr].


2. Scheme

We define parts of the IP address as p1, p2 , p3, ... pN in order, so that 
an IP address is composed of these parts contiguously.  Boundaries between 
each part are based on the prefix assigned by the next level assignment
autority. Part p1 is the leftmost part probably assigned to a TLA,  
Part p2 can be assigned by the TLA to a large internet service provider 
or to a national registry.  Part p3 can be allocated to a large customer 
or a smaller provider, etc.  Each part can be of different length.  
We define l(pX) the length of part X.

+------+------+------+------+------+------+
| p1   | p2   | p3   | p4   | ...  | pN   |
+------+------+------+------+------+------+
<------- ipv6 or ipv4 address ------------>

The algorithm for allocating addresses is as follows :
a) for the leftmost part (p1), assign addresses using the leftmost 
bits first 
b) for the rightmost part (pN), assign addresses using the 
rightmost bits first
c) for all other parts (center parts), predefine an arbitrary 
boundary (prefix) and then assign addresses using the center 
bits first of the part being assigned.


This algorithm grow assigned bits in such way  that it keeps unassigned 
bits near the boundary of the parts.  This means that the prefix between 
any two parts can be changed forward or backward, later on, up to the 
assigned bits.

Any assignment must conform to RFC2373 and RFC2374, which have precedence
over this method in case of conflicts.

3. Assignment

3.1 leftmost 

p1 will be assigned in order as follows :

Order   Assignment
1 10000000
2 01000000
3 11000000
4 00100000
5 10100000
6 01100000
7 11100000
8 00010000
9 ... 

This is actually a mirror of binary counting.


3.2 rightmost

pN (the last part) will be assigned in order as follows :

Order   Assignment
1 00000001
2 00000010
3 00000011
4 00000100
5 00000101
6 00000110
7 00000111
8 00001000
9 ... 

3.3 centermost

pX (where 1 < X < N) will be assigned in order as follows : 
(for example, with a 8 bit predefined length l(pX)=8))


Order   Assignment
1 00001000
2 00010000
3 00011000
4 00000100
5 00001100
6 00010100
7 00011100
8 00100000
9 ... 

4. Example

A TLA has been assigned the 3ffe:0b00/24 prefix and wants to assign prefixes
to its connected networks.  It anticipates in the forseable future a
maximum of 
256 NLAs consuming 8 bits. One of these NLA, named NLA2, anticipates a 
maximum of 1024 subNLA assignments under it, consuming 10 other bits. 

The assignment will be as follows, not showing the first 24 leftmost bits 
(3ffe:0b00/24: 00111111 11111110 00001011):

TLA assigning to NLAs using lefmost bits:
10000000  : assigned to NLA1
01000000  : assigned to NLA2
11000000  : assigned to NLA3
00100000  : assigned to NLA4
...

NLA2 assigning to its subNLAs using centermost bits:
0000010000 : assigned to subNLA1
0000100000 : assigned to subNLA2
0000110000 : assigned to subNLA3
...

subNLAs can use centermost bits for maximum flexibility and then the last
aggregators (should be a network in a site) will be assigned using rightmost
bits.

Putting all bits together for subNLA3:
TLA                       |NLA2    |subNLA3
00111111 11111110 00001011 01000000 00001100 00       
                              <------->    <------>
                                  growing bits

By using this method, the TLA will be able to expand
the number of NLAs and the NLAs will be able to modify their first 
assumptions about the size of their subNLAs, until "reserved" bits are 
assigned.


5. Implementation

While describing this method is easier displaying bits, it is not useful 
to do the assignment using bits.  Programs implementing this method will 
be useful.

6. Acknowledgements

Thanks to Steve Deering, Bob Hinden, Erik Nordmark and Florent Parent 
for their very useful comments on this work.

7. Security Considerations

Address assignment doesn't seem to have any specific security consideration.


8. References

[IPv4Assign] On the assignment of subnet numbers. P.F. Tsuchiya.
April 1991. RFC1219.

[IPv6AddrArch] IP Version 6 Addressing Architecture, R. Hinden, S. Deering,
July 1998, RFC2373.

[IPv6Aggr] An IPv6 Aggregatable Global Unicast Address Format, R. Hinden, 
M. O'Dell, S. Deering. July 1998. RFC2374.

9. Author's address

Marc Blanchet
Viagenie inc.
3107 des hotels
Ste-Foy, Quebec, Canada
G1W 4W5

Email : Marc.Blanchet@viagenie.qc.ca
Tel. : 418-656-9254
Fax :  418-656-0183




PAFTECH AB 2003-20262026-04-23 06:25:02