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

दो क्लाइंट किसी भी क्रम में शुरू करने से यह नहीं होता। यह रूटिंग से होता है।

दो संभावित क्रमों की तुलना करें

बाहरी परत के रूप में उस टनल को चुनें जिसका एंडपॉइंट सार्वजनिक इंटरनेट से पहुँच योग्य हो। भीतरी परत वह टनल है जिसका सर्वर केवल उसी निकास से जवाब देता है। Windows पर व्यावहारिक विभाजन बाहर WireGuard और भीतर कॉर्पोरेट क्लाइंट है। निर्णायक कारक नियंत्रण है।

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

उल्टा क्रम असंभव नहीं है। इसके बारे में सोचना अधिक कठिन है, क्योंकि बाहरी क्लाइंट ऐसे शेड्यूल पर रूट फिर से लिखता है जो आप कभी नहीं देखते।

AllowedIPs को केवल कॉर्पोरेट रेंज का नाम देने दें

AllowedIPs उन गंतव्यों की सूची देता है जिन्हें WireGuard टनल में भेजता है। नेस्टिंग के लिए इसे केवल भीतरी सर्वर का पता और कॉर्पोरेट प्रीफ़िक्स चाहिए। बाकी सब स्थानीय नेटवर्क पर रहता है, प्रिंटर और हाइपरवाइज़र सहित। यह डिज़ाइन से ही स्प्लिट टनल है, और यह बहिष्करण की समस्या से पूरी तरह बचता है।

फ़ुल-टनल बाहरी परत को चाहिए 0.0.0.0/0 घटाकर स्थानीय रेंज। फ़ॉर्मैट बहिष्करण व्यक्त नहीं कर सकता, इसलिए पूरक की गणना करके चिपकाना पड़ता है।

[Interface]
PrivateKey = ...
Address = 10.99.4.2/32

[Peer]
PublicKey = ...
Endpoint = 198.51.100.44:51820
AllowedIPs = 198.51.100.44/32, 10.20.0.0/16, 10.21.0.0/16

जब भीतरी क्लाइंट अपने रूट इंस्टॉल नहीं करता, तो कॉर्पोरेट प्रीफ़िक्स स्वयं सूचीबद्ध करें। उस पंक्ति से छूटा प्रीफ़िक्स ऐसा गंतव्य है जिसे बाहरी टनल कभी नहीं ढोती। सूची की पुरानी प्रति न होने से बुरी है, क्योंकि वह अब भी सही दिखती है।

क्रम, मेट्रिक्स और दूसरा एडेप्टर

पहले बाहरी टनल से जुड़ें, फिर कॉर्पोरेट क्लाइंट शुरू करें। तब उसका एंडपॉइंट कनेक्शन स्थानीय गेटवे के बजाय WireGuard से बाहर जाता है। कॉर्पोरेट इंटरफ़ेस को कम मेट्रिक दें ताकि उसके प्रीफ़िक्स उसके स्वामित्व वाले पतों के लिए जीतें।

# which interface currently claims the corporate prefix?
Find-NetRoute -RemoteIPAddress 10.20.10.5 | Select-Object -First 1

# prefer the corporate interface for its own prefixes
Set-NetIPInterface -InterfaceAlias 'Corp VPN' -InterfaceMetric 3
Set-NetIPInterface -InterfaceAlias 'wg-personal' -InterfaceMetric 40

wg show interfaces

मेट्रिक्स वह कदम है जिसे लोग छोड़ देते हैं। क्रम के बिना, ओवरलैप होने वाले प्रीफ़िक्स के लिए अंत में इंस्टॉल किया गया रूट जीतता है। यह बूट के बीच बदलता है, इसीलिए समस्या रुक-रुककर आती दिखती है।

OpenVPN 2.6 पर बने क्लाइंट अपना जाल जोड़ते हैं। जब डेटा चैनल ऑफ़लोड एडेप्टर पहले से व्यस्त हो, तो दूसरा इंस्टेंस शुरू होने से इनकार कर देता है। प्रोफ़ाइल में disable-dco जोड़ने से पुराने TAP रास्ते पर लौट आता है, और फिर दोनों साथ-साथ चलते हैं।

नेस्टेड रास्ता कहाँ टूटता है

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

छोटा उपयोगी MTU अपेक्षित रखें। हर परत अतिरिक्त बोझ जोड़ती है, इसलिए 1420 और 1400 के आसपास की शुरुआती जोड़ी शुरू करने की जगह है। बड़े पैकेट पर अटकना जबकि छोटे अनुरोध सफल हों, सामान्य संकेत है। कॉर्पोरेट नीति दूसरी सीमा है, क्योंकि प्रबंधित डिवाइस चाहने वाला क्लाइंट नेस्टेड रास्ते को उल्लंघन मान सकता है।

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

संबंधित लेख