NetworkManager,联网的,netplan,ifupdown2和iproute2到底如何交互?


20

我正在学习关于Linux的Kubuntu我18.04工作站上的网络,我看到有两个NetworkManagernetworkd-dispatcher正在运行:

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似乎通过以下方式配置为处理“一切” netplan

oleg@eclectic:~$ cat /etc/netplan/01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

我相信如果没有安装,netplan一切都会顺利进行。networkdNetworkManager

中也有一堆文件/etc/network/,我不确定该如何处理。许多软件包似乎使用此目录:

oleg@eclectic:~$ dpkg -S /etc/network
avahi-daemon, ifupdown2, wpasupplicant, openvpn, postfix, netbase, avahi-autoipd, wireless-tools, clamav-freshclam: /etc/network

我的一些谷歌搜索后,最初的想法是,NetworkManagernetworkd都在运行,但netplan生成配置,使得只有一个是真的在做事情。但是我不知道如何验证这一点,弄清楚操作链或配置它以适合我对dummy0的恶意计划。

问题: NetworkManager,网络和netplan到底如何协同工作?换句话说,随着计算机的启动,哪个进程将什么交给其他进程?如何从工具包一样net-toolsifupdown2iproute2和目录,如/etc/network/嵌入这一切?最后,我如何自己弄清楚这一点并使用命令行学习详细信息?

更新:我不是在寻找高层次的概述。相反,我想知道这些组件如何在内核级别或类似级别进行交互,冲突或避免冲突。

Answers:


15

systemd-networkd 当其启用时荣誉配置 /etc/systemd/network

NetworkManager将遵循一些自动规则,例如,如果找到有线连接,它将尝试连接到有线连接。

两者均作为systemd服务启用和禁用,并且使用udev的systemd为网络适配器创建设备文件。通常,您可能不应该同时启用这两者,但是如果这样做,则需要注意它们的配置不要冲突。

netplan在任一网络管理器开始之前,都将根据其自身的配置为其中一个创建配置。这样,netplan实际上是一个配置抽象,并且它使用systemd-networkd或NetworkManager是配置的一部分。

iproute2是用于在命令行中配置网络接口的工具包。它包括类似于网络管理器的链接配置和旧的ifconfig。而net-toolsipupdownifupdown2在/ etc使用网络配置/网络/接口来配置和解除配置接口。

ifupdown 或其他版本可以用于管理网络,但它不是自动的,但可以使用systemd服务在引导时启动它。

ifupdown2使用systemd与网络接口类似的依赖关系图。此外,它还可以作为其他工具的抽象,例如iproute2


2
感谢您的比较/对比,但我一直在寻找更多有关这些组件如何在更深层次上相互交互的信息。例如,当systemd和NetworkManager尝试同时控制同一接口时,内核中到底发生了什么?iproute2 / ifupdown工具在与networkd / NetworkManager冲突(或避免冲突)的内核中做什么?我可以使用哪些命令查看哪些工具对哪些接口做了什么(在udev /内核级别)?
奥列格(Oleg)'18年

竟然有许多解释,声称netplan一般的混乱我见过的最好的解释就是无论是网络管理器 systemd-networkd,但不能同时使用。一些链接会有所帮助。例如manpages.ubuntu.com/manpages/cosmic/man5/netplan.5.html
Craig Hicks

读完这篇文章后,我希望在/etc/systemd/network启用了systemd-networkd并正在运行的Ubuntu 19.10中找到配置文件,该目录为空。但是我在中找到文件/lib/systemd/network。这是新配置吗?流氓ubuntu?一个错误?
斯蒂芬·波士顿

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.