CentOS 7 / RHEL 7 : How to modify Network Interface names
Written by BiRU Saturday, 17 February 2024 12:01
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