VPN को DNS ले हरेक लुकअप लिन्छ: NetworkManager मा dns-priority ठीक गर्नुहोस्
VPN जडानले पूर्वनिर्धारित रूपमा प्राथमिकता 0 राख्छ र हरेक डोमेन दाबी गर्छ। क्रमका लागि ऋणात्मक प्राथमिकता सेट गर्नुहोस्, त्यसपछि बाँकी फर्काउन राउटिङ डोमेन प्रयोग गर्नुहोस्।
अफिसको VPN मा जोडिनुहोस् र अचानक हरेक नाम लुकअप कर्पोरेट रिजोल्भरमा जान्छ। सार्वजनिक नामहरू अझै हल हुन्छन्, त्यसैले स्थानीय प्रिन्टरको नाम असफल नहुँदासम्म वा split-horizon रेकर्डले अफिसको ठेगाना नफर्काउँदासम्म केही बिग्रेको देखिँदैन। केही Fedora सेटअपमा उल्टो हुन्छ: टनेल माथि आएपछि पनि ISP रिजोल्भरले जवाफ दिइरहन्छ। दुवै एउटै प्रश्न हुन् — यो क्वेरी कुन रिजोल्भरको स्वामित्वमा छ — र NetworkManager प्रणालीमा जवाफ हरेक जडानको DNS गुणहरूमा बस्छ।
दुई जडान, एउटा जित्ने रिजोल्भर
हरेक जडानले DNS प्राथमिकता घोषणा गर्छ। सामान्य जडान पूर्वनिर्धारित रूपमा 50 मा र VPN जडान 0 मा हुन्छन्, र कम मान जित्छ। यही पूर्वनिर्धारण कारण हो कि VPN जडानले दाबी गरेको हरेक डोमेनका लागि तारको लिंकलाई चुपचाप उछिन्छ: कसैले नछान्दै शून्यले पचासलाई हराउँछ।
प्राथमिकताले उम्मेदवारहरूलाई क्रममा राख्छ। विजेतालाई के सोध्ने भन्ने कुरा यसले सीमित गर्दैन। खोज डोमेन नभएको VPN जडानले सबै दाबी गर्छ, त्यसैले यसलाई प्राथमिकता दिँदा सार्वजनिक क्वेरी पनि टनेलभित्र जान्छन् र स्प्लिट-टनेल डिजाइनमा कर्पोरेट रिजोल्भरले फर्वार्ड गर्ने ठाउँमा पनि जान्छन्।
प्राथमिकताले क्रम, खोज सूचीले स्वामित्व निर्धारण गर्छ
nmcli -f connection.id,ipv4.dns,ipv4.dns-search,ipv4.dns-priority con show "Corp VPN"
resolvectl status
readlink -f /etc/resolv.conf
खोज सूची स्वामित्वको घोषणा हो। corp.example जस्तो नाङ्गो डोमेन खोज प्रत्यय र राउटिङ डोमेन बन्छ। केवल-राउटिङ रूप ~corp.example ले त्यो प्रत्ययअन्तर्गतका लुकअपहरू डोमेनलाई छोटो नाममा नजोडी यो जडानमा पठाउँछ। त्यो टिल्डा नै «यो सर्भरलाई सोध» र «यो सर्भरलाई सोध र मेरो टाइपिङ सकाइदे» बीचको फरक हो।
प्रयोगकर्ताले छोटो होस्टनाम टाइप गर्दा र रेकर्ड पूर्ण रूपमा योग्य नामहरूले पनि सम्बोधन गरिँदा दुवै रूप प्रयोग गर्नुहोस्। रिजोल्भरले नाङ्गो नाम कसरी पूरा गर्छ भन्ने नबदली विभाजन चाहिएमा मात्र राउटिङ रूप प्रयोग गर्नुहोस्।
त्यसपछि प्राथमिकता स्पष्ट पार्नुहोस् र फेरि सक्रिय गर्नुहोस्:
nmcli con modify "Corp VPN" ipv4.dns-priority -100
nmcli con modify "Corp VPN" ipv6.dns-priority -100
nmcli con modify "Corp VPN" ipv4.dns-search "~corp.example,corp.example"
nmcli con up "Corp VPN"
ऋणात्मक प्राथमिकता «यो जडानलाई प्राथमिकता देऊ» भन्ने अभिलेखित तरिका हो, र दुवै ठेगाना परिवार सेट गर्दा IPv6 जडान भएको होस्टमा व्यवहार एकरूप रहन्छ। जडान फेरि सक्रिय नगरी गुण परिवर्तन गर्दा अहिले चलिरहेको केही पनि परिवर्तन हुँदैन, त्यसैले क्रम स्पष्ट up मा टुंगिन्छ।
विभाजन systemd-resolved ले राखोस्
पूर्वनिर्धारित dnsmasq प्लगइनले क्वेरीहरू एउटै स्थानीय रिजोल्भरमा खन्याउँछ, त्यसैले प्रति-लिंक छुट्याइँ ओबो रहन्छ। systemd-resolved ले हरेक लिंकको विभाजन देखाउँछ, र resolvectl query ले जवाफ दिएको लिंकको नाम बताउँछ।
systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved NetworkManager
resolvectl query build.corp.example
त्यसपछि कर्पोरेट लिंकले corp.example बोक्छ र सार्वजनिक रिजोल्भरले बाँकी सेवा गर्छ। क्वेरी गलत लिंकमा पुग्दा आदेशले त्यसलाई जवाफ दिएको लिंकको नाम बताउँछ, र त्यो जान्नु ठेगाना मात्र जान्नुभन्दा राम्रो हो।
DNS डिजाइनलाई टनेल प्रकारसँग मिलाउनुहोस्
सबै कुरा टनेलबाट पठाउने गोपनीयता डिजाइनहरूले विभाजन सूची राख्नु हुँदैन, किनकि यसले सार्वजनिक नामहरू स्थानीय रिजोल्भरलाई फर्काइदिन्छ र उद्देश्य रद्द गर्छ। स्प्लिट-टनेल डिजाइनलाई यो चाहिन्छ: यो नभए कर्पोरेट रिजोल्भरले हरेक सार्वजनिक क्वेरी देख्छ, र टनेल खस्ने क्षणमै सेटअप भाँचिन्छ।
त्यसपछि टनेलबाहिरको DNS अवरुद्ध गर्ने kill switch छ। टनेलका जोनहरूका लागि नाम हल हुन्छन् र बाँकी सबै ठाउँमा असफल हुन्छन् जबकि जडान पूर्ण रूपमा स्वस्थ हुन्छ। व्यवहार्य जवाफहरू LAN रिजोल्भरका लागि स्पष्ट अनुमति वा कर्पोरेट जोन मात्र फर्वार्ड गर्ने स्थानीय क्यास हुन्, र दुवैमध्ये कुनै पनि टनेलको त्रुटि नभई मालिक भएको अपवाद हो।
इन्टरफेस सुरु हुँदा रिजोल्भर कन्फिगरेसन पुनः लेख्ने प्रोफाइल पनि लगभग त्यसै गरी व्यवहार गर्छ: स्थानीय रिजोल्भर पहुँचबाहिर भएपछि टनेलले जानेका नाम मात्र हल हुन्छन्। जुनसुकै कार्यविधि लागू होस्, प्रत्येक अवस्थामा कुन नामहरू काम गर्नुपर्छ लेख्नुहोस्, र त्यो सूची प्रतिवेदन सम्हाल्ने व्यक्तिलाई दिनुहोस्।
हरेक लिंकमा जाँच्नुहोस्, त्यसपछि पुनः जोडिएपछि फेरि जाँच्नुहोस्
एउटा आन्तरिक र एउटा सार्वजनिक नाम सोध्नुहोस्, र क्वेरी वास्तवमा कहाँ जान्छ हेर्नुहोस्। चुहावट जाँच पृष्ठले कुन रिजोल्भरले जवाफ दियो भन्छ, प्रणालीले कुन लिंक छान्यो भन्दैन, त्यसैले तपाईंले भर्खरै कन्फिगर गरेको क्रमबारे यसले केही भन्दैन।
डिस्कनेक्ट र पुनः जडान गरेपछि दुवै क्वेरी फेरि चलाउनुहोस्। जडान सक्रिय हुँदा प्राथमिकताहरू फेरि लागू हुन्छन्, र पुरानो सिम्बोलिक लिंक कसैले सम्झना नगरेको अपग्रेडबाट पनि बाँच्न सक्छ। अन्त्यमा तपाईं लेखेर राख्न चाहनुभएको कुरा हो — कुन रिजोल्भर कुन प्रत्ययको मालिक हो, साथै भोलि पनि मान्य रहने जाँच।