आपकी Windows VPN रूट टेबल 0.0.0.0/1 और 128.0.0.0/1 क्यों दिखाती है
डिफ़ॉल्ट-गेटवे विकल्प एक नहीं, दो हाफ़-डिफ़ॉल्ट रूट जोड़ता है। क्लाइंट पर रूट जोड़ने या हटाने से पहले प्रीफ़िक्स, मीट्रिक और इंटरफ़ेस पढ़ें।
Windows VPN से कनेक्ट करें और रूट टेबल खोलें, दो प्रविष्टियाँ सामने आती हैं: 0.0.0.0/1 और 128.0.0.0/1। ये टाइपिंग की गलती नहीं हैं और डिफ़ॉल्ट रूट की जगह नहीं लेतीं। ये दिखें या नहीं, यह एक प्रोफ़ाइल विकल्प पर निर्भर करता है, और यह जोड़ी पूरा टनल बनाने का तरीका है, स्प्लिट-टनल सुविधा नहीं। एक भी पंक्ति बदलने से पहले विकल्प, प्रीफ़िक्स और इंटरफ़ेस को साथ पढ़ें।
डिफ़ॉल्ट-गेटवे विकल्प क्या इंस्टॉल करता है
सब कुछ टनल से भेजने वाला प्रोफ़ाइल विकल्प उन दो प्रीफ़िक्स को जोड़कर काम करता है। विकल्प हटाएँ तो वे गायब हो जाते हैं और केवल वह सबनेट कवर करने वाला रूट बचता है जो टनल एडाप्टर को दिया गया था। चेकबॉक्स जोड़ी को नियंत्रित करता है; यह एकल डिफ़ॉल्ट रूट को फिर से नहीं लिखता। इसीलिए टिक हटाने के बाद टेबल हटाने के बजाय आंशिक पुनर्लेखन जैसी दिखती है।
0.0.0.0/1 IPv4 स्पेस का निचला आधा और 128.0.0.0/1 ऊपरी आधा कवर करता है, इसलिए मिलकर वे हर यूनिकास्ट पते को कवर करते हैं। हर एक डिफ़ॉल्ट 0.0.0.0/0 से अधिक विशिष्ट है, यानी सबसे लंबे प्रीफ़िक्स की मिलान सामान्य ट्रैफ़िक को टनल में भेजती है जबकि भौतिक डिफ़ॉल्ट रूट जहाँ था वहीं रहता है। उस डिफ़ॉल्ट को रखना दिखावा नहीं है: एन्क्रिप्टेड पेलोड को लपेटने वाले पैकेट सर्वर के सार्वजनिक पते पर संबोधित होते हैं और उन्हें भौतिक एडाप्टर से बाहर जाना होता है। डिफ़ॉल्ट को विभाजित करने के बजाय बदल दें, और टनल का अपना परिवहन टनल में घुसने की कोशिश करेगा, जो कनेक्शन नहीं बल्कि लूप है।
इसलिए VPN एडाप्टर की ओर इशारा करता शाब्दिक 0.0.0.0/0 मिले तो रुकना चाहिए। नेटिव क्लाइंट आमतौर पर ऐसा नहीं लिखता, इसलिए मैन्युअल रूट या किसी अन्य क्लाइंट की कॉन्फ़िगरेशन ने आपकी पीठ पीछे टेबल बदल दी है। नीचे कुछ भी डीबग करने से पहले इसे खोजें।
गेटवे बचाने से टियरडाउन सस्ता है
एक के बजाय दो प्रविष्टियों के पक्ष में व्यावहारिक तर्क टियरडाउन है। कनेक्टेड रहते समय क्लाइंट के पास ठीक दो रूट होते हैं और डिस्कनेक्ट पर उन्हें हटा देता है, जो उस क्षण भौतिक एडाप्टर के पास है वह छोड़ देता है। जिस क्लाइंट ने एकल डिफ़ॉल्ट बदल दिया होता उसे पिछला गेटवे याद रखना पड़ता, और DHCP लीज़ बदलने के बाद वह अब मौजूद न रहने वाले गेटवे को बहाल कर सकता था। दो स्वामित्व वाली प्रविष्टियाँ ऐसी स्थिति नहीं रखतीं।
अन्य क्लाइंट भी इसी डिज़ाइन तक पहुँचते हैं। redirect-gateway def1 वाला OpenVPN प्रोफ़ाइल डिफ़ॉल्ट हटाने के बजाय वे दो प्रीफ़िक्स इंस्टॉल करता है, और Windows क्लाइंट उसी रूटिंग कारण से यही पैटर्न अपनाता है।
इसीलिए जब आप विभाजन की अपेक्षा करते हैं तब टेबल पूरा टनल जैसी दिख सकती है। जोड़ी पूरा टनल बनाने का तरीका है, स्प्लिट-टनल गलती का प्रमाण नहीं। अगर प्रोफ़ाइल दूरस्थ गेटवे के उपयोग पर सेट है, तो सब कुछ रूट होता है, एक स्थानीय एप्लिकेशन जो भी पहुँच पाए।
सबसे लंबा प्रीफ़िक्स किसी भी मीट्रिक से पहले जीतता है
प्रीफ़िक्स की लंबाई किसी भी अन्य फ़ील्ड से पहले लुकअप तय करती है। मीट्रिक केवल समान प्रीफ़िक्स वाले रूटों के बीच बराबरी तोड़ता है, इसलिए /1 प्रविष्टि खराब मीट्रिक होने पर भी /0 डिफ़ॉल्ट को हरा देती है। इंटरफ़ेस बाइंडिंग तय करती है कि जब दो रूट एक प्रीफ़िक्स साझा करें और Windows को चुनना हो कि कौन सा एडाप्टर पैकेट भेजेगा तब क्या बचता है।
route print -4
Get-NetRoute -AddressFamily IPv4 | Sort-Object DestinationPrefix
Find-NetRoute -RemoteIPAddress 10.50.5.20
स्प्लिट-टनल टेबल में भौतिक डिफ़ॉल्ट, दो हाफ़-डिफ़ॉल्ट, टनल सबनेट का रूट और आपके द्वारा जोड़ा गया कोई भी ऑफ़िस प्रीफ़िक्स होता है। क्लाइंट और प्रोफ़ाइल के अनुसार भौतिक डिफ़ॉल्ट निम्न या उच्च मीट्रिक पर हो सकता है, और जब तक /1 जोड़ी है वह अंतर कुछ नहीं बदलता। जोड़ी हटते ही सब कुछ बदल जाता है, तभी पुराना गेटवे या गलत इंटरफ़ेस सामने आता है। पूरी टेबल पढ़ें, न कि वह एक पंक्ति जिसे आप बदलने की अपेक्षा कर रहे थे।
ऑफ़िस प्रीफ़िक्स के लिए एक स्वामी चुनें
स्प्लिट टनल के लिए केवल उस प्रीफ़िक्स का नाम दें जिसे VPN का उपयोग करना है, और उसके स्वामित्व का एक तरीका चुनें। रूट को सौंपे गए टनल पते की ओर इंगित करना तब तक काम करता है जब तक वह पता नहीं बदलता, जबकि इंटरफ़ेस से बाइंडिंग पते के बदलाव को झेल जाती है पर प्रोफ़ाइल के पुनर्निर्माण के बाद इंडेक्स फिर से सौंपे जाने पर टूट जाती है। प्रोफ़ाइल-बाउंड cmdlet दोनों समस्याओं से बचता है, कीमत यह है कि प्रोफ़ाइल चाहिए।
route -p add 10.50.0.0 mask 255.255.0.0 172.16.8.1
route -p add 10.50.0.0 mask 255.255.0.0 0.0.0.0 IF 31
Add-VpnConnectionRoute -ConnectionName Office -DestinationPrefix 10.50.0.0/16
cmdlet प्रीफ़िक्स को नामित प्रोफ़ाइल से बाँधता है, इसलिए रूट कनेक्शन के साथ दिखता है और उसके साथ जाता है, जो प्रबंधित लैपटॉप चाहता है। लगातार रूट रीबूट के बाद भी टिकता है और उस प्रोफ़ाइल के बाद भी टिकता है जिसने उसे प्रेरित किया, इस तरह सेवानिवृत्त VPN वर्षों तक प्रविष्टियाँ छोड़ देता है। प्रत्येक प्रीफ़िक्स के लिए एक तरीका चुनें और चयन लिख लें, क्योंकि एक ही प्रीफ़िक्स के लिए लगातार रूट और प्रोफ़ाइल रूट मिलकर ऐसी डुप्लिकेट बनाते हैं जिन्हें टियरडाउन के समय सुलझाना कष्टदायक है। आप जो भी चुनें, स्वामित्व टिकट में दिखना चाहिए, केवल मशीन पर नहीं।
स्वामित्व वह प्रश्न है जिसका यह अनुभाग उत्तर देता है, वाक्यविन्यास नहीं। एक प्रीफ़िक्स के लिए दो स्वामी वह विफलता है जिससे बचना चाहिए।
गंतव्य से सत्यापित करें, वेबसाइट से नहीं
उस गंतव्य का परीक्षण करें जिसे टनल पार करना है, ऐसी वेबसाइट का नहीं जो एग्ज़िट पता बताए। Find-NetRoute चुना गया रूट और स्रोत पता लौटाता है, इसलिए आप देख सकते हैं कि ऑफ़िस प्रीफ़िक्स जीता या भौतिक डिफ़ॉल्ट, और फिर शेयर स्वयं खोलें।
Find-NetRoute -RemoteIPAddress 10.50.5.20
Get-VpnConnection -Name Office
एग्ज़िट-पता वेबसाइट कमज़ोर जाँच है, क्योंकि DNS, IPv6 और ब्राउज़र प्रॉक्सी उस अनुरोध को अलग-अलग रास्ते से भेज सकते हैं। IPv4 और IPv6 की उसी संवाद में अलग सेटिंग्स भी होती हैं, और एक बॉक्स साफ़ करने से दूसरा परिवार अछूता रह जाता है, इसलिए डुअल-स्टैक मशीन IPv6 टनल से ले जा सकती है जबकि IPv4 स्प्लिट रूट का पालन करता है। प्रोफ़ाइल को स्प्लिट कहने से पहले दोनों परिवार जाँचें। अगर रूट सही है और सेवा फिर भी विफल हो, तो बची हुई परत फ़िल्टरिंग है, रूटिंग नहीं।
क्लाइंट-प्रबंधित फ़ायरवॉल सही रूट टेबल होने पर भी ऑफ़िस सबनेट ब्लॉक कर सकता है। वह नीति प्रोफ़ाइल भेजने वाले की है, रूट संपादित करने वाले की नहीं।