• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer navigation

The Geek Diary

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • VCS
  • Interview Questions
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
  • DevOps
    • Docker
    • Shell Scripting
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

How to Set a Custom Interface Name with NetworkManager in CentOS/RHEL 7

by admin

We want to set a custom interface name for the interface eth0. The name should be custom one such as “external-2“. How this can be achieved using NetworkManager and without it.

Existing Connection Profile (With NetworkManager)

To set a custom device name with NetworkManager for an existing connection profile please do the following:

1. Ensure the existing connection profile has stored the MAC address of the physical interface it is associated with. In the example below, the connection profile is named “Wired connection 1”:

# nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address:
802-3-ethernet.mac-address:             --

2. If the MAC address is missing, add it. First find the MAC address with the “ip link” command and then use the nmcli command to modify the connection profile:

# ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:73:59:15 brd ff:ff:ff:ff:ff:ff
# nmcli connection modify "Wired connection 1" 802-3-ethernet.mac-address "52:54:00:73:59:15"

3. Now modify the connection profile’s connection.interface-name property to set the desired device name. In this example below, the device is named “external-2“:

# nmcli connection modify "Wired connection 1" connection.interface-name "external-2"

4. Reboot the system:

# shutdown -r now

5. Verify the device has been named as expected:

# ip link
3: external-2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:73:59:15 brd ff:ff:ff:ff:ff:ff

New interface without an existing Connection Profile (With NetworkManager)

To set a custom device name with NetworkManager for an new interface which does not have an existing connection profile please do the following:

1. Note the MAC address of the device using the “ip link” command. In the following example, eth0 is used and the MAC address is seen to be 52:54:00:2f:4b:68:

# ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:2f:4b:68 brd ff:ff:ff:ff:ff:ff

2. Use the nmcli command to create a new connection profile for eth0. Be sure to specify the MAC address. In the following example, the network device with the specified MAC address will be renamed to “internal-1” upon rebooting the system:

# nmcli connection add type ethernet mac "52:54:00:73:59:15" ifname "internal-1"

3. Reboot the system

# shutdown -r now

4. Verify the device name is now “internal-1”

# ip link
2: internal-1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:2f:4b:68 brd ff:ff:ff:ff:ff:ff

Custom Device Name without NetworkManager

1. In the interface’s current interface configuration file (/etc/sysconfig/network-scripts/ifcfg-* file), ensure both the DEVICE and HWADDR parameters are properly set. DEVICE is the name to be given to the interface with the MAC address equal to HWADDR.

2. Alternatively, setting a custom interface name with a udev rule is still possible. Create a udev rules file /usr/lib/udev/rules.d/60-net.rules in the /etc/udev/rules.d/ directory. The rule can match against the device MAC address or PCI bus address:

# vi /usr/lib/udev/rules.d/60-net.rules
# MAC address match. Will name the device with the specified MAC address the value given in the NAME property:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:b1:05:63:31", ATTR{type}=="1", KERNEL=="*", NAME="myeth2"

# PCI bus address match. Bus address can be seen in the output of the lspci command.
SUBSYSTEM=="net", ACTION=="add", KERNEL=="eth*", SUBSYSTEMS=="pci", KERNELS=="0000:00:03.0", NAME="private-3"

The /usr/lib/udev/rules.d/60-net.rules udev rule file will check each ifcfg file for the presence of the DEVICE and HWADDR parameters. If the interface in question has a MAC address which matches the value of the HWADDR property then it will be assigned the name given by the value of the DEVICE property.

How to change the NIC device name in CentOS / RHEL 6
Configure Persistent NIC Names of Network Adaptors in CentOS/RHEL using udev Rules

Filed Under: CentOS/RHEL 7, Linux

Some more articles you might also be interested in …

  1. How to restore files under user’s home directory to default in Linux
  2. CentOS / RHEL : How to disable root login or root access on a system
  3. How to Disable the ‘lvm2-lvmetad.socket/service’ on CentOS/RHEL 7
  4. ping not working on a Newly Built CentOS/RHEL server
  5. “Could not resolve proxy: https; Unknown error” – error with ‘yum update’
  6. How to configure xhost to be persistent across reboots in Linux
  7. How to Create Yum Repository For System Packages Installation in CentOS/RHEL
  8. “yum history” command examples to display, rollback, redo, undo yum transactions
  9. elinks Command Examples in Linux
  10. CentOS / RHEL 7 : Lock User Account After N Number of Incorrect Login Attempts

You May Also Like

Primary Sidebar

Recent Posts

  • JavaFX ComboBox: Set a value to the combo box
  • Nginx load balancing
  • nginx 504 gateway time-out
  • Images preview with ngx_http_image_filter_module

© 2022 · The Geek Diary

  • Archives
  • Contact Us
  • Copyright