How to Migrate from network to NetworkManager in RHEL
If you’ve worked with Red Hat Enterprise Linux (RHEL) for a while, you’ve probably seen two network management systems: the old network service and the modern NetworkManager.
For years, the network service handled static, server-style setups. But times have changed — NetworkManager is now the default on RHEL 7 and later, providing flexibility, dynamic management, and better integration with modern networking tools.
In this post, we’ll walk through how to migrate safely from network to NetworkManager on your RHEL system step by step.
Why Migrate?
The legacy network service is deprecated in newer RHEL versions (and gone in RHEL 9). It’s limited, static, and lacks modern features like:
- Dynamic configuration
- VPN and VLAN management
- GUI and CLI tools (nmcli, nmtui)
- Hotplug and cloud support
Meanwhile, NetworkManager:
- · Reads old ifcfg files
- · Supports static and dynamic setups
- · Works seamlessly with tools and automation frameworks
Step-by-Step Migration Guide
Let’s get your RHEL server ready for NetworkManager.
Step 1: Check Current Network Configuration
Before touching anything, note your existing settings:
ip addr show
or
nmcli device status
Write down:
- Interface name (e.g. eth0, ens160)
- IP address
- Gateway
- DNS servers
This ensures you can recreate your configuration if needed.
Step 2: Back Up Existing Configurations
Always back up your existing ifcfg files:
mkdir -p /root/network-backup
cp /etc/sysconfig/network-scripts/ifcfg-* /root/network-backup/
If something goes wrong, you’ll have a full snapshot to revert to.
Step 3: Disable the Legacy network Service
Stop and disable the old service:
systemctl stop network
systemctl disable network
This prevents it from conflicting with NetworkManager.
Step 4: Enable and Start NetworkManager
Start using the modern service:
systemctl enable NetworkManager
systemctl start NetworkManager
systemctl status NetworkManager
If NetworkManager isn’t installed, just run
yum install NetworkManager -y
Step 5: Import or Recreate Your Network Configuration
NetworkManager usually reads your existing ifcfg files automatically.
Check if your connections were detected:
nmcli connection show
If not, you can recreate them manually:
nmcli con add type ethernet ifname eth0 con-name static-eth0 \
ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8 8.8.4.4" ipv4.method manual
Bring it online:
nmcli con up static-eth0
Step 6: Verify Connectivity
Confirm everything’s working as expected:
ping -c 4 8.8.8.8
ping -c 4 google.com
Check DNS and routing details:
nmcli device show eth0
ip route show
nmcli -f NAME,UUID,TYPE,DEVICE,FILENAME, NAME UUID TYPE connection show
Connections for interfaces will show as runtime-only and after reboot it will be lost.
So make it persistent for the interfaces using below commands.
nmcli connection modify ens0 connection.autoconnect yes
systemctl restart NetworkManager
Step 7: (Optional) Clean Up Legacy Tools
Once you’re confident NetworkManager is handling your interfaces properly, remove deprecated scripts:
yum remove network-scripts -y
This keeps your system clean and aligned with modern RHEL practices.
Managing NetworkManager Going Forward
Now that you’re migrated, you can manage networks using:
CLI
nmcli connection show
nmcli device status
Configuration files are stored under:
/etc/NetworkManager/system-connections/
Final Thoughts
Migrating to NetworkManager isn’t just a modernisation task, it’s a future-proofing step.
It supports everything from static IPs to complex networking setups, integrates with automation tools like Ansible, and aligns with RHEL’s current best practices.
So, if your servers still rely on the old network service, now’s the perfect time to make the switch.
It’s cleaner, more powerful, and ready for the hybrid cloud era.
If you have any questions regarding any of the points mentioned above or want to discuss this further, feel free to get in touch with us:
Kajal Sangani (kajal.sangani@ibm.com)
Chintan Thaker (chthaker@in.ibm.com)
Reference links:
https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/assembly_legacy-network-scripts-support-in-rhel_configuring-and-managing-networking.html
https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/considerations_in_adopting_rhel_8/networking_considerations-in-adopting-rhel-8.html
https://access.redhat.com/solutions/6900331