Overview
RHEL 7 has a new feature called “consistent network device naming“. The idea is to regardless of NIC hardware have consistent interface names and not names which can be changed based on the underlying hardware. Traditionally interface names were enumerated as eth[0,1,2…]. In many environments, administrators would like to use names that refer to the purpose of the network interface especially when a host bridge into various networks e.g. mgmt[0,1,2…], storage[0,1,2…] or client[0,1,2…]. This post we show how to change interface names in RHEL 7 and CentOS 7.
On CentOS / RHEL 7, a new naming scheme is introduced.For instance:
# ip addr show
.....
eno1: [BROADCAST,MULTICAST,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 6c:0b:84:6c:48:1c brd ff:ff:ff:ff:ff:ff
inet 10.10.10.11/24 brd 10.10.10.255 scope global eno1
inet6 2606:b400:c00:48:6e0b:84ff:fe6c:481c/128 scope global dynamic
valid_lft 2326384sec preferred_lft 339184sec
inet6 fe80::6e0b:84ff:fe6c:481c/64 scope link
valid_lft forever preferred_lft forever
This post describes how to revert to the legacy naming scheme with Network Interface names as eth0, eth1, etc.
1. Edit kernel boot parameter.
Edit file /etc/default/grub and add net.ifnames=0 biosdevname=0 to line GRUB_CMDLINE_LINUX, for instance:
GRUB_CMDLINE_LINUX=" crashkernel=auto net.ifnames=0 biosdevname=0 rhgb quiet"
Regenerate a GRUB configuration file and overwrite existing one:
# grub2-mkconfig -o /boot/grub2/grub.cfg
2. Correct ifcfg file configuration
Edit NAME and DEVICE parameters in ifcfg file to new Network Interface name.
# cat /etc/sysconfig/network-scripts/ifcfg-eno1 ...... NAME=eth0 DEVICE=eth0 ......
Edit ifcfg file name:
# mv /etc/sysconfig/network-scripts/ifcfg-eno1 /etc/sysconfig/network-scripts/ifcfg-eth0
3. Disable NetworkManager
Make sure you disable the NetworkManager as it may revert back the changes on reboot or network restarts.
# systemctl disable NetworkManager rm '/etc/systemd/system/multi-user.target.wants/NetworkManager.service' rm '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service' rm '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'
4. Reboot system
The last step is to reboot the system for the changes we made to take effect.
# shutdown -r now
Verify
Verify the change of device name to eth0 in ip addr show.
# ip addr show
.....
eth0: [BROADCAST,MULTICAST,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 6c:0b:84:6c:48:1c brd ff:ff:ff:ff:ff:ff
inet 10.10.10.11/24 brd 10.10.10.255 scope global eno1
inet6 2606:b400:c00:48:6e0b:84ff:fe6c:481c/128 scope global dynamic
valid_lft 2326384sec preferred_lft 339184sec
inet6 fe80::6e0b:84ff:fe6c:481c/64 scope link
valid_lft forever preferred_lft forever