Chapter 49. Using nmstate-autoconf to automatically configure the network state using LLDP
Network devices can use the Link Layer Discovery Protocol (LLDP) to advertise their identity, capabilities, and neighbors in a LAN. The nmstate-autoconf
utility can use this information to automatically configure local network interfaces.
The nmstate-autoconf
utility is provided as a Technology Preview only. Technology Preview features are not supported with Red Hat production Service Level Agreements (SLAs), might not be functionally complete, and Red Hat does not recommend using them for production. These previews provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
See Technology Preview Features Support Scope on the Red Hat Customer Portal for information about the support scope for Technology Preview features.
49.1. Using nmstate-autoconf to automatically configure network interfaces
The nmstate-autoconf
utility uses LLDP to identify the VLAN settings of interfaces connected to a switch to configure local devices.
This procedure assumes the following scenario and that the switch broadcasts the VLAN settings using LLDP:
-
The
enp1s0
andenp2s0
interfaces of the RHEL server are connected to switch ports that are configured with VLAN ID100
and VLAN nameprod-net
. -
The
enp3s0
interface of the RHEL server is connected to a switch port that is configured with VLAN ID200
and VLAN namemgmt-net
.
The nmstate-autoconf
utility then uses this information to create the following interfaces on the server:
-
bond100
- A bond interface withenp1s0
andenp2s0
as ports. -
prod-net
- A VLAN interface on top ofbond100
with VLAN ID100
. -
mgmt-net
- A VLAN interface on top ofenp3s0
with VLAN ID200
If you connect multiple network interfaces to different switch ports for which LLDP broadcasts the same VLAN ID, nmstate-autoconf
creates a bond with these interfaces and, additionally, configures the common VLAN ID on top of it.
Prerequisites
-
The
nmstate
package is installed. - LLDP is enabled on the network switch.
- The Ethernet interfaces are up.
Procedure
Enable LLDP on the Ethernet interfaces:
Create a YAML file, for example
~/enable-lldp.yml
, with the following content:interfaces: - name: enp1s0 type: ethernet lldp: enabled: true - name: enp2s0 type: ethernet lldp: enabled: true - name: enp3s0 type: ethernet lldp: enabled: true
Apply the settings to the system:
# nmstatectl apply ~/enable-lldp.yml
Configure the network interfaces using LLDP:
Optional, start a dry-run to display and verify the YAML configuration that
nmstate-autoconf
generates:# nmstate-autoconf -d enp1s0,enp2s0,enp3s0 --- interfaces: - name: prod-net type: vlan state: up vlan: base-iface: bond100 id: 100 - name: mgmt-net type: vlan state: up vlan: base-iface: enp3s0 id: 200 - name: bond100 type: bond state: up link-aggregation: mode: balance-rr port: - enp1s0 - enp2s0
Use
nmstate-autoconf
to generate the configuration based on information received from LLDP, and apply the settings to the system:# nmstate-autoconf enp1s0,enp2s0,enp3s0
Next steps
If there is no DHCP server in your network that provides the IP settings to the interfaces, configure them manual. For details, see:
Verification
Display the settings of the individual interfaces:
# nmstatectl show <interface_name>
Additional resources
-
nmstate-autoconf(8)
man page on your system