ggRock Machines consume twice the IP addresses. Double provisioning of IP addresses for ggRock

Problem

Each system consumes two IP addresses during boot time, therefore it is possible to exhaust IP lease space if the address space is too small.

Solution 1

Based on MAC address, configure DHCP reservations for each client PC.

Example is from mustbegeek.com Support Article Configure DHCP Reservation in Windows Server 2012 R2

To set up reservation, open DHCP console from Server Manager.

Enter the reservation name, the IP address you want to assign, and client’s MAC address. In this example we want to give IP address 192.168.0.240 for client machine with MAC address of 3c-97-0e-1c-8a-55. Notice that MAC address is written without any special character. Click Add button then close the new reservation window

Configure DHCP Reservation in Windows Server 2012 R2

Enter the reservation name, the IP address you want to assign, and client’s MAC address. In this example we want to give IP address 192.168.0.240 for client machine with MAC address of 3c-97-0e-1c-8a-55. Notice that MAC address is written without any special character. Click Add button then close the new reservation window

To see list of reservations that we have created, go to Reservation folder under that same scope.

This way when this specific client performing DHCP request, the server will give the configured IP address.

Solution 2

Increase DHCP pool size to at least twice the number of available clients.

Example from Netgear Support How do I specify the pool of IP addresses assigned by my Nighthawk router?"

To specify the pool of IP addresses that the router assigns:

1. Launch an Internet browser from a computer or wireless device that is connected to the network.

2. Type http://www.routerlogin.net or http://www.routerlogin.com.

A login screen displays.

3. Enter the router user name and password.

The BASIC Home screen displays.

4. Select ADVANCED > Setup > LAN Setup.

5. Make sure that the Use Router as DHCP Server check box is selected.

6. Specify the range of IP addresses that the router assigns:

a. In the Starting IP Address field, type the lowest number in the range.

This IP address must be in the same subnet as the router.

b. In the Ending IP Address field, type the number at the end of the range of IP addresses, which should be at least twice the number of computer systems.

This IP address must be in the same subnet as the router.

7. Click the Apply button.

Your settings are saved.

8. Attempt booting systems again.

Solution 3

Stagger boot times of systems

Use the Wake-on-LAN feature of ggRock to power on systems (or reboot systems) in batches rather than all at once.

  1. Place a check in the checkbox next to each system you wish to power on.

2. Click the "Turn On" button at the top of the screen.

3. Repeat until all desired systems are powered on.

Solution 4

Decrease the DHCP lease time.

  1. If available, access the DHCP server settings and adjust the lease value for DHCP leases to a value equal to the total boot time of a client. (e.g. if your boot time is 60 seconds to make it to Windows, make your DHCP lease time 60 seconds.

  2. Attempt booting systems again.

Solution 5

Utilize port-based address allocation

This assigns a unique IP address to each port on your network switch

Example from Cisco DHCP Server Port-based Address Allocation Manual

  1. Access the command line interface of the switch/router acting as a DHCP server.

  2. Type "enable", then press the Enter key, typing password if prompted.

  3. Type "configure terminal", then press the Enter key.

  4. Type "ip dhcp use subscriber-id client-id", then press the Enter key.

  5. Attempt booting systems again.

Solution 6

Configure DHCP server to only hand out one address per client.

NOTE:

The vendor-class-identifier in step 6 will need to be adjusted based on your unique configuration, it may be one of the following:

  • PXEClient:Arch:00000:UNDI:002001

  • PXEClient

  • PXE

  • null

Example from Microfocus OES KB Article 7002606

  1. Select the DHCP (OES Linux) tab from the top of the screen

  2. Select the Service object you wish to modify

  3. With the Service object selected, press the create object button (cube) at the top of the screen.

  4. Select Class from the menu and press OK

  5. Select the newly created class to modify it.

  6. Under the Conditional Expression section add the following string:

    match if substring(option vendor-class-identifier,0,3) = "PXE";
    default-lease-time 1200;
    max-lease-time 1200;

  7. Restart the dhcp service and test. Please see the Additional Information below should the above-listed vendor-class-identifier not work for you.

    NOTE: It is possible to add this class directly to the dhcpd.conf too; however, the Java Management Console will not be able to see or modify it if done this way.

  8. Attempt booting systems again.

Solution 7

Configure a DHCP policy in Windows Server DHCP Management snap-in

Example from DHCP Server configuration on Windows Server 2012

Right-click on your IPv4 address pool, then click the "Define Vendor Classes..." context menu item.

Click the "Add…" button to add new Vendor Class.

In the "New Class" dialog, enter a display name such as "PXE Client x86"

In the "New Class" dialog, enter a PXE Identifier such as "PXEClient:Arch:00000" (or other depending on your infrastructure)

In the "New Class" dialog, click the "OK" button.

In the "DHCP Vendor Classes" dialog, click the "Close" button.

Expand the "Scope" item in the "DHCP" snap-in.

Right-click the Policies sub-item

Click the "New Policy..." context menu item.

In the "DHCP Policy Configuration Wizard" window, enter a policy name.

Click the "Next >" button.

In the "DHCP Policy Configuration Wizard", click the "Add..." button.

In the Add/Edit Condition dialog:

  1. From the "Criteria:" drop-down, select "Vendor Class"

  2. From the "Operator:" drop-down, select "Equals"

  3. From the "Value:" drop-down, select the DHCP vendor class you added previously.

  4. Place a check next to "Append wildcard(*)"

In the Add/Edit Condition dialog, click the "Add" button.

In the Add/Edit Condition dialog, click the "Ok" button.

In the "DHCP Policy Configuration Wizard" window, click the "Next >" button.

Note:

Click the "Next >" button and/or otherwise do not configure IP reservations or DHCP options.

In the "DHCP Policy Configuration Wizard" dialog, Click the "Finish" button.

The newly-added policy is now displayed in the DHCP management snap-in:

Additional Information

The primary issue at hand is that when a client PXE boots, oftentimes it does not supply a client identifier. When the operating system (Windows) boots, it does supply a client identifier. This causes two IP addresses to be consumed for each client. If the DHCP pool is small, or if systems reboot multiple times, this may cause exhaustion of IP leases for the address space, resulting failure to boot systems. There are numerous solutions to this problem, but generally they focus either on identifying PXE-boot clients and treating them separately, or by expanding the number of available addresses.