Jak dokładnie współdziałają NetworkManager, networkd, netplan, ifupdown2 i iproute2?


20

Uczę się o Linux sieci na moim Kubuntu 18.04 stacji roboczej, a widzę, że zarówno tam NetworkManageri networkd-dispatchersą uruchomione:

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...

NetworkManagerwydaje się być skonfigurowany do obsługi „wszystkiego” przez netplan:

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

Wierzę, netplanże przekazałoby wszystko, networkdgdyby NetworkManagernie zostało zainstalowane.

Jest tam również kilka plików /etc/network/i nie jestem pewien, co się z nimi dzieje. Wiele pakietów wydaje się używać tego katalogu:

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

Moje początkowe przemyślenia po pewnym Googlingu są takie NetworkManageri networkdoba działają, ale netplangenerują konfigurację tak, że tylko jedna z nich coś robi. Ale nie wiem, jak bym to zweryfikował, wymyślił łańcuch operacji lub skonfigurował go tak, aby pasował do moich nikczemnych planów dla manekina0.

Pytanie: Jak dokładnie NetworkManager, Networkd i Netplan współpracują ze sobą? Innymi słowy, kiedy komputer uruchamia się, które procesy ręcznie, a jakie inne procesy? W jaki sposób narzędzia z pakietów podoba net-tools, ifupdown2i iproute2i katalogi jak /etc/network/dopasowanie w tym wszystkim? I w końcu, jak mogę to sobie wyobrazić i poznać szczegóły za pomocą wiersza poleceń?

Aktualizacja: Nie szukam przeglądu wysokiego poziomu. Chcę raczej dowiedzieć się, w jaki sposób te komponenty wchodzą w interakcje, powodują konflikty lub unikają konfliktów na poziomie jądra lub podobnych.

Odpowiedzi:


16

systemd-networkd gdy jego włączone honoruje konfiguracje w /etc/systemd/network

Podczas gdy NetworkManagerbędzie przestrzegać pewnych automatycznych reguł, takich jak spróbuje połączyć się z połączeniem przewodowym, jeśli je znajdzie.

Oba są włączone i wyłączone, ponieważ systemdusługi i systemd przy użyciu udev tworzy pliki urządzeń dla kart sieciowych. Ogólnie rzecz biorąc, prawdopodobnie nie powinieneś mieć włączonych obu jednocześnie, ale jeśli tak, musisz uważać, aby ich konfiguracje nie kolidowały.

netplanprzed uruchomieniem dowolnego menedżera sieci tworzy konfiguracje dla obu na podstawie własnej konfiguracji. W ten sposób netplan jest tak naprawdę abstrakcją konfiguracji i używa systemu systemd-networkd lub NetworkManager jest częścią konfiguracji.

iproute2to pakiet narzędzi do konfigurowania interfejsów sieciowych w wierszu poleceń. Obejmuje konfigurację łącza podobną do menedżerów sieci i starego ifconfig. Chociaż net-tools, ipupdowna ifupdown2konfiguracje sieciowe Zastosowanie w / etc / network / interfaces do interfejsów skonfigurować i deconfigure.

ifupdown lub jego inne wersje mogą być używane do zarządzania sieciami, ale nie jest to automatyczne, ale usługa systemowa może być użyta do uruchomienia go podczas rozruchu.

ifupdown2używa wykresów zależności podobnych do tego, co systemdrobi, ale z interfejsami sieciowymi. Ponadto działa jako abstrakcja innych narzędzi, takich jakiproute2


2
Dziękuję za porównanie / kontrast, ale szukałem więcej na temat tego, jak te komponenty oddziałują na siebie, na znacznie głębszym poziomie. Na przykład, co dokładnie dzieje się w jądrze, gdy zarówno systemd, jak i NetworkManager próbują kontrolować ten sam interfejs w tym samym czasie? Co robią narzędzia iproute2 / ifupdown w jądrze, które powoduje konflikt (lub pozwala uniknąć konfliktu) z networkd / NetworkManager? Jakich poleceń mogę użyć, aby zobaczyć, jakie narzędzia zrobiły co do których interfejsów (na poziomie udev / kernel)?
Oleg

Najlepszym wyjaśnieniem widziałem tak daleko, jak jest ogólnie zamieszanie z wielu wyjaśnień, twierdząc, że netplan jest albo NetworkManager lub Systemd-networkd, ale nie jednocześnie. Niektóre linki byłyby pomocne. Np. Manpages.ubuntu.com/manpages/cosmic/man5/netplan.5.html
Craig Hicks

Po przeczytaniu tego spodziewam się znaleźć pliki konfiguracyjne, /etc/systemd/networkale w moim Ubuntu 19.10 z włączoną i uruchomioną funkcją systemd-networkd ten katalog jest pusty. Jednak znajduję pliki w /lib/systemd/network. Czy to nowa konfiguracja? Fałszywe ubuntu? Błąd?
Stephen Boston,

1
@StephenBoston To jest odpowiedź w unix.stackexchange.com/questions/206315/…
Timothy Gu
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.