क्लाइंट कहता है कि जुड़ा हुआ है, ताला बंद है, और एक साइट फिर भी आपके फ्लैट का पता दर्ज करती है। कुछ भी विफल नहीं हुआ है। टनल आपके Wi-Fi या मोबाइल लिंक की जगह नहीं लेती; वह चुनिंदा पैकेटों के चारों ओर दूसरा लिफाफा लगाती है और उस लिफाफे को उसी नेटवर्क पर भेजती है जो आपके पास पहले से था। इस तरकीब को समझना मुख्यतः एक अनुरोध का पीछा करना और यह देखना है कि लिफाफा कहाँ खोला जाता है, क्योंकि लगभग हर उलझाने वाला लक्षण, घर के पते के रिसाव से लेकर अटके हुए बड़े डाउनलोड तक, उसी सीमा से आता है।

दो लिफाफे, एक भौतिक लिंक

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

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

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

एक अनुरोध की यात्रा देखें

एक गंतव्य चुनें और कर्नेल से पूछें कि वह कौन-सा इंटरफ़ेस उपयोग करेगा। यह एक ही कमांड टनल के कुछ करने या न करने पर अधिकांश बहसों का फैसला करती है:

ip route get 203.0.113.7
ip -brief addr show
ip -4 addr show dev wg0

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

फिर लिफाफे के भीतर से पहले हॉप को देखें, और उसकी तुलना बाहर के पहले हॉप से करें:

traceroute -n -m 3 203.0.113.7
sudo tcpdump -ni wg0 -c 5

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

तीन पते, और साइट को केवल एक दिखता है

लोग इन्हें लगातार भ्रमित करते हैं, और यह भ्रम झूठी रिसाव रिपोर्ट पैदा करता है। ये अलग-अलग हेडरों में अलग-अलग फ़ील्ड हैं जिनकी आयु भी अलग है।

AddressWhere it appearsWho can see it
Endpoint addressOuter header, the peer you connect toYour access network and the path to it
Inner tunnel addressInside the envelope, on the virtual interfaceThe peer, and anything the peer routes to
Exit addressSource of the packet that reaches the websiteThe website and its upstream

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

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

लिफाफा कहाँ खुलता है, और उसमें से क्या बचता है

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

और कुछ भी डिफ़ॉल्ट रूप से नहीं बचता। बिना एन्क्रिप्शन वाला अनुरोध एग्ज़िट पर ठीक वैसे ही पठनीय है जैसे वह कैफ़े के Wi-Fi पर था, और टनल ऐसी सुरक्षा नहीं जोड़ती जो एप्लिकेशन के पास कभी नहीं थी। इसी तरह, एग्ज़िट के फ़ायरवॉल नियम और फ़ॉरवर्डिंग नीति तय करते हैं कि आगे क्या होगा; सफल हैंडशेक साथी कनेक्शन के बारे में तथ्य है, बाकी यात्रा के बारे में नहीं।

ओवरहेड दूसरा दृश्य परिणाम है। हर पैकेट अतिरिक्त हेडर ले जाता है, और बाहरी परिवहन अपना हेडर जोड़ सकता है, इसलिए प्रति पैकेट उपयोगी पेलोड घटता है। निश्चित अधिकतम ट्रांसमिशन इकाई वाले पथ पर, यही कारण है कि टनल पिंग पार कर सकती है और बड़ा अपलोड अटका सकती है।

एप्लिकेशन ने वास्तव में जो पथ लिया उसकी जाँच करें

अंतिम चरण सामान्य रूप से मशीन नहीं, बल्कि विशिष्ट एप्लिकेशन की पुष्टि करना है। गंतव्य हल करें, उस पते के लिए रूट देखें, और फिर कनेक्शन के खुला रहने के दौरान उसका निरीक्षण करें:

getent hosts example.com
ip route get "$(getent hosts example.com | awk '{print $1; exit}')"
ss -tnp state established '( dport = :443 )'

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

RFC 4301 सुरक्षा संरचना IPsec के लिए इस लपेटने का IP-स्तर संस्करण बताती है, और वही स्तर-तर्क WireGuard और OpenVPN पर भी लागू होता है। एक बार जब आप भीतरी पैकेट और बाहरी पैकेट को अलग वस्तुओं के रूप में दिखा सकें, तो टनल का अधिकांश व्यवहार रहस्यमय होना बंद कर देता है और एक रूटिंग तालिका बन जाता है जिसे आप पढ़ सकते हैं।

संबंधित लेख