NAT ट्रैवर्सल का काम करने का तरीका

  • मूल समस्या: दो मशीनों के बीच peer-to-peer कनेक्शन सेट करने की समस्या को समझाया गया है। Tailscale के लिए लक्ष्य WireGuard® टनल सेट करना है। यह टेक्नोलॉजी WebRTC, VoIP फोन, वीडियो गेम और अन्य कई क्षेत्रों में इस्तेमाल होती है।

  • UDP आधारित प्रोटोकॉल: NAT Traversal के लिए UDP-आधारित प्रोटोकॉल की जरूरत होती है। TCP का इस्तेमाल भी संभव है, लेकिन इससे जटिलता बढ़ जाती है और kernel customization की जरूरत पड़ सकती है।

  • नेटवर्क सॉकेट का सीधे नियंत्रण: नेटवर्क पैकेट भेजने और प्राप्त करने वाले सॉकेट पर सीधे नियंत्रण की जरूरत होती है। मौजूदा नेटवर्क लाइब्रेरी का उपयोग करके NAT को पार नहीं किया जा सकता।

  • लोकल प्रॉक्सी का उपयोग: जब direct socket access कठिन हो, तब local proxy के जरिये NAT Traversal और packet relay किया जा सकता है।

फायरवॉल को समझना

  • स्टेटफुल फायरवॉल: ज्यादातर NAT डिवाइस stateful firewall रखते हैं, जो पहले देखे गए पैकेट्स को याद रखते हैं और नए पैकेट्स को उसी संदर्भ में हैंडल करते हैं।

  • UDP ट्रैफिक नियम: फायरवॉल पहले भेजे गए आउटबाउंड UDP पैकेट्स से मेल खाते इनबाउंड UDP पैकेट्स को allow करता है।

  • फायरवॉल से निपटना: अगर दोनों तरफ की फायरवॉल एक ही दिशा में हो तो यह फिर से client/server communication को खोजने जैसा है। लेकिन जब दो clients सीधे एक-दूसरे से बात करना चाहें तो समस्या आ जाती है।

फायरवॉल बायपास

  • फायरवॉल को पुन: कॉन्फ़िग किए बिना समाधान: फायरवॉल को बदलने के बिना समस्या हल करने का तरीका चाहिए। यदि UDP पैकेट का स्रोत और गंतव्य सही हों, तो response जैसा दिखने वाला पैकेट allow हो जाता है।

  • जानकारी साझा करना: peers को पहले से ही एक-दूसरे का ip:port पता पता होना चाहिए। इसके लिए coordinator server का उपयोग करके ip:port जानकारी sync की जाती है।

NAT की बुनियाद

  • NAT डिवाइस: NAT डिवाइस पैकेट बदलते हैं, और खासकर Source NAT (SNAT) कई बार समस्या पैदा करता है। ये कई डिवाइसों को इंटरनेट से कनेक्ट करने के लिए उपयोग किए जाते हैं।

  • NAT खोज: क्योंकि NAT डिवाइस packets बदल देते हैं, दोनों peers को एक-दूसरे का ip:port नहीं मालूम होता। STUN प्रोटोकॉल का उपयोग करके NAT खोज में मदद मिलती है।

STUN और NAT खोज

  • STUN प्रोटोकॉल: जब कोई NATed client इंटरनेट के server से संपर्क करता है, तो server, NAT डिवाइस द्वारा बनाया गया सार्वजनिक ip:port देख सकता है। STUN server client को वही जानकारी देता है।

  • सीमाएँ: STUN सिर्फ कुछ स्थितियों में काम करता है, और विशेषकर उन NAT gateways पर विफल होने की संभावना ज्यादा होती है जिन्हें security device के रूप में advertise किया जाता है।

अतिरिक्त समाधान

  • रीले का उपयोग: जब direct connection विफल हो जाए, तब दोनों पक्षों को बिना बाधा के communicate करने के लिए relay के जरिए packets भेजे जाते हैं।

  • DERP protocol: Tailscale, डेटा को relay करने और NAT खोज को सपोर्ट करने के लिए DERP (Detoured Encrypted Routing Protocol) का प्रयोग करती है।

  • पोर्ट मैपिंग प्रोटोकॉल: UPnP IGD, NAT-PMP और PCP जैसे पोर्ट मैपिंग प्रोटोकॉल के जरिए NAT डिवाइस को अधिक सहयोगी तरीके से काम करने के लिए request किया जा सकता है।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.