[openstack-dev] [TripleO] dhclient spawned by dhcp-all-interfaces doesn't exit when os-net-config runs

Dan Sneddon dsneddon at redhat.com
Wed Nov 9 21:28:55 UTC 2016

I just opened a bug [1] for behavior which has recently been observed
when deploying nodes with TripleO. The problem is that the dhclient
processes that are being started by the dhcp-all-interfaces element in
disk-image-builder are not stopping after os-net-config runs.

Step 1) Image deploys with udev rule to create
dhcp-interface@<iface>.service, which configures each interface via DHCP.

Step 2) The deployment scripts run, including os-net-config, which
configures and restarts the interfaces. The udev rule is removed.

At this point, the dhclient which was created by the udev rule is no
longer needed, except it is still running and configuring IP and routes
on the interface, possibly in conflict with the desired configuration.
For instance, the same IP appearing on a bridge and on an interface, or
a rogue default route and IP that hijack the default route.

I believe this behavior is new in RHEL 7.3, but I don't know if any
versions of CentOS are affected yet (testing is in progress).

Running 'systemctl restart network' after os-net-config runs will kill
the dhclient processes, so inserting that into the scripts after
os-net-config is run is one possible workaround, although the brief
interruption in networking might cause unknown issues in
high-availability environments.

Does anyone have a suggestion for a kinder, gentler, less hacky
approach than either restarting the network service or running kill on
the dhclient processes? Also, does anyone have any idea why running
"ifdown <iface>" followed by "ifup <iface>" doesn't stop the dhclient
process started by the udev rule? Or why this behavior appears to be
new to RHEL 7.3?

[1] - https://bugs.launchpad.net/tripleo/+bug/1640598

Dan Sneddon         |  Senior Principal OpenStack Engineer
dsneddon at redhat.com |  redhat.com/openstack
dsneddon:irc        |  @dxs:twitter

More information about the OpenStack-dev mailing list