
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