NetworkManager, networkd, netplan, ifupdown2 और iproute2 परस्पर क्रिया कैसे कर रहे हैं?


20

मैं लिनक्स मेरी 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कॉन्फ़िगरेशन को ऐसे उत्पन्न करता है कि केवल एक वास्तव में कुछ कर रहा है। लेकिन मुझे नहीं पता कि मैं इसे कैसे सत्यापित करूंगा, संचालन की श्रृंखला का पता लगाऊंगा या इसे मम्मी के लिए मेरी नापाक योजनाओं के अनुरूप कॉन्फ़िगर करूंगा।

प्रश्न: NetworkManager, networkd, और netplan एक साथ कैसे काम कर रहे हैं? दूसरे शब्दों में, जैसा कि कंप्यूटर बूट करता है, कौन सी प्रक्रिया हाथ लगाती है क्या अन्य प्रक्रियाएं? कैसे करते हैं संकुल से उपकरण की तरह है net-tools, ifupdown2और iproute2और की तरह निर्देशिका /etc/network/यह सब में फिट? और अंत में, मैं इसे स्वयं कैसे समझ सकता हूं और कमांड लाइन का उपयोग करके विवरण जान सकता हूं।

अपडेट: मैं एक उच्च-स्तरीय अवलोकन की तलाश नहीं कर रहा हूं। बल्कि, मैं जानना चाहता हूं कि ये घटक किस प्रकार परस्पर क्रिया कर रहे हैं, संघर्ष कर रहे हैं या कर्नेल स्तर या इसी तरह के संघर्ष से बच रहे हैं।

जवाबों:


16

systemd-networkd जब इसके सक्षम सम्मान विन्यास में आते हैं /etc/systemd/network

जबकि NetworkManagerयह कुछ स्वचालित नियमों का पालन करेगा जैसे कि यह एक वायर्ड कनेक्शन से जुड़ने की कोशिश करेगा यदि यह एक को पाता है।

दोनों सक्षम और अक्षम हैं क्योंकि systemdसेवाओं और सिस्टम के उपयोग से udv नेटवर्क एडेप्टर के लिए डिवाइस फाइल बनाता है। आम तौर पर आप दोनों को एक ही समय में सक्षम नहीं होना चाहिए, लेकिन अगर आप करते हैं तो आपको सावधान रहना होगा कि उनके विन्यास संघर्ष नहीं करते हैं।

netplanया तो नेटवर्क मैनेजर शुरू होने से पहले या तो अपने कॉन्फ़िगरेशन के आधार पर कॉन्फ़िगरेशन बनाता है। इस तरह नेटप्लान वास्तव में एक कॉन्फ़िगरेशन अमूर्तता है और इसे सिस्टमड-नेटवर्कड या नेटवर्कमैनगर का उपयोग करता है, जो कॉन्फ़िगरेशन का हिस्सा है।

iproute2कमांड लाइन पर नेटवर्क इंटरफेस को कॉन्फ़िगर करने के लिए उपकरणों का एक पैकेज है। इसमें नेटवर्क प्रबंधकों और पुराने ifconfig के समान लिंक कॉन्फ़िगरेशन शामिल है। जबकि net-tools, ipupdownऔर ifupdown2/ etc / network / interfaces में कॉन्फ़िगर और deconfigure इंटरफेस के लिए नेटवर्क कॉन्फ़िगरेशन का उपयोग करें।

ifupdown या इसके अन्य संस्करणों का उपयोग नेटवर्क को प्रबंधित करने के लिए किया जा सकता है लेकिन यह स्वचालित नहीं है लेकिन बूट पर इसे शुरू करने के लिए एक सिस्टमड सेवा का उपयोग किया जा सकता है।

ifupdown2निर्भरता ग्राफ का उपयोग systemdकरता है लेकिन नेटवर्क इंटरफेस के साथ क्या करता है। इसके अलावा यह अन्य उपकरणों की तरह एक अमूर्त के रूप में कार्य करता हैiproute2


2
तुलना / कंट्रास्ट के लिए धन्यवाद, लेकिन मैं इस बारे में अधिक तलाश कर रहा था कि ये घटक एक-दूसरे के साथ बहुत गहरे स्तर पर कैसे बातचीत करते हैं। उदाहरण के लिए, कर्नेल में वास्तव में क्या होता है जब सिस्टम और नेटवर्क मैनजर दोनों एक ही समय में एक ही इंटरफ़ेस को नियंत्रित करने की कोशिश करते हैं? Iproute2 / ifupdown टूल कर्नेल में क्या करते हैं जो संजाल / NetworkManager के साथ टकराव (या टकराव से बचा जाता है)? मैं यह देखने के लिए कि कौन से उपकरण किस इंटरफेस (udv / कर्नेल स्तर पर) को किस कमांड का उपयोग कर सकते हैं?
ओलेग

सबसे अच्छा स्पष्टीकरण मैंने अब तक देखा है क्योंकि कई स्पष्टीकरणों के साथ सामान्य भ्रम है कि नेटप्लान या तो नेटवर्क मैनजर या सिस्टमड-नेटवर्कड है, लेकिन दोनों नहीं। कुछ लिंक मददगार रहे होंगे। Eg manpages.ubuntu.com/manpages/cosmic/man5/netplan.5.html
क्रेग हिक्स

इसे पढ़ने के बाद मुझे उम्मीद है कि विन्यास फाइल को /etc/systemd/networkमेरे Ubuntu 19.10 में systemd-networkd सक्षम और चलाने के साथ, वह निर्देशिका खाली है। हालाँकि मुझे इसमें फाइलें मिलती हैं /lib/systemd/network। क्या यह एक नया विन्यास है? दुष्ट ubuntu? एक त्रुटि?
स्टीफन बॉस्टन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.