Fedora No Longer Support Manually Network Interface Setup Using ifcfg-eth0?

I’m using Fedora 35 minimum without gui for raspberry pi.

Trying to setup network interfaces manually by disabling Networkmanger service and using ifcfg-eth0 file but when system rebooted eth0 remained down and unconfigured.

So my question is does Fedora no longer support manually setup with ifcfg-eth0 file? All network interfaces has to be setup thru Networkmanger nmcli?

1 Like

“Initscripts’ ifcfg-rh Format in NetworkManager and its Future – Thomas Haller’s Blog” Initscripts’ ifcfg-rh Format in NetworkManager and its Future – Thomas Haller's Blog

Might be relevant to your question.

4 Likes

As an alternative you could also look at systemd.networkd

3 Likes

Hello @kikilala ,
Welcome to the :fedora: discussion area!. Maybe check out this link for using Fedora on the Pi, in particular I think in the howto’s they cover some of networking using nmcli.

4 Likes

@kikilala
I strongly suggest to get into the topic NetworkManager / nmcli because this is where network management centralizes on Fedora (and on many of the widespread distributions) and every update/upgrade your system gets will expect this.

The support for the old tools around ifconfig, ifup (and so on), and the related configs will decrease (these are legacy tools; not just on Fedora but on most widespread Linux distributions). Thus, at some point, you will have again the problem that such a configuration no longer works. Sooner or later you will have to deal with the NetworkManager anyway. Therefore, stick with the NetworkManager / nmcli to create a stable solution on the long term, which does not force you to regularly adjust manually.

2 Likes

networkd is far easier to use than nmcli. This is the right tool to setup simple networking.

I assume you mean systemd.networkd, that is what the NetworkManager command line tool nmcli does, it takes care of writing to the necessary files in order to configure a system unit to operate with systemd.

While there’s already an accepted answer, if you really want to use the ifcfg- files for configuration, you can:

systemctl disable Network-Manager
systemctl mask Network-Manager
systemctl enable network

And at your next reboot, the configs in the ifcfg- files will be used.

However, as was noted by others, the network service may not be around forever.

1 Like

Are you sure? I believe they are different. The configuration files for systemd-networkd and nmcli are in two different locations and NetworkManager service can be disabled if systemd-netoword service is up.

You’re absolutely correct.

That said, systemd-networkd isn’t running (but is definitely installed) on any of my systems. In fact, it’s disabled on all the Fedora 34 systems I have (15 or so, mostly VMs).

I generally install via kickstart, so I went back and checked my kickstart file to see how I set up networking (that’s done postinstall)

And I do not disable/mask systemd-networkd.service. However, I do enable the network service.

Perhaps enabling the network.service disables systemd-networkd? That seems unlikely though.

I’m doing a fresh install on a test VM right now with my current config and will confirm that systemd-networkd is disabled.

Then I’m going to modify the installation not to enable network.service and see if systemd-networkd is running.

I’ll follow up once that’s done.

Edit: I have confirmed via testing (as grumpey mentioned) that NetworkManager is enabled by default and systemd-networkd is not.

Again, you’re absolutely correct WRT Network Manager vs. systemd-networkd.

Edit: As grumpey pointed out (thanks again, grumpey!), NetworkManager is the default network interface manager/configurator for Fedora.

As such, disabling/masking NetworkManaer is the right call, since systemd-networkd isn’t enabled by default.

Because the network manager service is the default for Fedora.

1 Like

You can deploy own setup with a custom preset:

sudo mkdir -p /etc/systemd/system-preset
sudo tee /etc/systemd/system-preset/00-custom.preset << EOF > /dev/null
enable systemd-networkd.service
EOF
sudo systemctl preset-all
1 Like

Well, if you’re using Fedora Linux as default setup, it uses NetworkManager to do the networking configuration. If you’re using systemd.networkd then I believe networkctl is the command of choice.

1 Like

That explains things.

Thanks grumpey!

Thanks for the suggestion. It’s appreciated!

That said, I will continue to use the network service instead of NetworkManager or systemd-networkd until it’s no longer available.

I just checked on 2 systems (fedora 34 & 35) and confirmed that NetworkManager is the default config on fedora.

I believe there is a conflict when both network.service and NetworkManager.service are active. I also know there is a distinct difference in the file locations and structure for those 2 services.