Managing allocatiions out of a CIDR block

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?

Thanks,
Mark.

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).

Isotro has code that allows you to manage IP address space, and
understands CIDR. It uses a commercial database, and connects to both a
DNS server and a DHCP server. They were recently bought by Bay.

If you are looking for an automatic system to allocate blocks, this does
not do that. You have to tell the system who has what block. But it has
all the hooks you need to develop that kind of system.

Eric Carroll eric.carroll@acm.org
Tekton Internet Associates