Sample Header Ad - 728x90

How exactly are NetworkManager, networkd, netplan, ifupdown2, and iproute2 interacting?

69 votes
3 answers
57085 views
I am learning about Linux networking on my Kubuntu 18.04 workstation, and I see there that both NetworkManager and networkd-dispatcher are running: oleg@eclectic:~$ sudo ps -ef | grep -i net root 56 2 0 Oct11 ? 00:00:00 [netns] root 1097 1 0 Oct11 ? 00:00:02 /usr/sbin/NetworkManager --no-daemon root 1098 1 0 Oct11 ? 00:00:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers root 1250 1 0 Oct11 ? 00:00:02 /usr/sbin/inetd root 1593 1097 0 Oct11 ? 00:00:00 /sbin/dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper... NetworkManager seems to be configured to handle "everything" by netplan: oleg@eclectic:~$ cat /etc/netplan/01-network-manager-all.yaml # Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager I believe that netplan would hand everything off to networkd if NetworkManager was not installed. There are also a bunch of files in /etc/network/, and I am not sure what is handling those. A lot of packages seem to use this directory: oleg@eclectic:~$ dpkg -S /etc/network avahi-daemon, ifupdown2, wpasupplicant, openvpn, postfix, netbase, avahi-autoipd, wireless-tools, clamav-freshclam: /etc/network My initial thoughts after some Googling are that NetworkManager and networkd are both running, but netplan generates configuration such that only one is actually doing something. But I do not know how I would verify this, figure out the chain of operations, or configure it to suit my nefarious plans for dummy0. **Question:** How exactly are NetworkManager, networkd, and netplan working together? In other words, as the computer boots up, which processes hand what of to what other processes? How do tools from packages like net-tools, ifupdown2, and iproute2 and directories like /etc/network/ fit into all this? And finally, how can I figure this out myself and learn the details using the command line? **Update:** I am not looking for a high-level overview. Rather, I want to know how these components are interacting, conflicting, or avoiding conflict on the kernel level or similar.
Asked by Oleg Pryadko (2500 rep)
Oct 12, 2018, 06:02 PM
Last activity: Jun 9, 2025, 02:11 PM