अधिकतर लोगों से पूछें कि VPN क्लाइंट DNS के साथ क्या करता है और वे कहेंगे कि वह रिज़ॉल्वर सेट करता है, इसलिए क्वेरी टनल के भीतर यात्रा करती हैं। धकेलना असली है; यह मान नहीं कि वह क्वेरी बन जाता है। धकेले गए विकल्प और तार पर मौजूद पैकेट के बीच तीन चरण हैं, और हर एक स्वतंत्र रूप से ऐसे विफल होता है कि सब कुछ टूटे DNS सर्वर जैसा दिखता है। इसीलिए एक लीक-टेस्ट पेज और काम करता ब्राउज़र एक ही पल में एक ही मशीन के बारे में अलग हो सकते हैं।

धकेला गया विकल्प क्वेरी नहीं है

पहला चरण है सर्वर का सेटिंग्स देना, जैसे टनल के भीतर किसी रिज़ॉल्वर का नाम बताता धकेला गया DNS विकल्प। दूसरा चरण है क्लाइंट का उन सेटिंग्स को इंटरफ़ेस पर लागू करना। तीसरा चरण है किसी एप्लिकेशन का वाकई उस पते पर क्वेरी भेजना। दूसरे चरण में विफलता विकल्प को कनेक्शन लॉग में दिखाई देता छोड़ देती है जबकि रिज़ॉल्वर सूची अपरिवर्तित रहती है, और तीसरे चरण में विफलता पूरी तरह सही रिज़ॉल्वर सूची को अप्रयुक्त छोड़ देती है।

अधिकतर समस्या-निवारण उन तीनों को एक में मिला देता है और VPN सर्वर को दोष देता है, जो आमतौर पर एकमात्र पक्ष है जो साबित कर सकता है कि उसने अपना हिस्सा किया। इसके बजाय क्लाइंट की वास्तविक रिज़ॉल्वर स्थिति पढ़ें, फिर एक क्वेरी को निकलते देखें। वे दो अवलोकन कॉन्फ़िगरेशन को राउटिंग से और नीति से अलग करते हैं, और उनमें लगभग पाँच मिनट लगते हैं। कैप्चर रखें, क्योंकि अगला इंजीनियर उनका वर्णन नहीं बल्कि पहले और बाद चाहता है।

देखें इंटरफ़ेस वाकई क्या रखता है

Linux में सिस्टम रिज़ॉल्वर सादी फ़ाइल, NetworkManager या systemd-resolved हो सकता है, और इनमें से कौन उसका मालिक है यह तय करता है कि धकेला गया सर्वर कहाँ पहुँचता है। कमांड-लाइन OpenVPN प्रक्रिया स्वयं सिस्टम रिज़ॉल्वर को अद्यतन नहीं करती, इसलिए प्रलेखित एकीकरण एक up/down स्क्रिप्ट या ऐसा कनेक्शन मैनेजर है जो पहले से जानता है कि सेटिंग्स कैसे लागू करनी हैं। दोनों चलाना रेस बनाने का कारगर तरीका है।

resolvectl status
cat /etc/resolv.conf

Windows में सूची प्रति एडाप्टर है, इसलिए टनल एडाप्टर आंतरिक सर्वर रख सकता है जबकि फ़िज़िकल एडाप्टर स्थानीय वाले रखता है और कुछ नामों के लिए जीत जाता है। आप जिसे सक्रिय मानते हैं उसके बजाय दोनों एडाप्टरों की तुलना करें।

एक क्वेरी को मशीन से बाहर तक ट्रैक करें

दोनों इंटरफ़ेस एक साथ कैप्चर करें, फिर एक ऐसा नाम हल करें जिसे आंतरिक रिज़ॉल्वर इस्तेमाल करना चाहिए। वही कैप्चर जोड़ी उसका जवाब देती है जो कोई कॉन्फ़िगरेशन आउटपुट नहीं दे सकता।

sudo tcpdump -ni tun0 port 53
sudo tcpdump -ni any port 53

जो क्वेरी फ़िज़िकल इंटरफ़ेस पर दिखती है और टनल में कभी नहीं दिखती, उसका अर्थ है कि क्लाइंट ने गलत रिज़ॉल्वर चुना। जो क्वेरी दोनों में से किसी पर नहीं दिखती उसका अर्थ है कि एप्लिकेशन ने कैश से जवाब दिया, loopback पर सुनने वाले स्टब से पूछा, या एन्क्रिप्टेड रिज़ॉल्वर इस्तेमाल किया जिसका ट्रैफ़िक कभी पोर्ट 53 के रूप में नहीं दिखता। जवाब भी कैप्चर करें, केवल क्वेरी नहीं, क्योंकि टनल से निकलती क्वेरी को सार्वजनिक पते से जवाब मिलना उससे अलग खराबी है कि कोई जवाब ही न आए।

वह फ़ायरवॉल जो केवल अपना DNS स्वीकार करता है

व्यावसायिक क्लाइंट कभी-कभी अपनी फ़िल्टर चेन लगाते हैं। एक प्रलेखित पैटर्न क्लाइंट के अपने रिज़ॉल्वर तक DNS की अनुमति देता है और बाकी सारा UDP पोर्ट 53 ट्रैफ़िक फेंक देता है जो non-loopback इंटरफ़ेस छोड़ने की कोशिश करता है, जिसमें वह ट्रैफ़िक भी शामिल है जिसे उपयोगकर्ता ने जानबूझकर कहीं और रूट किया है। डेमन की क्वेरी बिना निशान गायब हो जाती हैं, जिसे फ़िल्टर नहीं बल्कि रिज़ॉल्वर विफलता के रूप में पढ़ा जाता है।

sudo iptables -S OUTPUT
sudo iptables -S | grep -i -E 'dns|53'

यदि आपके अपवाद से पहले कोई फेंकने वाला नियम मूल्यांकित होता है, तो बाद में जोड़ा गया नियम कभी नहीं पहुँचता, इसलिए इसे पहले स्थान पर डालें और गंतव्य को उसी रिज़ॉल्वर तक सीमित करें जो आप वाकई चाहते हैं।

sudo iptables -I OUTPUT 1 -p udp --dport 53 -d 172.20.8.1 -j ACCEPT

वह अपवाद नीति नहीं बल्कि निदान है। यदि विक्रेता का नियम जानबूझकर है, तो समर्थित मरम्मत यह है कि क्लाइंट को उस रिज़ॉल्वर की अनुमति देने के लिए कॉन्फ़िगर करें और निर्णय दर्ज करें, क्योंकि डाला गया नियम अगले क्लाइंट अपग्रेड तक नहीं टिकेगा।

लीक पेज क्यों दिखने से कम साबित करता है

लीक-टेस्ट पेज जो दिखाता है वह वह रिज़ॉल्वर है जिसने टेस्ट ऑपरेटर से बात की, न कि वह जिससे आपकी मशीन ने पूछा। बाहर की ओर रिकर्सन करने वाला स्थानीय फ़ॉरवर्डर उस पेज पर अपना निकास पता रखता है, और एन्क्रिप्टेड क्वेरी पेज को पूरी तरह खाली छोड़ सकती हैं। दोनों परिणाम गलत पढ़े जाते हैं, एक लीक के रूप में और दूसरा गारंटी के रूप में, और दोनों में से कोई भी पठन अवलोकन से नहीं निकलता।

बचाव योग्य सबूत कैप्चर है: इंटरफ़ेस, गंतव्य पता, जवाब और टाइमस्टैम्प। टनल ऊपर आने से पहले एक और बाद में एक लें, और अगली बार कोई नाम विफल होने पर उनकी तुलना करें। वह जोड़ी अगले व्यक्ति को यह भी बताती है कि खराबी रिज़ॉल्यूशन में थी, राउटिंग में या रिज़ॉल्वर की अपनी एक्सेस नीति में।

संबंधित लेख