होस्टच्या रूटला स्पर्श न करता नेमस्पेसमध्ये VPN राउटिंग तपासा
तीन अनुकरणित भूमिका, तीन वेगळे संदर्भ आणि प्रत्येक लिंकसाठी एक veth. होस्टला स्पर्श करण्यापूर्वी नेमस्पेस लॅबची होस्ट-रूट लॅबशी तुलना करा.
दोन लॅब एकाच VPN टोपोलॉजीचे मॉडेल करू शकतात आणि पूर्णपणे वेगळ्या पद्धतीने अयशस्वी होऊ शकतात: एक नेटवर्क नेमस्पेसमध्ये राहते, दुसरी होस्टच्या स्वतःच्या रूटवर। नेमस्पेस आवृत्ती प्रत्येक इंटरफेस, रूट आणि सॉकेट अशा संदर्भात ठेवते जो तुम्ही हटवू शकता, तर होस्ट आवृत्ती वेगाने सुरू होते आणि मागे स्थिती सोडते। तीच उरलेली स्थिती एका महिन्यानंतर दुसरी लॅब पुन्हा करणे कठीण का होते याचे कारण आहे। प्रथम स्वच्छतेची तुलना करा, कारण प्रयोग दोन वेळा चालवू शकता का हे ते ठरवते।
एकच लॅब तयार करण्याचे दोन मार्ग, आणि कधी कोण जिंकते
होस्ट-रूट लॅबमध्ये तुम्ही ज्या मशीनवर काम करत आहात त्यात टनेल इंटरफेस आणि रूट जोडता, त्यामुळे प्रयोग तुमच्या shell, पॅकेज मॅनेजर आणि इतर प्रत्येक कनेक्शनसोबत नशीब वाटून घेतो। नेमस्पेस लॅबमध्ये प्रत्येक भूमिकेला इंटरफेस, पत्ते, रूट आणि सॉकेटचा स्वतःचा स्टॅक मिळतो, आणि नेमस्पेस हटवल्यास ते सर्व निघून जाते। कोणतेही मॉडेल अधिक बरोबर नाही, कारण ते वेगळ्या प्रश्नांची उत्तरे देतात। विषय राउटिंग आणि फॉरवर्डिंग असल्यास नेमस्पेस निवडा, आणि विषय एक डेस्कटॉप क्लायंट कसा एकत्रित होतो हा असल्यास होस्ट लॅब निवडा।
| Aspect | Namespace lab | Host-route lab |
|---|---|---|
| Isolation | Full stack per role | Shares the host stack |
| Cleanup | Delete named namespaces | Manual route and rule removal |
| Realism | Strong for routing | Needed for GUI clients |
दोन्हींना मिसळणे ही नेहमीची चूक आहे: फक्त होस्ट क्लायंटविरुद्ध तपासलेली नेमस्पेस लॅब दोन्हीपैकी कोणत्याही मांडणीबद्दल काहीही सिद्ध करत नाही। पहिली लिंक तयार करण्यापूर्वी तुम्ही कोणता प्रश्न विचारत आहात ते ठरवा।
प्रत्येक भूमिकेसाठी एक संदर्भ, जाणीवपूर्वक जोडलेला
प्रत्येक भूमिकेसाठी एक नेमस्पेस तयार करा आणि प्रत्येक veth जोडीचे प्रत्येक टोक ते धारण करणाऱ्या संदर्भात हलवा। पहिल्या चार आदेश आकार पाहण्यासाठी पुरेसे आहेत:
ip netns add client
ip netns add gateway
ip link add veth-c type veth peer name veth-g
ip link set veth-c netns clientलॅबला होस्टवर कशाशीही ओव्हरलॅप न होणाऱ्या श्रेणी द्या, आणि सुरू करण्यापूर्वी कोणता नेमस्पेस कोणत्या पत्त्याचा मालक आहे ते लिहा। कार्यरत लॅबला दोन वेगळे मार्ग हवे: VPN एंडपॉइंटने त्याच्या जोडीदारापर्यंत पोहोचण्यासाठी बाह्य मार्ग, आणि संरक्षित संसाधनासाठी परतीचा मार्ग। त्यांना दोन निर्णय म्हणून मॉडेल करा, कारण फक्त बाहेर जाणारा अर्धा भाग बांधणारी लॅब हँडशेक चाचणी उत्तीर्ण होते आणि अनुप्रयोग चाचणीत अयशस्वी होते।
फॉरवर्डिंग भूमिका हीच लॅब मनोरंजक होण्याची जागा
एका भूमिकेने फॉरवर्ड करावे लागते, म्हणजे त्या नेमस्पेसच्या आत फॉरवर्डिंग सक्षम करणे आणि डिझाइनला आवश्यक असलेला नियम जोडणे। फॉरवर्डिंग स्थिती प्रत्येक नेमस्पेससाठी वेगळी असते, म्हणून होस्टची सेटिंग लॅबसाठी अप्रासंगिक आहे आणि लॅबची सेटिंग बाहेर गळत नाही, जसे नेटवर्क नेमस्पेस दस्तऐवज वर्णन करतात। WireGuard नोंदवते की इंटरफेस आणि त्याचे बाह्य सॉकेट वेगवेगळ्या नेमस्पेसमध्ये राहू शकतात, ही उपयुक्त युक्ती आणि स्वतःला गोंधळात टाकण्याचा उत्तम मार्ग आहे। इंटरफेस हलवल्याने कनेक्शनचा प्रत्येक भाग त्याच पद्धतीने हलतो असे गृहीत धरू नका।
चाचणी पॅकेटनंतर फॉरवर्डिंग काउंटर तपासा, कारण कधीही जुळला नाही असा नियम आणि पॅकेट टाकून दिलेला नियम रूट टेबलमध्ये सारखेच दिसतात। फक्त काउंटर त्यांना वेगळे करतात।
आधाररेषा नोंदवा, नंतर एक रूट तोडा
काय अस्तित्वात आहे ते नोंदवून सुरुवात करा, प्रत्येक ओळीच्या शेजारी संदर्भ लिहा। नेमस्पेस वाचा, नंतर चाचणी गंतव्य त्यापैकी एकाच्या आत घेईल तो रूट, नंतर तो वाहून नेणाऱ्या लिंकवरील काउंटर:
ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-gतिसरा आदेश हा लोक वगळतात तो आहे, आणि पुरावा तिथेच राहतो: टाकून दिलेले आणि त्रुटी काउंटर सांगतात की पॅकेट फॉरवर्डिंग भूमिकेपर्यंत पोहोचले का। बदलानंतर तेच तीन दृश्ये कॅप्चर करा, आणि पुरावा तुमची आठवण नाही, diff असू द्या। नंतर नक्की एक गोष्ट तोडा, एकतर रूट हटवून किंवा फॉरवर्डिंग मार्गावर नकार नियम जोडून, आणि तुम्ही अंदाज लावलेले लक्षण पुष्टी करा: उत्तराशिवाय पूर्ण झालेला हँडशेक, किंवा टाइमआउटऐवजी नाव निराकरणातील अपयश। फक्त यश दाखवणारी लॅब फार कमी शिकवते।
स्वच्छताच पुढील फेरी पुनरावृत्तीयोग्य बनवते
स्वच्छता तुम्ही नाव दिलेल्या संसाधनांपुरती मर्यादित ठेवा, कारण संपूर्ण फायरवॉल रीसेट किंवा होस्ट रूट काढणे ही पुनरुत्पादकता नाही, ती दुसरी घटना आहे। टोपोलॉजी, अचूक आदेश आणि तुम्ही अपेक्षित असलेली निरीक्षणे जतन करा, जेणेकरून पुढील फेरी मागील स्थिती कोणत्या संदर्भात होती याचा अंदाज न लावता तेच अपयश पुन्हा निर्माण करेल। त्या नोंदीशिवाय लॅब एक कथा आहे, प्रक्रिया नाही।
लॅबसाठी स्थानिकरित्या तयार केलेली प्रवेश माहिती वापरा, आणि उत्पादन खाती सामायिक उदाहरणांपासून दूर ठेवा। नंतर प्रत्येक नेमस्पेस हटवा आणि होस्टचे दृश्य बदलले नाही याची खात्री करा, हेच हे मॉडेल निवडण्याचे संपूर्ण कारण आहे। जी लॅब तुम्ही स्वच्छपणे काढू शकत नाही ती अतिरिक्त पायऱ्यांसह होस्ट बदल आहे।