diskimage-builder/diskimage_builder/elements/dhcp-all-interfaces
Julia Kreger 5f01bd5d61 Use internal dhcp client for centos 9-stream and beyond
All indication in CI is that Centos Stream9's use of dhclient
appears to point to compatability issues when interacting with
dnsmasq. However, this doesn't appear to be the issue with the
internal dhcp client. As such, lets constraint the RH default
so that it no longer applies to Centos 9-stream.

I've also added a documentation entry for DIB_DHCP_CLIENT which
was previously undocumented.

As an aside, I've already reached out to RH's NetworkManager team
regarding this, but root cause is not entirely understood at this
point.

Change-Id: I235f75b385a8b0348c8fe064038c51409f8722c4
Story: 2010109
Task: 45677
2022-06-28 11:02:03 -07:00
..
install.d Use internal dhcp client for centos 9-stream and beyond 2022-06-28 11:02:03 -07:00
README.rst Use internal dhcp client for centos 9-stream and beyond 2022-06-28 11:02:03 -07:00
element-deps Move elements & lib relative to diskimage_builder package 2016-11-01 17:27:41 -07:00
package-installs.yaml Add IPv6 support in dhcp-all-interfaces 2019-11-13 09:31:01 +01:00
pkg-map Install ndisc6 package in element script 2019-12-03 14:57:33 +01:00

README.rst

dhcp-all-interfaces

Autodetect network interfaces during boot and configure them for DHCP

The rationale for this is that we are likely to require multiple network interfaces for use cases such as baremetal and there is no way to know ahead of time which one is which, so we will simply run a DHCP client on all interfaces with real MAC addresses (except lo) that are visible on the first boot.

On non-Gentoo based distributions the script /usr/local/sbin/dhcp-all-interfaces.sh will be called early in each boot and will scan available network interfaces and ensure they are configured properly before networking services are started.

On Gentoo based distributions we will install the dhcpcd package and ensure the service starts at boot. This service automatically sets up all interfaces found via dhcp and/or dhcpv6 (or SLAAC).

Environment Variables

DIB_DHCP_TIMEOUT
Required

No

Default

30

Description

Amount of time in seconds that the systemd service(or dhclient) will wait to get an address. Should be increased in networks such as Infiniband.

Example

DIB_DHCP_TIMEOUT=300

DIB_DHCP_NETWORK_MANAGER_AUTO
Required

No

Default

false

Description

When NetworkManager is detected, and this is set to true the dhcp-all-interfaces service will not be installed. Only the NetworkManager configuration will be added. NetworkManager is quite capable to do automatic interface configuration. NetworkManager will by default try to auto-configure any interface with no configuration, it will use DHCP for IPv4 and Router Advertisements to decide how to initialize IPv6.

Example

DIB_DHCP_NETWORK_MANAGER_AUTO=true

DIB_DHCP_CLIENT
Required

no

Default

internal

Description

When NetworkManager is in use, this setting conveys which DHCP client is in use for acquiring a DHCP address for the node. In some specific cases, where known that dhclient is the tested or most compatible default, specifically for Centos 7, 8, and 8-Stream, as well as derived distributions. Otherwise, the "internal" dhcp client is the default.

Example

DIB_DHCP_CLIENT