A method and apparatus for providing network addresses for hosts on a
network includes generating and storing network configuration information
in a subnet management process, where a subnet is a set of contiguous
network addresses. The network configuration information indicates
network addresses to be distributed among a plurality of network devices.
Policy information is also generated and stored. The policy information
indicates a policy set of one or more policy processes. Each policy
process selects an available subnet from available network addresses. A
request for a subnet is received from a subnet requesting process. A
particular subnet is determined based on the network configuration
information, the request, and the policy set. A response indicating the
particular subnet is sent to the subnet requesting process. These
techniques allow an administrator to choose a policy for selecting
subnets that better utilizes network resources for a wide range of
network architectures.