Why Do I Experience a Long Delay During the "Configuring Networking" Phase while Booting?

Follow

Issue

When booting a system running Cumulus Linux, Cumulus RMP or Cumulus VX, when the system reaches the "Configuring Networking" phase, I experience a very long delay.

{{table_of_contents}}

Environment

  • Cumulus Linux, all versions
  • Cumulus RMP, all versions
  • Cumulus VX, all versions

Background

Because they are all Linux distributions, Cumulus Linux, Cumulus RMP and Cumulus VX leverage the normal Linux initialization scripts, including the standard one for configuring network interfaces. During this phase of the system boot, the script reads the /etc/network/interfaces file and attempts to apply the network configuration that is defined there. One of the supported methods for doing so is to set an interface to attempt to get its IPv4 address via DHCP. By default, the eth0 interface is set to be a DHCP client, as it's often the default in other Linux distributions.

This setting an interface to be a DHCP client can lead to a long delay in processing of this boot phase. When an interface is set to be a DHCP client, the client will wait the full timeout period before continuing on to the next interface. Anything that might cause the DHCP process to fail to complete, such as a link down, the DHCP server being offline or network reachability to the DHCP server being impacted, will result in the script waiting for this full timeout.

Once the DHCP client timeout has been reached, the system will proceed to the next interface on the list. If it too is set to be a DHCP client, a similar delay may also be the result if it too cannot obtain an IPv4 address from the DHCP server.

Resolution

For interfaces that are not going to be active, remove the DHCP client configuration option. This is especially important for the eth0 interface.

An interface is set to be a DHCP client when inet dhcp is specified on the iface configuration line:

auto eth0
iface eth0 inet dhcp

By removing inet dhcp from each configuration stanza, the interface reverts to the default of inet static, which stops the DHCP client from starting on the given interface.

auto eth0
iface eth0

For interfaces that are intended to be DHCP clients, anything that may impact the ability of the system to get an IPv4 address via DHCP should be made resilient so as to not impact the system configuration time.

Have more questions? Submit a request

Comments

Powered by Zendesk