Як саме взаємодіють NetworkManager, networkd, netplan, ifupdown2 та iproute2?


20

Я дізнаюся про мережу 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

Мої перші думки після деякого Googling є те, що NetworkManagerі networkdобидва працює, але netplanстворює конфігурацію такий , що тільки один насправді що - то робити. Але я не знаю, як би я це перевірив, з'ясував ланцюжок операцій або налаштував його так, щоб він відповідав моїм грізним планам для манекена0.

Запитання: Як саме NetworkManager, networkd та netplan працюють разом? Іншими словами, коли комп'ютер завантажується, які процеси передають, що з якими іншими процесами? Як інструменти з пакетів , таких як net-tools, ifupdown2і iproute2та каталоги , як /etc/network/у все це вписуються? І нарешті, як я можу це зрозуміти сам і дізнатися деталі, використовуючи командний рядок?

Оновлення: Я не шукаю огляд високого рівня. Швидше, я хочу знати, як ці компоненти взаємодіють, конфліктують або уникають конфлікту на рівні ядра чи подібного.

Відповіді:


16

systemd-networkd коли його включені відзнаки в /etc/systemd/network

Тоді NetworkManagerяк дотримуватимуться деяких автоматичних правил, як-от воно спробує підключитися до дротового з’єднання, якщо воно знайде.

Обидва вмикаються та відключаються як systemdсервіси, а системний за допомогою udev створює файли пристрою для мережевих адаптерів. Як правило, ви, мабуть, не повинні були одночасно ввімкнути обидва, але якщо вам це потрібно, слід бути обережними, щоб їх конфігурації не конфліктували.

netplanперед тим, як будь-який менеджер мережі запускає, створює конфігурації для будь-якої на основі власної конфігурації. Таким чином, netplan - це дійсно конфігурація конфігурації, і вона використовує systemd-networkd або NetworkManager є частиною конфігурації.

iproute2являє собою пакет інструментів для налаштування мережевих інтерфейсів у командному рядку. Вона включає конфігурацію посилань, аналогічну мережевим менеджерам і стару ifconfig. В той час net-tools, ipupdownі ifupdown2використання конфігурації мережі в / і т.д. / мережі / інтерфейси для налаштування і інтерфейсів з конфігурації.

ifupdown або інші його версії можуть використовуватися для управління мережами, але його не автоматичний, але системний сервіс можна використовувати для запуску при завантаженні.

ifupdown2використовує графіки залежності, подібні до того, що systemdробить, але з мережевими інтерфейсами. Далі він виступає як абстракція інших інструментів, таких якiproute2


2
Дякую за порівняння / контраст, але я шукав більше про те, як ці компоненти взаємодіють один з одним, на набагато глибшому рівні. Наприклад, що саме відбувається в ядрі, коли і systemd, і NetworkManager намагаються контролювати один і той же інтерфейс одночасно? Що роблять інструменти iproute2 / ifupdown у ядрі, яке конфліктує (або уникає конфлікту) з networkd / NetworkManager? Які команди я можу використовувати, щоб побачити, які інструменти зробили, які інтерфейси (на рівні udev / kernel)?
Олег

Найкраще пояснення, яке я бачив, поки існує загальна плутанина з багатьма поясненнями, що стверджують, що netplan - це або NetworkManager, або системна мережа , але не те і інше. Деякі посилання були б корисними. Наприклад, manpages.ubuntu.com/manpages/cosmic/man5/netplan.5.html
Крейг Хікс

Прочитавши це, я очікую, що знайду файли конфігурації, /etc/systemd/networkале в моєму Ubuntu 19.10 із включеною системою і підключеною мережею цей каталог порожній. Однак я знаходжу файли в /lib/systemd/network. Це нова конфігурація? Rogue ubuntu? Помилка?
Стівен Бостон

1
@StephenBoston На це відповів unix.stackexchange.com/questions/206315/…
Тимофій Гу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.