On 09/02/2020 23:55, Nicolas Kovacs wrote:
Hi Nicolas,
[snip]
Maybe there's a reason to make NetworkManager more or less mandatory from now on, but I don't see it. So I thought I'd rather ask on this list.
Like you, I read about NetworkManager becoming the default tool for CentOS 8. So I sat down with a colleague to figure out how we could use NetworkManager, and convert our existing network configs (on CentOS 6 and 7) to work with NetworkManager.
I'm sad to report that we ran into at least 3 issues (listed below). We found solutions to the first two, but the last one was a show-stopper, and we came to the conclusion that for servers, NetworkManager is still overkill, and for us, actually unusable. So even on CentOS 8, we will keep using the legacy scripts.
- When NetworkManager activates interfaces, it does not wait for IPv6
DAD to complete. This makes systemd reach the "network-online" target before IPv6 is fully initialised, and some daemons fail to start. We eventually found a work-around, but not before I'd lost some of my hair.
- NetworkManager doesn't know how to activate dummy interfaces from
ifcfg-dummy* files. You have to create dummy interfaces directly in NetworkManager. This is not a problem on CentOS 8, but on CentOS 7, there is a subtle issue with loading the dummy module that makes things fail at boot. We again found the solution, but it's annoying that none of it was documented.
- Some of our servers run full routing daemons (BIRD), and have
multiple route tables. On these, when we start NetworkManager, it attempts to read the entire route tables into memory using the netlink API. This makes it log lots of errors. Then, NetworkManager's RAM usage goes up and up, going to over 3 GB!! Finally, it barfs and dies. And then systemd starts it again, and it goes and does the same.
We have NOT been able to find any solution to this stupidity of NetworkManager. And so we have made the choice to abandon it, and remain with legacy network scripts.
Thanks for confirming that NetworkManager is not the solution for everyone. To me it seems that NetworkManager was developed by laptop users for laptop users and that's why it is what it is today. Useful for laptops/desktops and simple server setups.
Unfortunately, instead of fixing/refactoring the whole bash networking script mess, another new project was started instead, called systemd-networkd :-)
Regards, Simon