[CentOS] NetworkManager on servers

Tue Feb 11 05:11:04 UTC 2020
Simon Matter <simon.matter at invoca.ch>

> 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.
>
> 1. 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.
>
> 2. 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.
>
> 3. 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