nanog mailing list archives

Re: Managing allocatiions out of a CIDR block


From: Phil Howard <phil () charon milepost com>
Date: Tue, 10 Feb 1998 16:22:14 -0600 (CST)

Mark Prior writes...

I am trying to rewrite the system that we use to allocate blocks from
our provider blocks to customers. Previously the smallest block we
allocated was a class C and so this process was pretty easy but now I
want to be able to optimally use our allocations and allocate blocks
down to a /30. Does anyone have any ideas, or code, that will manage
multiple CIDR blocks and keep track of the currently unused parts of
the block and given a requirement find an appropriate allocation
(while not fragmenting it like crazy). It would be also useful if it
could collect together POP specific blocks so that, for example, two
parts of the same class C were at the same POP.

Ideas, suggestions?

I started writing one of these.  I've been busy so it has been wallowing
in some subdirectory.  But it will be web page based using CGI.  Any browser
can access it (with authorization and valid IP) so people who work from
Win95 or Mac or UNIX workstations can access it.  It is being written in C
and is to be tested under Apache on Linux, but will probably work fairly
well on any UNIX with a CGI conforming HTTP server.  It will need its own
userid to run as (root not advised, but the personal userid of the network
administrator would work).

It will be completely CIDR.  So if you add or delete or assign a /23 you
will be working with an aligned pair of class-C networks as one.

It will keep its own data files so no special DB server is needed (there
isn't that much to keep).  It will generate SWIP templates and allocation
reports usable to request more space.

Any other features you think should be in it before I get too far along
in the basic design?

At this time I don't know when it will be complete.  Looks like 2-4 months.
Could be more.  Less if my own need for it increases to where I can justify
more time in it.

I just completed the CGI for my "Grass Roots Servers" project and you can
see a sample of my work (with source) at this location:

http://www.best.com/~philh/grs/    (click on "The TLD selector")

-- 
Phil Howard | die7spam () anyplace net crash328 () nowhere8 com ads2suck () dumb7ads com
  phil      | blow9me3 () nowhere3 com stop2it9 () no6where com die9spam () spammer7 org
    at      | end1ads5 () spammer9 edu blow2me8 () lame5ads edu suck4it8 () anyplace org
  milepost  | stop3it1 () nowhere7 com w6x9y8z7 () noplace9 org w7x5y0z9 () noplace8 com
    dot     | ads6suck () anywhere org stop8ads () anywhere org stop0it5 () lame0ads edu
  com       | stop2ads () no9place net eat1this () noplace0 com die5spam () spammer1 org


Current thread: