ip netns exec र DNS: नेमस्पेस भित्र नामहरू किन असफल हुन्छन्
नेमस्पेसमा आफ्नै इन्टरफेस र रुटहरू हुन्छन्, तर आफ्नै रिजोल्भर फाइल हुँदैन। लन्च गरिएको प्रक्रियाले कुन resolv.conf देख्छ र त्यो फाइल कहाँबाट आयो, जाँच गर्नुहोस्।
एउटा आदेश VPN नेमस्पेस भित्र 10.8.0.5 सम्म कुनै गुनासो बिना पुग्छ, र त्यही आदेशले होस्टनाम प्रयोग गर्ने क्षणमै असफल हुन्छ। नेमस्पेसमा आफ्नै इन्टरफेस, रुट र सकेटहरू हुन्छन्; आफ्नै रिजोल्भर फाइल हुँदैन। यदि कसैले त्यहाँ एउटा राखेन भने, भित्रको प्रक्रियाले होस्टको /etc/resolv.conf पढ्छ र त्यो नेटवर्क स्ट्याकबाट पुग्न नसकिने हुन सक्ने सर्भरलाई सोध्छ।
यो राउटिङको समस्या होइन, फाइल छनोटको समस्या हो, र त्यसैले संख्यात्मक गन्तव्य अझै काम गर्छ।
प्रक्रियाले वास्तवमा पाउने रिजोल्भर दृश्य जाँच गर्नुहोस्
तपाईंले प्रयोग गरेको शेल तपाईं डिबग गरिरहनुभएको प्रक्रिया जत्तिकै हो भनी नमान्नुहोस्। ग्राफिकल एप्लिकेसन, systemd युनिट र कन्टेनर प्रत्येकले फरक माउन्ट वा नेटवर्क सन्दर्भमा प्रवेश गर्न सक्छ। त्यही लन्च मार्गबाट लुकअप चलाउनुहोस्, र भित्रबाट रिजोल्भर फाइल प्रिन्ट गर्नुहोस्।
ip netns add ले बनाइएको नेमस्पेसका लागि पढ्न-मात्र जाँच छोटो छ:
ip netns exec vpn cat /etc/resolv.confनतिजाले पुग्न सकिने ठेगाना, loopback स्टब, वा फरक पहुँच क्षमता भएको ठाउँमा सङ्केत गर्ने सिम्बोलिक लिङ्क भन्छ कि भन्ने ध्यान दिनुहोस्।
exec सहायकले वास्तवमा के माउन्ट गर्छ
ip-netns उपकरणले प्रत्येक नेमस्पेसको कन्फिगरेसन /etc/netns/NAME/ मुनि अभिलेख गर्छ। जब यसले प्रक्रिया लन्च गर्छ, सहायकले माउन्ट नेमस्पेस बनाउँछ र ती फाइलहरूलाई तिनीहरूका सामान्य मार्गहरूमाथि bind-mount गर्छ, त्यसैले प्रक्रियाले नेमस्पेस-विशिष्ट प्रतिलिपि देख्छ। यो यही विशेष लन्चरको सुविधा हो। unshare वा कन्टेनर रनटाइम जस्ता अर्को मार्गबाट नेटवर्क नेमस्पेसमा प्रवेश गर्दा यसले त्यो स्वतः पुनरुत्पादन गर्दैन।
यहाँ जाल loopback रिजोल्भर हो: 127.0.0.53 भन्नाले नेमस्पेसको आफ्नै loopback, होस्टको स्टब होइन। होस्ट नेमस्पेसमा मात्र सुन्ने स्टब नयाँमा सेवा बन्दैन।
नेमस्पेसले पुग्न सक्ने रिजोल्भर छान्नुहोस्
फाइलले जुनसुकै सर्भर भनोस्, त्यसलाई त्यो नेमस्पेसबाट अझै रुट चाहिन्छ। सार्वजनिक रिजोल्भरले सार्वजनिक नामको जवाफ दिन सक्छ र तैपनि आन्तरिक जोनका लागि असफल हुन सक्छ, किनकि निजी सेवा टनेलबाट मात्र पुग्न सकिन्छ। लुकअप असफल भइसकेपछि होइन, ठेगानासँगै उही समयमा रुट जाँच गर्नुहोस्।
आफ्नै रिजोल्भर भएका एप्लिकेसनहरू, जस्तै DNS over HTTPS प्रयोग गर्ने, फाइललाई पूर्ण रूपमा बेवास्ता गर्न सक्छन्। यदि उपकरणको आफ्नै DNS सेटिङ छ भने, resolv.conf बदल्दा त्यसमा असर पर्दैन, र नेमस्पेस कहिल्यै समस्या थिएन।
फाइल सही ठाउँमा लेख्नुहोस्
/etc/netns/NAME/resolv.conf मुनि नेमस्पेस-विशिष्ट फाइल बनाउनुहोस् र लन्चरलाई त्यो प्रस्तुत गर्न दिनुहोस्। यसलाई न्यूनतम राख्नुहोस्: एक वा दुई पुग्न सकिने सर्भर र कामलाई चाहिने खोज डोमेनहरू। प्रक्रियाको एउटा समूहका लागि सोचिएको दृश्य सुधार्न होस्टको उत्पन्न रिजोल्भर फाइल सम्पादन नगर्नुहोस्, किनकि त्यसले मेसिनको हरेक एप्लिकेसन बदल्छ। यदि होस्टले रिजोल्भर म्यानेजर प्रयोग गर्छ भने, त्यससँग लड्नुको सट्टा त्यही म्यानेजरमार्फत नेमस्पेसको मार्ग कन्फिगर गर्नुहोस्।
फाइलको सामग्री रनबुकमा अभिलेख गर्नुहोस्। नत्र अर्को व्यक्तिले होस्टको रिजोल्भर परीक्षण गर्नेछ, काम गर्ने जवाफ देख्नेछ र नेमस्पेस ठीक छ भनी निष्कर्ष निकाल्नेछ।
सम्पूर्ण मार्ग फेरि परीक्षण गर्नुहोस्
नेमस्पेस भित्र संख्यात्मक ठेगाना, आन्तरिक नाम र सार्वजनिक नाम प्रयोग गरी परीक्षण गर्नुहोस्। यो क्रमले पहुँच क्षमतालाई रिजोल्युसनबाट अलग गर्छ र आन्तरिक जोनलाई सार्वजनिक जोनबाट अलग गर्छ। त्यसपछि नेमस्पेस फेरि बनाउनुहोस् र दोहोर्याउनुहोस्, किनकि चलिरहेको इन्स्ट्यान्समा मात्र रहेको फाइल त्यसैसँग हराउँछ।
फाइल शेलले होइन, प्रक्रियाले प्राप्त गरिरहेको छ भनी पुष्टि गर्नुहोस्। इन्टरएक्टिभ शेलबाट काम गर्ने र सेवाबाट असफल हुने लुकअप माउन्ट-सन्दर्भसम्बन्धी खोज हो, र अर्को घटनाअघि शून्यबाट फेरि पत्ता लगाउनुको सट्टा लेखी राख्नु उपयुक्त हुन्छ।