स्प्लिट टनलिंग कैसे तय करती है कि कौन-सा ट्रैफ़िक VPN का उपयोग करता है
स्प्लिट टनलिंग मार्ग और बाइंडिंग से जुड़े फ़ैसलों का एक समूह है, कोई ऐसा मोड नहीं जिसे आप चालू करते हैं। देखें कि प्रति-ऐप नियम, प्रीफ़िक्स, DNS और किल स्विच कैसे मिलकर काम करते हैं।
स्प्लिट टनलिंग नियमों के एक समूह के रूप में व्यक्त एक रूटिंग नीति है, और क्लाइंट केवल वह चीज़ है जो उन्हें इंस्टॉल करता है। अलगाव दो जगहों पर होता है: हर पैकेट के लिए रास्ता चुनने वाले मिलान नियम, और ऐसे बाइंडिंग जो टेबल कुछ भी कहे, किसी ऐप को एक इंटरफ़ेस पर रखते हैं। आपका क्लाइंट किस तंत्र पर निर्भर है, यही उन ज़्यादातर हैरानियों को समझाता है जिनकी लोग रिपोर्ट करते हैं।
एक पंक्ति में कही जा सकने वाली नीति जाँची जा सकती है। तेज़ ब्राउज़िंग बताई गई नीति ऐसी नहीं है, और जब कोई अनुरोध गलत रास्ते से जाए तो वह नहीं बताएगी कि कौन-सा नियम बदलना है।
क्लाइंट नियम इंस्टॉल करता है, कर्नेल चुनाव करता है
जब टनल ऊपर आती है, क्लाइंट आपके दूसरे इंटरफ़ेसों द्वारा उपयोग की जाने वाली उसी टेबल में रूट और अकसर नीति नियम जोड़ता है। फिर हर पैकेट ऐसी खोज तक पहुँचता है जो उसके गंतव्य की तुलना हर उम्मीदवार प्रीफ़िक्स से करती है और सबसे विशिष्ट मिलान रखती है, जबकि प्राथमिकता अलग-अलग टेबल की ओर इशारा करने वाले नियमों के बीच बराबरी तय करती है। उस खोज में कुछ भी नहीं जानता कि पैकेट बैकअप काम के बजाय ब्राउज़र टैब से आया है। जो नियम जीतता है वही रास्ता तय करता है, और आप उसे बदलाव से पहले और बाद में पढ़ सकते हैं।
इसलिए स्प्लिट टनल मनमानी लग सकती है। एक ही ऐप में दो गंतव्य अलग रास्ते ले सकते हैं, बस इसलिए कि एक प्रीफ़िक्स दूसरे से संकरा है।
हर प्लेटफ़ॉर्म पर वही चुनाव मौजूद है, हालाँकि नाम बदल जाते हैं। Windows फ़ैसला अपने फ़िल्टर प्लेटफ़ॉर्म में धकेलता है, Android अपनी VPN सेवा के ज़रिए प्रति-ऐप अनुमति-सूची दिखाता है, और macOS टनल को ऐसे उपकरण से जोड़ता है जो अब भी रूटिंग टेबल मानता है। Microsoft के रूटिंग नोट्स Windows के मामले में पढ़ने लायक हैं, और एक प्लेटफ़ॉर्म के लिए लिखी गाइड शायद ही बिना बदलाव के दूसरे पर जाती है।
प्रति-ऐप बाइंडिंग और गंतव्य प्रीफ़िक्स अलग औज़ार हैं
गंतव्य नीति पूछती है कि पैकेट कहाँ जा रहा है और रूट टेबल या नीति नियम से सलाह लेती है। प्रति-ऐप नीति पूछती है कि किस प्रोग्राम ने सॉकेट खोला, और प्लेटफ़ॉर्म उस प्रोग्राम को टनल इंटरफ़ेस पर रखता है तब भी जब कोई ज़्यादा विशिष्ट रूट कहीं और इशारा करता हो। दूसरी ज़्यादा मज़बूत है क्योंकि वह टेबल बदलावों में टिकती है, पर वह केवल उन्हीं प्रक्रियाओं को ढकती है जिन्हें प्लेटफ़ॉर्म श्रेय दे सकता है। कोई सहायक प्रक्रिया, एम्बेडेड ब्राउज़र, या अपना कनेक्शन खोलने वाली सेवा उस बाइंडिंग को विरासत में न पाए जिसकी आपने अपेक्षा की।
नाम-आधारित नीति में कोई भी दृष्टिकोण मदद के बिना नहीं टिकता। बड़ी साइटों के पते कंटेंट नेटवर्क में घूमते रहते हैं, इसलिए किसी होस्टनाम को कुछ प्रीफ़िक्स पर पिन करने से ऐसा नियम बनता है जो चुपचाप मिलना बंद कर देता है। जिस नीति को नामों का पीछा करना है उसे स्थिर रूट के बजाय रिज़ॉल्वर-सचेत घटक चाहिए।
DNS और किल स्विच अपने नियमों का पालन करते हैं
नाम हल करना पैकेट रूटिंग से अलग फ़ैसला है, और स्प्लिट टनल को आम तौर पर दो रिज़ॉल्वर चाहिए: आंतरिक नामों के लिए कंपनी का, बाकी सब के लिए स्थानीय। क्लाइंट प्रति-इंटरफ़ेस DNS सेटिंग्स इंस्टॉल कर सकता है, क्वेरी किसी मध्यस्थ रिज़ॉल्वर को दे सकता है, या सिस्टम डिफ़ॉल्ट को अछूता छोड़ सकता है। अपने एन्क्रिप्टेड रिज़ॉल्वर वाला ब्राउज़र तीनों व्यवस्थाओं को बचा जाता है। यह मानने के बजाय कि रिज़ॉल्वर ने रूट का पालन किया, एक लुकअप जाँचें।
किल स्विच ऊपर एक फ़िल्टर जोड़ता है, और वह फ़िल्टर हमेशा इच्छित बहिष्करण को आकस्मिक लीक से नहीं अलग करता। कुछ क्लाइंट टनल के बाहर सब कुछ ब्लॉक करते हैं जबकि अन्य नीति में घोषित बहिष्करणों की अनुमति देते हैं, इसलिए किसी एक पर भरोसा करने से पहले पढ़ें कि आपका कौन-सा व्यवहार लागू करता है।
दोनों तरफ़ से अलगाव जाँचें
शामिल रास्ते और बहिष्कृत रास्ते को अलग-अलग जाँचें, और नतीजे का फ़ैसला इंटरफ़ेस नाम से करें, किसी सार्वजनिक पते से नहीं। ये कमांड मानते हैं कि Linux होस्ट पर टनल उपकरण पहले से ऊपर है। 203.0.113.10 को ऐसे गंतव्य से बदलें जिसे आपकी नीति अंदर की ओर रूट करती है, और 198.51.100.25 को ऐसे से जिसे वह बाहर भेजती है।
ip route get 203.0.113.10
ip route get 198.51.100.25
resolvectl query intranet.example.com
curl -s --interface tun0 https://example.com -o /dev/null -w '%{http_code}\n'
पहले दो जवाब साथ पढ़ें, क्योंकि हर एक में नामित इंटरफ़ेस दिखाता है कि अलगाव ने उस गंतव्य को टनल पर रखा या नहीं। रिज़ॉल्वर क्वेरी दिखाती है कि किस सर्वर ने आंतरिक नाम का जवाब दिया, और आखिरी कमांड साबित करता है कि टनल उपकरण बुनियादी तौर पर अनुरोध ढो सकता है। पहली पंक्ति सफल होते समय दूसरी में विफलता का मतलब है कि नीति ठीक वही कर रही है जो उसे कहा गया था।
फिर से जुड़ने के बाद और नेटवर्क बदलाव के बाद समूह दोहराएँ। लीज़ नवीनीकरण और इंटरफ़ेस की उठा-पटक वही जगहें हैं जहाँ अलगाव उस इरादे से मेल खाना बंद कर देता है जिसके लिए वह बनाया गया, और हर बार के सहेजे गए आउटपुट से बहाव साफ़ हो जाता है।