NetworkManager、networkd、netplan、ifupdown2、iproute2はどの程度正確に相互作用しますか?


18

私は、Linuxが私のKubuntu 18.04ワークステーション上のネットワークについて学んでいます、と私は両方のことをそこに見るNetworkManagerと、networkd-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がインストールされていなかったnetworkd場合NetworkManagerにすべてを引き継ぐだろうと信じています。

にはたくさんのファイルもありますが/etc/network/、何を処理しているのかわかりません。多くのパッケージがこのディレクトリを使用しているようです:

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

いくつかのグーグルの後の私の最初の考えはそれでNetworkManagerありnetworkd、両方とも実行netplanされていますが、1つだけが実際に何かをしているような構成を生成します。しかし、私はこれをどのように検証するか、操作のチェーンを理解するか、dummy0の私の邪悪な計画に合わせてそれを構成する方法がわかりません。

質問: NetworkManager、networkd、およびnetplanはどの程度正確に連携していますか?つまり、コンピューターの起動時に、どのプロセスが他のどのプロセスに何を渡しますか?、、およびなどのパッケージのツールはnet-tools、これらすべてにどのように適合しますか?そして最後に、コマンドラインを使用してこれを自分で把握して詳細を知るにはどうすればよいですか?ifupdown2iproute2/etc/network/

更新:高レベルの概要は探していません。むしろ、これらのコンポーネントがどのように相互作用、競合、またはカーネルレベルなどで競合を回避しているかを知りたいと思います。

回答:


14

systemd-networkd 有効にすると、 /etc/systemd/network

一方NetworkManager、有線接続が見つかった場合は接続に接続しようとするなど、いくつかの自動ルールに従います。

systemdサービスとudevを使用するsystemdがネットワークアダプターのデバイスファイルを作成するため、両方とも有効と無効になります。通常、両方を同時に有効にすることはおそらくないはずですが、その場合、設定が競合しないように注意する必要があります。

netplanいずれかのネットワークマネージャーが起動する前に、独自の構成に基づいていずれかの構成を作成します。このように、netplanは実際には構成の抽象化であり、systemd-networkdを使用するか、NetworkManagerが構成の一部です。

iproute2コマンドラインでネットワークインターフェイスを構成するためのツールのパッケージです。ネットワークマネージャーや古いifconfigに似たリンク構成が含まれています。一方net-tools、/ etc / network / interfacesのネットワーク構成ipupdownifupdown2使用して、インターフェイスを構成および構成解除します。

ifupdown または他のバージョンを使用してネットワークを管理できますが、自動ではありませんが、起動時にsystemdサービスを使用して起動できます。

ifupdown2systemdネットワークインターフェイスを使用した場合と同様のディペンデンシーグラフを使用します。さらに、次のような他のツールの抽象化として機能しますiproute2


1
比較/コントラストをありがとうございますが、これらのコンポーネントが相互にどのように相互作用するかについて、より深いレベルでもっと探していました。たとえば、systemdとNetworkManagerの両方が同じインターフェースを同時に制御しようとすると、カーネルで正確に何起こりますか?networkd / NetworkManagerと競合する(または競合を回避する)カーネルでiproute2 / ifupdownツールは何をしますか?どのツールがどのインターフェースに(udev /カーネルレベルで)何をしたかを確認するために、どのコマンドを使用できますか?
オレグ

ネットプランはNetworkManager または systemd-networkdのいずれかであり、両方ではないと主張する多くの説明との一般的な混乱がある限り、これまで見てきた最良の説明。いくつかのリンクが役に立ちました。例:manpages.ubuntu.com/manpages/cosmic/man5/netplan.5.html
クレイグヒックス

これを読んだ後、設定ファイル/etc/systemd/networkが見つかるはずですが、systemd-networkdが有効で実行中のUbuntu 19.10では、そのディレクトリは空です。しかし、私はファイルを見つけます/lib/systemd/network。これは新しい構成ですか?不正なubuntu?エラー?
スティーブンボストン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.