Issue


When trying to PXE boot or cloud boot a compute resource, no DHCP requests are seen on the DHCP servers. The compute resource times out waiting for an IP.

Troubleshooting


Plug a laptop or a server with an installed OS on the port managed by the DHCP/PXE-boot environment. You should see an IP given to that server as it requests the IP from the OS (no timeout).

  • /var/log/messages shows that there has been a DHCP request:
Dec 12 09:50:50 mgmt01 dhcpd: DHCPREQUEST for 1xxx  from 00:21:70:e3:df:ae (DBTOA000) via eth0
Dec 12 09:50:50 mgmt01 dhcpd: DHCPACK on 1xxx  to 00:21:70:e3:df:ae (DBTOA000) via eth0
CODE
  • A lease file includes an entry for the IP :
lease 173.xxxx { 
 starts 4 2013/12/12 14:50:50; 
 ends 4 2013/12/12 15:00:50; 
 binding state active; 
 next binding state free; 
 hardware ethernet 00:21:70:e3:df:ae; 
 uid "\001\000!p\343\337\256"; 
 client-hostname "DBTOA000";
CODE

Resolution


  1. Disable portfast on specific ports:

    test(config)# interface range GigabitEthernet1/0/1 - 4
    test(config-if-range)# spanning-tree portfast
    CODE
  2. Once the portfast feature is disabled, use the spanning-tree bpduguard enable command on specific ports to prevent the creation of loops on your network. It will set the ports to listen for possible loop packets:

    test(config)# interface range GigabitEthernet1/0/1 - 4
    test(config-if-range)# spanning-tree portfast bpduguard
    CODE

Please note that the commands may differ. Find alternative commands by contacting your switch/hardware vendor. The main idea of the solution is to partially disable an STP (Spanning Tree Protocol) on the ports of your management network.

Cause


An STP makes the server wait for 45 seconds before forwarding traffic to the port.

Listening Delay = 30

Learning Delay = 15

Total delay amounts to 45 seconds. The PXE-boot times out in 10 seconds.