सुरुङ बन्द भएको एक दिनपछि पनि आन्तरिक नाम अझै VPN सर्भरमा विश्लेषण हुन्छ, र रिजोल्भर फाइल त्यो प्रविष्टिसँगै फेरि फेरि आउँछ। जहाँ Debian resolvconf ले स्थिति राख्छ, त्यहाँ त्यो फाइल आपूर्तिकर्ताका रेकर्डबाट जोडिन्छ, र तीमध्ये एउटा बाँकी रहेको अंश हो। रेकर्ड मेटाउन एक मिनेट लाग्छ; यो मेट्न सुरक्षित छ भनी प्रमाणित गर्नु नै साँचो काम हो। यी ढोकाहरू क्रमैसँग चल्छन्, र असफल ढोका प्रक्रिया अन्त्य गर्छ, अर्को चरणमा पठाउँदैन।

resolvconf ले स्थिति राख्छ भनी पुष्टि गर्नुहोस्

पहिले मालिक पहिचान गर्नुहोस्, किनकि systemd-resolved अन्तर्गत त्यही लक्षणलाई फरक आदेश र फरक मर्मत चाहिन्छ। resolvconf प्याकेजले /run/resolvconf अन्तर्गत डाटाबेस राख्छ र /etc/resolv.conf लाई त्यो डाटाबेसबाट बनाइएको फाइलतिर देखाउँछ। दुई पढाइले प्रश्न टुंग्याउँछन्: सिमलिङ्कको लक्ष्य, र प्याकेज स्थापित तथा सक्रिय छ कि छैन। /run/systemd/resolve अन्तर्गतको लक्ष्य भनेको अर्कै ढाँचा हो, जहाँ तलका कुनै पनि लागू हुँदैनन्।

dpkg -l resolvconf | tail -1
ls -l /etc/resolv.conf
systemctl is-active resolvconf.service

यदि लिङ्क अन्तै देखाउँछ वा प्याकेज छैन भने यहीँ रोक्नुहोस्। नाम उधारो लिएको र अर्को रिजोल्भर प्रबन्धकले पुर्याएको अनुकूलता आवरण यो डाटाबेसको मालिक होइन।

डाटाबेसमा इनपुट हुन्छन्, उत्तर होइन

डाटाबेसमा इनपुट हुन्छन् र फाइल आउटपुट हो, त्यसैले हटाउन चाहेको प्रविष्टि कुन प्रोग्रामले स्थापित गर्यो भनी हेर्ने एक मात्र उपाय इनपुट सूचीबद्ध गर्नु हो। रेकर्ड छोटा हुन्छन्, र तिनका कुञ्जीहरू पछि चाहिने ह्यान्डल हुन्। कुन पुरानो हो भनी निर्णय गर्नुअघि ती पढ्नुहोस्, किनकि VPN इन्टरफेसजस्तो देखिने नाम अर्को क्लाइन्टको हुन सक्छ। निजी ठेगाना र आन्तरिक खोज डोमेन साझा निदानबाट बाहिर राख्नुहोस्; कुञ्जीले मात्र पनि प्रायः रेकर्ड पहिचान गर्छ।

sudo resolvconf --list
sudo resolvconf -i

पहिलो आदेशले आपूर्ति गरिएका रेकर्ड प्रशोधन नगरी छाप्छ, र दोस्रोले अहिले DNS कन्फिगरेसन दिने इन्टरफेस सूचीबद्ध गर्छ। कुञ्जीहरू परम्परागत रूपमा इन्टरफेस नाम र आपूर्ति गर्ने प्रोग्रामबाट बनाइन्छन्। resolvconf म्यानुअल ले ती कुञ्जीले सम्बोधन गर्ने डाटाबेसको वर्णन गर्छ।

कुञ्जी पुनः नबनाई आउटपुटबाट प्रतिलिपि गर्नुहोस्। पुरानो स्क्रिप्टले त्यो नाम प्रयोग गरेको मात्र कारणले प्रविष्टिलाई tun0 भनिँदैन।

रेकर्डको कुनै मालिक छैन भनी प्रमाणित गर्नुहोस्

कुनै जीवित जडानले स्थापित नगरेको रेकर्ड मेट्न सुरक्षित हुन्छ। कुञ्जीलाई त्यो बनाउने जडानसँग जोड्नुहोस्, त्यसपछि त्यो जडान गइसकेको पुष्टि गर्नुहोस्। त्यही सम्बन्ध नै सम्पूर्ण ढोका हो, र मेट्ने आदेशतिर जाँदा सबैभन्दा धेरै छुट्ने चरण त्यही हो। प्रमाण अस्पष्ट भए रेकर्डलाई जीवित मान्नुहोस् र रोक्नुहोस्।

प्रक्रियाका नाम कमजोर प्रमाण हुन्। OpenConnect ले vpnc-script लाई बोलाउँछ, त्यसैले vpnc प्रक्रियाको जाँचले कुन रेकर्ड हालको हो भन्ने केही बताउँदैन। नयाँ जडानले पुरानोले छाडेको इन्टरफेस नाम पुनः प्रयोग गर्न सक्छ, जसले कुञ्जीलाई वास्तविक उमेरभन्दा पुरानो देखाउँछ। रेकर्डभित्रको सर्भर ठेगानालाई अझै चालु सुरुङहरूको ठेगानासँग तुलना गर्नुहोस्, र मिलेमा रोक्नुहोस्।

मालिक प्रबन्धकमार्फत सामान्य विच्छेद पहिलो उपाय हो। यसले त्यो जडानले स्थापित गरेको फिर्ता लिन्छ र अरू आपूर्तिकर्तालाई छुँदैन।

हटाउने र पुनर्लेखन जाँच्नुहोस्

रेकर्ड पुरानो भएको पुष्टि भएपछि ठ्याक्कै कुञ्जीले मेट्नुहोस् र त्यसपछि अनुमान नगरी नतिजा पढ्नुहोस्। यो आदेशले होस्टका हरेक अनुप्रयोगको रिजोल्भर स्थिति बदल्छ, त्यसैले आफैँ नियन्त्रण गर्ने विन्डोमा चलाउनुहोस्। कुञ्जीलाई उद्धरण चिन्हभित्र राख्नुहोस्, किनकि यसमा शेलले विस्तार गर्ने अक्षरहरू छन्। ब्लकको प्लेसहोल्डरले तपाईंले सूचीबाट प्रतिलिपि गरेको कुञ्जी जनाउँछ, शाब्दिक स्ट्रिङ होइन।

sudo resolvconf -d "RECORD_KEY_FROM_THE_LIST"
sudo resolvconf --list
resolvectl query host.corp.example || getent hosts host.corp.example

अद्यावधिक सक्षम हुँदा मेटाइले अद्यावधिक स्क्रिप्ट चलाउँछ; अद्यावधिक अक्षम हुँदा यसले अद्यावधिक स्थगित गर्छ, त्यसैले हटाइएको रेकर्ड र पुनः लेखिएको फाइल दुई छुट्टै घटना हुन्। फाइल हेर्नुअघि सूची फेरि पढ्नुहोस् र कुञ्जी गइसकेको पुष्टि गर्नुहोस्। त्यसपछि बाँकी आपूर्तिकर्तामार्फत अझै विश्लेषण हुनुपर्ने एउटा नाम र एउटा सार्वजनिक नाम सोध्नुहोस्, र दुवैलाई परिवर्तनअघि देखेको कुरासँग तुलना गर्नुहोस्। निजी नाम पूरै विश्लेषण हुन छाड्यो भने त्यो रेकर्डले अझै त्यो बोकेको थियो।

resolvconf -u ले ती अद्यावधिक स्क्रिप्ट मात्र चलाउँछ। यसले कहिल्यै पुरानो रेकर्ड पहिचान वा मेट्दैन, र पुराना इनपुटबाट पुनः बनाउँदा त्यही अनावश्यक फाइल फेरि उत्पन्न हुन्छ।

मारिएको विच्छेद हुकले रेकर्ड पछाडि छाड्छ

एकपटकको सफाइले आजको स्थिति पुनःस्थापित गर्छ, र अर्को अवरुद्ध शटडाउनले रेकर्ड फेरि ल्याउँछ। विघटनको बाटो हिँड्नुहोस्: क्लाइन्टको विच्छेद हुक, त्यो हुकले बोलाउने सहायक, र तीमध्ये कुनै मारिँदा के हुन्छ। अवरुद्ध शटडाउन सामान्य कारण हो, किनकि हुक नै चलेको थिएन। हुकको निकास स्थिति एकपटक लग गर्नुहोस् र यो चुपचाप असफल हुँदैछ कि भन्ने थाहा पाउनुहुनेछ।

सेटअप र सफाइ एउटै मालिकको अधीनमा राख्नुहोस्। इन्टरफेस नाम अनुमान गर्ने दोस्रो स्क्रिप्टले अन्ततः अर्को जडानको रेकर्ड मेटाउनेछ, जुन तपाईंले सुरु गरेको पुरानो प्रविष्टिभन्दा नराम्रो हो। रेकर्ड कहिले पुरानो हुन्छ भन्ने पनि मालिकले नै तय गर्नुपर्छ, किनकि कुन जडानले स्थापित गर्यो भन्ने उसलाई थाहा हुन्छ।

त्यसपछि जीवनचक्र अभ्यास गर्नुहोस्: जडान गर्नुहोस्, विच्छेद गर्नुहोस्, रेकर्ड फेरि सूचीबद्ध गर्नुहोस्। प्रविष्टि आफैँ हराउनु नै मर्मत टिक्छ भन्ने एक मात्र प्रमाण हो।

सम्बन्धित लेखहरू