3.5. Configuring IP Networking with ifcfg Files
As a system administrator, you can configure a network interface manually, editing the
ifcfg
files.
Interface configuration (ifcfg) files control the software interfaces for individual network devices. As the system boots, it uses these files to determine what interfaces to bring up and how to configure them. These files are usually named
ifcfg-name
, where the suffix name refers to the name of the device that the configuration file controls. By convention, the ifcfg
file's suffix is the same as the string given by the DEVICE
directive in the configuration file itself.
Configuring an Interface with Static Network Settings Using ifcfg Files
For example, to configure an interface with static network settings using
ifcfg
files, for an interface with the name enp1s0
, create a file with the name ifcfg-enp1s0
in the /etc/sysconfig/network-scripts/
directory, that contains:
- For
IPv4
configurationCopy to Clipboard Copied! Toggle word wrap Toggle overflow - For
IPv6
configurationYou do not need to specify the network or broadcast address as this is calculated automatically by ipcalc.Copy to Clipboard Copied! Toggle word wrap Toggle overflow For moreIPv6
ifcfg configuration options, see nm-settings-ifcfg-rh(5) man page.
Important
In Red Hat Enterprise Linux 7, the naming convention for network interfaces has been changed, as explained in Chapter 11, Consistent Network Device Naming. Specifying the hardware or MAC address using
HWADDR
directive can influence the device naming procedure.
Configuring an Interface with Dynamic Network Settings Using ifcfg Files
To configure an interface named em1 with dynamic network settings using
ifcfg
files:
- Create a file with the name
ifcfg-em1
in the/etc/sysconfig/network-scripts/
directory, that contains:DEVICE=em1 BOOTPROTO=dhcp ONBOOT=yes
DEVICE=em1 BOOTPROTO=dhcp ONBOOT=yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - To configure an interface to send a different host name to the
DHCP
server, add the following line to theifcfg
file:DHCP_HOSTNAME=hostname
DHCP_HOSTNAME=hostname
Copy to Clipboard Copied! Toggle word wrap Toggle overflow To configure an interface to send a different fully qualified domain name (FQDN) to theDHCP
server, add the following line to theifcfg
file:DHCP_FQDN=fully.qualified.domain.name
DHCP_FQDN=fully.qualified.domain.name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
Only one directive, eitherDHCP_HOSTNAME
orDHCP_FQDN
, should be used in a givenifcfg
file. In case bothDHCP_HOSTNAME
andDHCP_FQDN
are specified, only the latter is used. - To configure an interface to use particular
DNS
servers, add the following lines to theifcfg
file:where ip-address is the address of aPEERDNS=no DNS1=ip-address DNS2=ip-address
PEERDNS=no DNS1=ip-address DNS2=ip-address
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DNS
server. This will cause the network service to update/etc/resolv.conf
with the specifiedDNS
servers specified. Only oneDNS
server address is necessary, the other is optional. - To configure static routes in the
ifcfg
file, see Section 4.5, “Configuring Static Routes in ifcfg files”.By default, NetworkManager calls theDHCP
client, dhclient, when a profile has been set to obtain addresses automatically by settingBOOTPROTO
todhcp
in an interface configuration file. IfDHCP
is required, an instance of dhclient is started for every Internet protocol,IPv4
andIPv6
, on an interface. If NetworkManager is not running, or is not managing an interface, then the legacy network service will call instances of dhclient as required. For more details on dynamic IP addresses, see Section 1.2, “Comparing Static to Dynamic IP Addressing”. - To apply the configuration:
- Reload the updated connection files:
nmcli connection reload
# nmcli connection reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Re-activate the connection:
nmcli connection up connection_name
# nmcli connection up connection_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.1. Managing System-wide and Private Connection Profiles with ifcfg Files Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The permissions correspond to the
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
USERS
directive in the ifcfg
files. If the USERS
directive is not present, the network profile will be available to all users. As an example, the following command in an ifcfg
file will make the connection available only to the users listed: USERS="joe bob alice"
USERS="joe bob alice"
Also, you can set the
USERCTL
directive to manage the device:
- If you set yes, non-
root
users are allowed to control this device. - If you set no, non-
root
users are not allowed to control this device.