Network Namespace
बुनियादी जानकारी
एक नेटवर्क नेमस्पेस एक Linux कर्नेल फीचर है जो नेटवर्क स्टैक का अलगाव प्रदान करता है, जिससे प्रत्येक नेटवर्क नेमस्पेस की अपनी स्वतंत्र नेटवर्क कॉन्फ़िगरेशन, इंटरफेस, IP पते, रूटिंग तालिकाएँ, और फ़ायरवॉल नियम हो सकते हैं। यह अलगाव विभिन्न परिदृश्यों में उपयोगी है, जैसे कंटेनरीकरण, जहां प्रत्येक कंटेनर को अन्य कंटेनरों और होस्ट सिस्टम से स्वतंत्र अपनी नेटवर्क कॉन्फ़िगरेशन होनी चाहिए।
यह कैसे काम करता है:
जब एक नया नेटवर्क नेमस्पेस बनाया जाता है, तो यह पूर्ण रूप से अलग नेटवर्क स्टैक के साथ शुरू होता है, जिसमें कोई नेटवर्क इंटरफेस नहीं होता है सिवाय लूपबैक इंटरफेस (lo) के। इसका मतलब है कि नए नेटवर्क नेमस्पेस में चलने वाली प्रक्रियाएँ डिफ़ॉल्ट रूप से अन्य नेमस्पेस या होस्ट सिस्टम में चलने वाली प्रक्रियाओं के साथ संवाद नहीं कर सकती हैं।
वर्चुअल नेटवर्क इंटरफेस, जैसे veth जोड़े, बनाए जा सकते हैं और नेटवर्क नेमस्पेस के बीच स्थानांतरित किए जा सकते हैं। यह नेमस्पेस के बीच या एक नेमस्पेस और होस्ट सिस्टम के बीच नेटवर्क कनेक्टिविटी स्थापित करने की अनुमति देता है। उदाहरण के लिए, एक veth जोड़े का एक सिरा एक कंटेनर के नेटवर्क नेमस्पेस में रखा जा सकता है, और दूसरा सिरा होस्ट नेमस्पेस में एक ब्रिज या अन्य नेटवर्क इंटरफेस से जोड़ा जा सकता है, जिससे कंटेनर को नेटवर्क कनेक्टिविटी मिलती है।
एक नेमस्पेस के भीतर नेटवर्क इंटरफेस के अपने IP पते, रूटिंग तालिकाएँ, और फ़ायरवॉल नियम हो सकते हैं, जो अन्य नेमस्पेस से स्वतंत्र होते हैं। यह विभिन्न नेटवर्क नेमस्पेस में प्रक्रियाओं को अलग-अलग नेटवर्क कॉन्फ़िगरेशन रखने और ऐसा कार्य करने की अनुमति देता है जैसे कि वे अलग-अलग नेटवर्क सिस्टम पर चल रही हैं।
प्रक्रियाएँ
setns()
सिस्टम कॉल का उपयोग करके नेमस्पेस के बीच स्थानांतरित हो सकती हैं, याCLONE_NEWNET
फ्लैग के साथunshare()
याclone()
सिस्टम कॉल का उपयोग करके नए नेमस्पेस बना सकती हैं। जब एक प्रक्रिया एक नए नेमस्पेस में जाती है या एक बनाती है, तो यह उस नेमस्पेस से संबंधित नेटवर्क कॉन्फ़िगरेशन और इंटरफेस का उपयोग करना शुरू कर देगी।
प्रयोगशाला:
विभिन्न नेमस्पेस बनाएं
CLI
By mounting a new instance of the /proc
filesystem if you use the param --mount-proc
, you ensure that the new mount namespace has an सटीक और अलग दृष्टिकोण उस नामस्थान के लिए विशिष्ट प्रक्रिया जानकारी.
Docker
जांचें कि आपका प्रक्रिया किस नामस्थान में है
सभी नेटवर्क नामस्थान खोजें
नेटवर्क नामस्थान के अंदर प्रवेश करें
आप केवल दूसरे प्रक्रिया नामस्थान में प्रवेश कर सकते हैं यदि आप रूट हैं। और आप दूसरे नामस्थान में प्रवेश नहीं कर सकते बिना एक वर्णनकर्ता जो इसे इंगित करता है (जैसे /proc/self/ns/net
)।
संदर्भ
Last updated