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.
- Cumulus Linux, all versions
- Cumulus RMP, all versions
- Cumulus VX, all versions
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.
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
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.