Abiquo 5.0

Skip to end of metadata
Go to start of metadata

This documentation is for troubleshooting DHCP with the omapi protocol

Check messages log file on DHCP Server

Check the messages file for evidence that DHCP is functioning
# tail /var/log/messages

May 5 08:53:32 abiquoserver dhcpd: DHCPREQUEST for from 01:50:51:38:b1:ed via eth0.1
May 5 08:53:32 abiquoserver dhcpd: DHCPACK on to 01:50:51:38:b1:ed via eth0.1
May 5 08:53:38 abiquoserver dhcpd: DHCPREQUEST for from 01:16:31:ee:73:14 via eth0.2
May 5 08:53:38 abiquoserver dhcpd: DHCPACK on to 01:16:31:ee:73:14 via eth0.2

DHCPREQUESTs should be followed by DHCPACKs log entries.  If not, try restarting the DHCP service:

Restart the DHCPD service
service dhcpd restart

Checking the DHCP Relay Server

Check the VLAN interfaces

Check if the VLAN interfaces were created on the DHCP Relay Server.

ifconfig | more

The above command should display the VLAN interfaces along with their IP address.  If the interfaces do not show up, you should run the appropriate scripts that are created by the generator scripts. See the table below.

DHCP Relay Server Creation Scripts and Configuration Files

No. of DHCP
Relay Servers

Name of Generator Script

Names of Scripts Generated by Initial Script

Other Config Files

Wiki Link





Manually Configuring One DHCP Relay Server



config-routes-server.sh; and
relay-config-X.sh and relay-run-X.sh
for each relay server X


Manually Configuring Multiple DHCP Relay Servers

Checking the DHCP Server

Check the dhcp configuration file

$ cat /etc/dhcpd.conf
ddns-update-style interim;

option classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;

omapi-port 7911;

subnet netmask {
      default-lease-time 60000;
      max-lease-time 720000;
      option subnet-mask;
      option domain-name-servers;

If the file doesn't exist or is wrong, replace it with the above information.

Check for the static route between DHCP Server and DHCP Relay Server

Check that the file /etc/sysconfig/network-scripts/route-eth0 exists on the DHCP Server.

This file should include the following:

# Add static route to DHCP Relay server
10/8 via

If the file doesn't exist or is wrong, replace it with the above information.

Check the leases file on the DHCP Server

This file contains a MAC/IP list. Check if the VM's MAC address is in this file:

$ more /var/lib/dhcpd/dhcpd.leases
Sample entries from dhcpd.leases
host 015016131b12_host {
  hardware ethernet 01:50:16:13:1b:62;
          supersede routers = c0:a8:00:01;
          supersede subnet-mask = ff:ff:ff:00;
host 01161e7c189f_host {
  hardware ethernet 01:16:1e:7c:18:9f;
          supersede subnet-mask = ff:ff:ff:00;

If there aren't any entries in this file, the problem is likely to be with the DHCP Remote Services configuration. The Abiquo "DHCP Service" entry in the Remote Services configuration of the datacenter should point to the IP address of the DHCP Server, not the DHCP Relay.

Check Classless Static Routes

If you have added classless static routes to your Abiquo network definitions, the leases should also contain lines with the encoded routes.

supersede classless-static-routes = concat (18:01:01:01:C0:A8:00:FA, 18:02:02:02:C0:A8:00:FA);

Check whether the DHCP Server is listening on interfaces

cat /etc/sysconfig/dhcpd
\# Command line options here
DHCPDARGS="eth1 eth1.2 eth1.3 eth1.4 ... eth1.n"
ps -ef|grep dhcp

Both commands should display a listing of the interfaces that DHCP is listening on.  If they don't, please rerun the create-vlans script.

Checking Hypervisors

Check communication between DHCP and the hypervisor

a. Deploy a virtual machine
b. Check the VLAN that the virtual machine is on (from within the Abiquo GUI or the hypervisor client)
c. Connect to the DHCP Server (Monolithic: Abiquo Server; Distributed: Remote Services) and run the following command: tcpdump -i eth1.n where n is the VLAN ID
d. Connect to the VM console and run a DHCP request: dhclient eth0
e. Check if there are any broadcast ( packets in the tcpdump.  If yes, then the problem points to an issue with the physical switch.

This tcpdump command will show any request on the DHCP Server:

 tcpdump -vv -lenx  udp port bootps or udp port bootpc


Check switch configuration

Connect to the switch and check if the hypervisors are connected using the right NIC.  Also check if the service NIC is listed in the output of 'show mac-address-table' command.  Check the VLAN configuration is correct.

For example:

# configure terminal
# vlan 2-200
# exit
# interface range fa0/2-23
# switchport mode trunk
# no shutdown
# exit
# interface fa0/24
# switchport mode access
# switchport access vlan 2
# no shutdown
# exit
# exit
# copy running-config startup-config

Checking Virtual Machines

Check the virtual machine configuration for classless static routes under RFC3442

Windows 7 VM

Windows 7 will accept the option 249 classless static routes without any special configuration.

Check if you have the static routes.

IPv4 Route Table
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric

Check if you have the static routes.

# ip route via dev eth0 dev eth0  proto kernel  scope link  src via dev eth0
default via dev eth0

If the routes are not present, continue to check the configuration as described below.

Check the CentOS VM config files

Check that the following two files exist on the system and are not empty:

  • /etc/dhclient.conf
  • /etc/dhclient-exit-hooks

The contents of these files should be as described in Configuring DHCP#Configure CentOS VM Template to Receive Static Routes by DHCP