दो VPN इस्तेमाल करना एक अनुरोध नहीं है। इसका मतलब दो संगठनों तक एक के बाद एक पहुँचना, काम और निजी ऐप को अलग रखना, या एक सुरंग को दूसरे के भीतर चलाना हो सकता है। Android इन तीनों स्थितियों को पूरी तरह अलग तरीकों से संभालता है, और फ़ोन पर इंस्टॉल किए गए VPN ऐप की संख्या वास्तुकला नहीं है। इन्हें अलग करने वाला सवाल सरल है: क्या एक ही ऐप के लिए उसी पल दो पथ होने चाहिए?

तीन व्यवस्थाएँ, एक सवाल

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

बाकी सब उसी चुनाव से निकलता है। स्विचिंग में संक्रमण खिड़की होती है, अलगाव में नीति की सीमा होती है, और चेन में अतिरिक्त बोझ और निर्भरता की लागत होती है। गलत चुनाव सफ़ाई से विफल नहीं होता; यह ऐसा फ़ोन बनाता है जो जुड़ा दिखता है और ऐसा ऐप जो कहीं नहीं पहुँच पाता।

एक उपयोगकर्ता संदर्भ के भीतर स्विचिंग

Android प्रति उपयोगकर्ता एक सक्रिय VPN सेवा की अनुमति देता है। उसी संदर्भ में दूसरा VPN ऐप शुरू करने पर पहला बदल जाता है या सीधे अस्वीकार कर दिया जाता है; यह कभी दोनों रूट सेटों को नहीं जोड़ता, और निश्चित रूप से उनका एन्क्रिप्शन नहीं ढेर करता। एक उपयोगकर्ता के भीतर, दो सुरंगें एक क्रम हैं, योग नहीं।

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

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

प्रोफ़ाइल के अनुसार अलगाव

प्रबंधित कार्य प्रोफ़ाइल एक अलग उपयोगकर्ता है जिसके अपने ऐप, कीस्टोर और नेटवर्क नीति होती है। कार्य ईमेल क्लाइंट संगठन की सुरंग इस्तेमाल कर सकता है जबकि निजी ब्राउज़र निजी सुरंग इस्तेमाल करता है, और दोनों एक ही समय जुड़े रह सकते हैं क्योंकि वे एक ही संदर्भ में जगह के लिए होड़ नहीं कर रहे।

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

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

चेन, जहाँ क्रम ही डिज़ाइन है

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

समझें कि कौन क्या देखता है। बाहरी प्रदाता आंतरिक एंडपॉइंट की ओर एक कनेक्शन देखता है। आंतरिक प्रदाता बाहरी एग्ज़िट से फ़ोन का ट्रैफ़िक लेता है और उसे आगे भेजता है। अंतिम गंतव्य आम तौर पर आंतरिक सेवा का एग्ज़िट देखता है, और श्रृंखला में कोई भी प्रदाता अंधा नहीं है; ऐप खाते पथ चाहे जो हो उपयोगकर्ता की पहचान फिर भी करते हैं।

व्यावहारिक लागत की अपेक्षा करें। हर परत एनकैप्सुलेशन जोड़ती है, इसलिए प्रभावी MTU गिरता है और एक सुरंग के लिए ठीक रहा मान अब विखंडित होता है या अटकता है जब तक भीतरी सुरंग का MTU रूढ़िवादी रूप से सेट न हो जाए। दो परतों का अर्थ दो विफलता-निर्भरताएँ और दो कीपअलाइव संदेश-समुच्चय भी है, और हानि वाले बाहरी लिंक पर TCP-आधारित भीतरी सुरंग ऐसे अटक सकती है जो मृत सर्वर जैसा लगे।

सबसे महत्वपूर्ण, चेन दो निजी नेटवर्क को मिलाती नहीं। रूट, अतिव्यापी प्रीफ़िक्स, DNS हल और प्रवेश नियम अलग निर्णय ही रहते हैं, और एक VPN ढोता राउटर जबकि फ़ोन दूसरा ढोता है, फ़ोन को दोनों पता-स्थान नहीं देता।

डिबग करने से पहले डिज़ाइन जाँचें

व्यवस्था को एक वाक्य में लिखें और जो ऐप विफल हुआ उसके सामने उसे परखें। क्रमिक पहुँच को एक बार में एक सुरंग दिखानी चाहिए; प्रोफ़ाइल अलगाव को हर ऐप को उसके अपने उपयोगकर्ता में दिखाना चाहिए; चेन को दिखाना चाहिए कि भीतरी सुरंग भौतिक के बजाय बाहरी इंटरफ़ेस पर स्थापित हो रही है।

adb shell ip -br addr
adb shell ip route get 10.20.0.8
adb shell dumpsys connectivity | grep -i vpn

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

संबंधित लेख