स्प्लिट टनेलिंग कोणता रहदारी 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'
पहिली दोन उत्तरे एकत्र वाचा, कारण प्रत्येकात नमूद केलेला इंटरफेस ते गंतव्य टनेलवर ठेवले का हे दाखवतो। रिझॉल्वर क्वेरी अंतर्गत नावाला कोणत्या सर्व्हरने उत्तर दिले हे दाखवते, आणि शेवटचा आदेश टनेल उपकरण विनंती वाहून नेऊ शकते हे सिद्ध करतो। पहिली ओळ यशस्वी होत असताना दुसऱ्या ओळीत अपयश म्हणजे धोरणाला सांगितलेले तेच करत आहे।
पुन्हा जोडल्यानंतर आणि नेटवर्क बदलल्यानंतर संच पुन्हा चालवा। लीज नूतनीकरण आणि इंटरफेसची उलथापालथ ही अशी ठिकाणे आहेत जिथे विभाजन ज्या हेतूने बांधले त्या हेतूशी जुळणे थांबवते, आणि प्रत्येक रनचे जतन केलेले आउटपुट विचलन स्पष्ट करते।