DHCP Does Not Offer Addresses in Numerical Sequence

ID: Q177204


The information in this article applies to:
  • Microsoft Windows NT Server versions 3.5, 3.51, 4.0


SUMMARY

Microsoft Windows NT Dynamic Host Configuration Protocol (DHCP) server offers IP lease information to DHCP clients on the network. Your DHCP Server may appear to be randomly selecting addresses to offer to DHCP clients. This article discusses the method that DHCP server uses to assign addresses.


MORE INFORMATION

DHCP server maintains two lists of address blocks as follows:

  • partially filled in-use


  • totally used


Each of the above type of block consists of 32 addresses.

For additional information, please see the following article in the Microsoft Knowledge Base:

ARTICLE-ID: Q151696
TITLE : Extending DHCP Start Address

Partially filled in-use, or in-use blocks, provide addresses for the next DHCP request from DHCP clients. If this block runs out of addresses (no more addresses available to lease), a new block is created and added to the front of the in-use list with one address taken off for the currently requesting client.

Totally used, or used blocks, are blocks that have no IP addresses available to be leased.

NOTE: Exclusion ranges and reservations will always be in either the in- use blocks or the used blocks.

When an in-use block gets completely leased, it is added to the end of the used list. If all the addresses of a used block get released so that the block is totally free, the block is deleted from the used list. A block that is not present in either of the lists is assumed to be totally free.

For example, a scope of 200.10.10.0, which has a range from 200.10.10.1 to 200.10.10.254 is used in the following manner:

  1. The first block would have the following addresses:

    200.10.10.1 - 200.10.10.32


  2. When the first address is requested, this block is considered an in- use block. When the block is completely leased out, it is considered a used block.


  3. When the next address is requested, a second block, 200.10.10.33 - 200.10.10.64, is created. 200.10.10.33 is handed out and the block is added to the front of the in-use list.


  4. When this second block gets completely leased, it is moved to the end of the used list (after the first used block).


  5. Upon another request, the 200.10.10.65 - 200.10.10.96 block is created, handing out 200.10.10.65 and adding the new block to the front of the in-use list.

    At this point, the in-use and used lists appear similar to the following:
    
       in-use                                       used (completely leased)
       ------                                       ------------------------
       200.10.10.65 - 200.10.10.96 (.65 leased)     200.10.10.1  - 200.10.10.32
                                                    200.10.10.33 - 200.10.10.64 


  6. If 200.10.10.63 is released, the .33 - .64 block is moved back to the in-use list and the lists look similar to the following:
    
       in-use                                       used (completely leased)
       ------                                       ------------------------
       200.10.10.65 - 200.10.10.96 (.65 leased)     200.10.10.1 - 200.10.10.32
       200.10.10.33 - 200.10.10.64 (.63 available) 


  7. If all the addresses from 200.10.10.33 - 200.10.10.64 are released except .64 and all the addresses from 200.10.10.1 - 200.10.10.32 are released except .32, the lists look similar to the following:
    
       in-use                                       used (completely leased)
       ------                                       ------------------------
       200.10.10.65 - 200.10.10.96 (.65 leased)
       200.10.10.33 - 200.10.10.64 (.64 leased)
       200.10.10.1  - 200.10.10.32 (.32 leased) 

    Now the following ranges or addresses are free:
    
       200.10.10.1  - 200.10.10.31
       200.10.10.33 - 200.10.10.63
       200.10.10.66 - 200.10.10.254 

    Looking at the in-use blocks above, you can see that the next address that will be offered from this DHCP server will be 200.10.10.66.


Keywords : kbnetwork ntnetserv nttcp kbinfo NTSrv
Version : WinNT:3.5,3.51,4.0
Platform : winnt
Issue type : kbinfo


Last Reviewed: January 22, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.