A method for managing Internet Protocol (IP) addresses on a data communications
network includes allocating multiple local IP address pools, requesting IP address
usage data from one or more of the network edge devices, receiving the requested
IP address usage data, determining whether the local IP address pools should be
reallocated based upon the requested IP address usage data, reallocating one or
more of the local IP address pools based upon the determination and updating one
or more of the local IP address pool databases and a global IP pool database based
upon the reallocating. Each of the local IP address pools is associated with a
different network edge device that is capable of accepting connection requests
requiring an IP address. The global IP address pool database includes the information
maintained in each local IP address pool. A network edge device capable of managing
IP addresses on a data communications network includes an allocator capable of
allocating multiple local IP address pools, a receiver capable of receiving a communication,
an allocator capable of allocating an available IP address from the local IP address
pool if the communication includes a connection request, a determiner capable of
determining whether the local IP address pool should be adjusted, a notifier capable
of sending an alarm message to an IP pool manager when the IP address pool should
be adjusted and a memory capable of storing an IP address allocation when the communication
includes an IP address allocation.