Apple के दो शब्द ऐसे प्रयोग होते हैं जैसे वे एक ही चीज़ का नाम हों, और यह भ्रम लोगों को गलत सेटिंग्स पैनल पर भेजता है। Network Extension एक क्षमता का वर्णन करता है: VPN सुरंगों, प्रॉक्सी और फ़िल्टर लागू करने का समर्थित तरीका। System Extensions उपयोगकर्ता स्थान के एक्सटेंशन के लिए वितरण और स्वीकृति तंत्र का वर्णन करता है। आधुनिक Mac VPN क्लाइंट को आमतौर पर दोनों की ज़रूरत होती है, इसलिए कोई भी एक लेबल अकेले लक्षण नहीं समझाता। दोनों को अलग करने से पता चलता है कि किस घटक की जाँच करनी है और किस स्वीकृति चरण की अपेक्षा करनी है।

दो सवाल, एक लेबल नहीं

घटक कैसे इंस्टॉल होता है, यह पूछने से पहले पूछें कि वह क्या करता है। क्षमता तय करती है कि कौन-सा प्रदाता वर्ग मौजूद है और इसलिए कौन-सा कोड आपके पैकेट संभालता है। वितरण तंत्र तय करता है कि बाइनरी कैसे आती है, उसे कैसे स्वीकृति मिलती है और उसकी स्थिति कहाँ दर्ज होती है। कोई उत्पाद पुराने संस्करणों पर सिस्टम एक्सटेंशन वितरित किए बिना पैकेट सुरंग लागू कर सकता है, और वह ऐसा सिस्टम एक्सटेंशन भी वितरित कर सकता है जो सुरंग के अलावा कुछ और लागू करता है।

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

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

Network Extension क्या प्रदान करता है

फ़्रेमवर्क सामान्य नेटवर्किंग कार्यों के लिए प्रदाता प्रकार देता है: VPN ट्रैफ़िक के लिए पैकेट सुरंग, प्रति-एप्लिकेशन प्रवाह के लिए ऐप प्रॉक्सी, ट्रैफ़िक की जाँच के लिए सामग्री फ़िल्टर और रिज़ॉल्वर व्यवहार के लिए DNS प्रॉक्सी प्रबंधन। प्रदाता प्रकार तय करता है कि एक्सटेंशन क्या कर सकता है, और दो प्रदाता वितरित करने वाला क्लाइंट दो अलग काम कर रहा हो सकता है।

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

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

System Extensions क्या बदलता है

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

स्थिति ऐप नहीं बल्कि सिस्टम दर्ज करता है, जो उपयोगी है क्योंकि उसे पूछा जा सकता है। नीचे का कमांड उन एक्सटेंशन की सूची देता है जिन्हें सिस्टम जानता है और उनकी सक्रियण स्थिति।

systemextensionsctl list
scutil --nc list

पहला कमांड बताता है कि घटक इंस्टॉल और सक्रिय है या नहीं। दूसरा सिस्टम के पास मौजूद VPN कॉन्फ़िगरेशन की सूची देता है, जो अलग सवाल है और अक्सर वही मायने रखता है जब कनेक्शन प्रोफ़ाइल टूटा नहीं बल्कि गायब हो।

किसी दिए गए लक्षण के लिए किसकी जाँच करें

सेटिंग्स पैनल खोलने से पहले लक्षण को परत से मिलाएँ। गायब कॉन्फ़िगरेशन प्रोफ़ाइल का सवाल है, इंस्टॉल पर निष्क्रिय घटक वितरण का सवाल है, और ट्रैफ़िक पार न कर सकने वाला सक्रिय घटक क्षमता का सवाल है।

SymptomFirst place to look
No VPN entry at allConfiguration profile or scutil list
Client installed, nothing happensExtension activation state
Tunnel up, private host unreachableTunnel provider routes and policy
One app blocked, others fineFilter or app proxy provider

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

log show --last 10m --predicate 'process == "nesessionmanager"'

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

स्वीकृति, MDM और कर्नेल एक्सटेंशन का मिथक

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

अप्रबंधित Mac पर स्वीकृति संकेत एक बार दिखता है और एक्सटेंशन दोबारा इंस्टॉल होने तक अस्वीकृति स्थायी हो सकती है। यह व्यवहार उस मशीन को समझाता है जहाँ क्लाइंट OS अपग्रेड से पहले काम करता था और अब ऐसे कनेक्शन की रिपोर्ट करता है जो कभी स्थापित नहीं होता।

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

संबंधित लेख