Use "tree".
Actually, given IANA's current requirements, and most ISP's desires to abide by both the letter and intent of these guidelines, I'd have to day, "don't". The reason is, tree is a program designed to allocate 'growable' blocks, which translates into deliberately anti-optimal allocation. (Apologies to the authors for any perceived negativity - tree does what it was intended to do, wonderfully - it's just the opposite of what IANA says to do.) This maximizes the number of holes, while minimizing the hole size. At a very early point in allocation, you stop being able to allocate blocks, when your density is basically minimum. To keep IANA happy, and to cause maximal-density usage of CIDR blocks, what should be allocated is un-growable blocks, just big enough for customer needs. This ensures that once the CIDR block is allocated-out, density is sufficient to justify trivially another CIDR block. This is basically a space-packing problem, which while non-trivial, yields solutions which are quite simple to code. The general process is as follows. To do this, you want to avoid breaking up any 'holes', so that you will most likely be able to accommodate the needs of any customer, big or small. If you have an unused power-of-two chunck which exactly fits your customer's needs, give it to them. If not, break up the smallest "hole" bigger that they need. This minimizes the number of "holes", maximizes "hole" size, and maximizes probability that all customers needs will be met, and that all holes will be used before you need to get another block to meet new needs. At a previous employer, I developed a perl script to do just this. I'll see whether it's possible to get them to release this code to the public domain, since they aren't using it (my previous employer was acquired (read: absorbed) by PSInet, and all engineering and associated development is now done by PSI, with any prior work non-PSI code basically abandoned (or so I am lead to believe).
Brandon Ross wrote:
We are in need of a software package to manage our IP space. We've looked at several products on the market but haven't found anything that really suits an ISP's needs very well. Does anyone know of anything on the market that works well? It should understand CIDR and be hierarchical.
I guess the question would be, what is meant by hierarchical... do you mean assigning sub-CIDR blocks to customers, and then managing customers' space as well as your own? CIDR and VLSM goes without saying... -- Brian Dickson, Email: briand@teleglobe.net Teleglobe USA, Inc., Tel : +1 703 821 4818 Suite 400, 8251 Greensboro Drive, Fax : +1 703 821 4885 McLean, Virginia, USA, 22102 http://www.teleglobe.com