टनलिंग प्रोटोकॉल

संगणक संजाल में, टनलिंग प्रोटोकॉल एक संचार प्रोटोकॉल है जो डेटा को एक नेटवर्क से दूसरे नेटवर्क तक ले जाने की अनुमति देता है। इसमें एनकैप्सुलेशन (नेटवर्किंग) नामक प्रक्रिया के माध्यम से निजी नेटवर्क संचार को सार्वजनिक नेटवर्क (जैसे इंटरनेट) पर भेजने की अनुमति देना सम्मिलित है।

क्योंकि टनलिंग में ट्रैफ़िक डेटा को एक अलग रूप में दोबारा पैक करना सम्मिलित है, संभवतः मानक के रूप में कूटलेखन  के साथ, यह सुरंग के माध्यम से चलने वाले ट्रैफ़िक की प्रकृति को छिपा सकता है।

टनलिंग प्रोटोकॉल नेटवर्क पैकेट (पेलोड (कंप्यूटिंग)) के डेटा भाग का उपयोग करके उन पैकेटों को ले जाने के लिए काम करता है जो वास्तव में सेवा प्रदान करते हैं। टनलिंग एक स्तरित प्रोटोकॉल मॉडल का उपयोग करता है जैसे कि खुले प्रणालियों का अंतर्संबंध  या टीसीपी/आईपी प्रोटोकॉल सूट, किन्तु आमतौर प्राइवेट नेटवर्क द्वारा प्रदान नहीं की जाने वाली सेवा को ले जाने के लिए पेलोड का उपयोग करते समय लेयरिंग का उल्लंघन होता है। सामान्यतः, डिलीवरी प्रोटोकॉल, पेलोड प्रोटोकॉल की तुलना में स्तरित मॉडल में बराबर या उच्च स्तर पर संचालित होता है।

उपयोग
उदाहरण के लिए, एक टनलिंग प्रोटोकॉल एक विदेशी प्रोटोकॉल को ऐसे नेटवर्क पर चलने की अनुमति दे सकता है जो उस विशेष प्रोटोकॉल का समर्थन नहीं करता है, जैसे कि IPv4 पर IPv6 चलाना।

एक अन्य महत्वपूर्ण उपयोग ऐसी सेवाएँ प्रदान करना है जो केवल अंतर्निहित नेटवर्क सेवाओं का उपयोग करके पेश किया जाना अव्यावहारिक या असुरक्षित है, जैसे किसी दूरस्थ उपयोगकर्ता को कॉर्पोरेट नेटवर्क पता प्रदान करना जिसका भौतिक नेटवर्क पता कॉर्पोरेट नेटवर्क का हिस्सा नहीं है।

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

एक अन्य HTTP-आधारित टनलिंग विधि HTTP टनल#HTTP CONNECT विधि|HTTP CONNECT विधि/कमांड का उपयोग करती है। एक क्लाइंट HTTP प्रॉक्सी को HTTP CONNECT कमांड जारी करता है। फिर प्रॉक्सी एक विशेष सर्वर:पोर्ट से एक टीसीपी कनेक्शन बनाता है, और उस सर्वर:पोर्ट और क्लाइंट कनेक्शन के बीच डेटा रिले करता है। क्योंकि यह एक सुरक्षा छेद बनाता है, CONNECT-सक्षम HTTP प्रॉक्सी सामान्यतः CONNECT विधि तक पहुंच को प्रतिबंधित करते हैं। प्रॉक्सी केवल विशिष्ट पोर्ट से कनेक्शन की अनुमति देता है, जैसे HTTPS के लिए 443। नेटवर्क फ़ायरवॉल को बायपास करने में सक्षम अन्य टनलिंग विधियाँ डीएनएस जैसे विभिन्न प्रोटोकॉल का उपयोग करती हैं, MQTT, एसएमएस।

तकनीकी सिंहावलोकन
नेटवर्क लेयर पर नेटवर्क लेयर के उदाहरण के रूप में, जेनेरिक रूटिंग इनकैप्सुलेशन (जीआरई), आईपी पर चलने वाला एक प्रोटोकॉल (आईपी प्रोटोकॉल नंबर 47 की सूची), अधिकांशतः डिलीवरी पैकेट का उपयोग करके इंटरनेट पर RFC 1918 निजी पते के साथ आईपी पैकेट ले जाने का कार्य करता है। सार्वजनिक आईपी पते के साथ. इस मामले में, डिलीवरी और पेलोड प्रोटोकॉल समान हैं, किन्तु पेलोड पते डिलीवरी नेटवर्क के साथ असंगत हैं।

डेटा लिंक परत का उपयोग करके कनेक्शन स्थापित करना भी संभव है। परत 2 टनलिंग प्रोटोकॉल (L2TP) दो नोड्स के बीच फ़्रेम (नेटवर्किंग) के प्रसारण की अनुमति देता है। एक सुरंग डिफ़ॉल्ट रूप से एन्क्रिप्टेड नहीं होती है: चुना गया टीसीपी/आईपी प्रोटोकॉल सुरक्षा के स्तर को निर्धारित करता है।

सार्वजनिक नेटवर्क (जैसे इंटरनेट) कनेक्शन पर प्रसारित होने वाले पेलोड के डेटा एन्क्रिप्शन को सक्षम करने के लिए सुरक्षित खोल  पोर्ट 22 का उपयोग करता है, जिससे वीपीएन कार्यक्षमता प्रदान होती है। IPsec में एक एंड-टू-एंड ट्रांसपोर्ट मोड है, किन्तु यह एक विश्वसनीय सुरक्षा गेटवे के माध्यम से टनलिंग मोड में भी काम कर सकता है।

टनलिंग द्वारा लगाए गए एक विशेष प्रोटोकॉल स्टैक को समझने के लिए, नेटवर्क इंजीनियरों को पेलोड और डिलीवरी प्रोटोकॉल सेट दोनों को समझना होगा।

सामान्य टनलिंग प्रोटोकॉल

 * आईपी में आईपी (प्रोटोकॉल 4): आईपीवी4/आईपीवी6 में आईपी
 * एसआईटी/आईपीवी6 (प्रोटोकॉल 41): आईपीवी6 में आईपीवी4/आईपीवी6
 * जेनेरिक रूटिंग एनकैप्सुलेशन (प्रोटोकॉल 47): जेनेरिक रूटिंग एनकैप्सुलेशन
 * ओपनवीपीएन (यूडीपी पोर्ट 1194)
 * सुरक्षित सॉकेट टनलिंग प्रोटोकॉल (टीसीपी पोर्ट 443): सुरक्षित सॉकेट टनलिंग प्रोटोकॉल
 * आईपीएसईसी (प्रोटोकॉल 50 और 51): इंटरनेट प्रोटोकॉल सुरक्षा
 * लेयर 2 टनलिंग प्रोटोकॉल (प्रोटोकॉल 115): लेयर 2 टनलिंग प्रोटोकॉल
 * वर्चुअल एक्स्टेंसिबल लैन (यूडीपी पोर्ट 4789): वर्चुअल एक्स्टेंसिबल लोकल एरिया नेटवर्क।
 * जेनेरिक नेटवर्क वर्चुअलाइजेशन एनकैप्सुलेशन
 * वायरगार्ड

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

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

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

एसएसएच सुरंगें फ़ायरवॉल (कंप्यूटिंग) को बायपास करने का एक साधन प्रदान करती हैं जो कुछ इंटरनेट सेवाओं को प्रतिबंधित करती हैं – जब तक कोई साइट आउटगोइंग कनेक्शन की अनुमति देती है। उदाहरण के लिए, कोई संगठन किसी उपयोगकर्ता को संगठन के प्रॉक्सी फ़िल्टर (जो उपयोगकर्ता वेब के माध्यम से जो देखता है उसकी निगरानी और नियंत्रण करने का साधन प्रदान करता है) से गुज़रे बिना सीधे इंटरनेट वेब पेज (पोर्ट 80) तक पहुंचने से रोक सकता है। किन्तु उपयोगकर्ता यह नहीं चाहेंगे कि संगठन के प्रॉक्सी फ़िल्टर द्वारा उनके वेब ट्रैफ़िक की निगरानी की जाए या उसे अवरुद्ध किया जाए। यदि उपयोगकर्ता बाहरी एसएसएच सर्वर (कंप्यूटिंग) से जुड़ सकते हैं, तो वे अपने स्थानीय मशीन पर दिए गए पोर्ट को दूरस्थ वेब सर्वर पर पोर्ट 80 पर अग्रेषित करने के लिए एक एसएसएच सुरंग बना सकते हैं। दूरस्थ वेब सर्वर तक पहुंचने के लिए, उपयोगकर्ता अपने वेब ब्राउज़र को http://localhost/ पर स्थानीय पोर्ट पर इंगित करेंगे।

कुछ SSH क्लाइंट डायनेमिक अग्रेषण पोर्ट का समर्थन करते हैं जो उपयोगकर्ता को SOCKS 4/5 प्रॉक्सी बनाने की अनुमति देता है। इस मामले में उपयोगकर्ता अपने एप्लिकेशन को अपने स्थानीय SOCKS प्रॉक्सी सर्वर का उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं। जैसा कि पहले बताया गया है, यह एकल पोर्ट के लिए SSH सुरंग बनाने की तुलना में अधिक लचीलापन देता है। SOCKS उपयोगकर्ता को केवल पूर्वनिर्धारित रिमोट पोर्ट और सर्वर से कनेक्ट होने की सीमाओं से मुक्त कर सकता है। यदि कोई एप्लिकेशन SOCKS का समर्थन नहीं करता है, तो एप्लिकेशन को स्थानीय SOCKS प्रॉक्सी सर्वर पर रीडायरेक्ट करने के लिए एक प्रॉक्सीफायर का उपयोग किया जा सकता है। कुछ प्रॉक्सीफायर, जैसे प्रॉक्सीकैप, सीधे एसएसएच का समर्थन करते हैं, इस प्रकार एसएसएच क्लाइंट की आवश्यकता से बचते हैं।

ओपनएसएसएच के हाल के संस्करणों में इसे TUN/TAP बनाने की भी अनुमति है, यदि दोनों सिरों ने ऐसी टनलिंग क्षमताओं को सक्षम किया हो। यह बनाता है  (परत 3, डिफ़ॉल्ट) या   (लेयर 2) कनेक्शन के दोनों सिरों पर वर्चुअल इंटरफेस। यह सामान्य नेटवर्क प्रबंधन और रूटिंग का उपयोग करने की अनुमति देता है, और जब राउटर पर उपयोग किया जाता है, तो पूरे सबनेटवर्क के लिए ट्रैफ़िक को टनल किया जा सकता है। का एक जोड़ा   वर्चुअल इंटरफ़ेस एक ईथरनेट केबल की तरह कार्य करता है जो कनेक्शन के दोनों सिरों को जोड़ता है और कर्नेल ब्रिज से जुड़ सकता है।

सुरंग बनाने पर आधारित साइबर हमले
वर्षों से, संरक्षित नेटवर्क के बाहर दुर्भावनापूर्ण ढंग से संचार करने के लिए सामान्यतः टनलिंग और एनकैप्सुलेशन (नेटवर्किंग) को अधिकांशतः दुर्भावनापूर्ण कारणों से अपनाया जाता रहा है।

इस संदर्भ में, ज्ञात सुरंगों में HTTP जैसे प्रोटोकॉल सम्मिलित हैं, एसएसएच, डीएनएस, एमक्यूटीटी.

यह भी देखें

 * जीपीआरएस टनलिंग प्रोटोकॉल (जीटीपी)
 * HTTP सुरंग
 * आईसीएमपी सुरंग
 * एनवीजीआरई
 * ओ एस आई मॉडल (आरेख)
 * छद्म तार
 * स्तब्ध कर देने वाला
 * सुरंग दलाल
 * वर्चुअल एक्स्टेंसिबल LAN (VXLAN)
 * वर्चुअल प्राइवेट नेटवर्क (वीपीएन)

बाहरी संबंध

 * PortFusion distributed reverse / forward, local forward proxy and tunneling solution for all TCP protocols
 * SSH VPN tunnel, see the SSH-BASED VIRTUAL PRIVATE NETWORKS section
 * BarbaTunnel Project - Free open source implementation of HTTP-Tunnel and UDP-Tunnel on Windows
 * VpnHood Project - Free open source implementation of a VPN using socket redirection