Yggdrasil नेटवर्क एक IPv6 ओवरले नेटवर्क है जिसका उद्देश्य एक विकेंद्रीकृत और एन्क्रिप्टेड मेश नेटवर्क बनाना है। यह नेटवर्क को बाइनरी ट्री में पत्तियों के रूप में मानकर ऐसा करता है। एक ओवरले नेटवर्क होने के नाते, Yggdrasil एक वर्चुअल प्राइवेट नेटवर्क (VPN) के रूप में भी कार्य करता है जो अपने उपयोगकर्ताओं को एक-दूसरे के साथ सुरक्षित रूप से बातचीत करने की अनुमति देता है।
इसके अलावा, Yggdrasil मुफ़्त है, सेट अप करने में अपेक्षाकृत आसान है, और प्लेटफार्मों की एक विस्तृत श्रृंखला के लिए भी उपलब्ध है। यह Yggdrasil को उन लोगों के लिए एक मजबूत विकल्प बनाता है जो अन्य लोगों के साथ एक सुरक्षित, निजी कनेक्शन रखने में रुचि रखते हैं।
मेश नेटवर्किंग और Yggdrasil क्या है?
Yggdrasil एक नेटवर्क को परस्पर जुड़े नोड्स के एक ट्री के रूप में प्रस्तुत करके मेश नेटवर्किंग प्राप्त करता है। उसमें, ये नोड्स अन्य नोड्स के लिए रिले के रूप में कार्य कर सकते हैं। यह Yggdrasil को एक वास्तविक मेश नेटवर्क बनाता है।
इसके अलावा, नेटवर्क की संरचना Yggdrasil को उस मशीन या वेबसाइट को आसानी से ढूंढने की अनुमति देती है जिसे आप विजिट करना चाहते हैं। बदले में, यह आपको केंद्रीय सर्वर की आवश्यकता के बिना अन्य उपयोगकर्ताओं के साथ बातचीत करने की अनुमति देता है जो आपके लिए ट्रैफिक को रूट करे।
Yggdrasil का उपयोग क्यों करें?
Yggdrasil का मुख्य विक्रय बिंदु यह है कि यह डेटा को इंटरनेट के माध्यम से रूट करने के तरीके को बदल देता है। यह डिफ़ॉल्ट नेटवर्क की स्थिति के बारे में कुछ चीजों को मानकर इसे प्राप्त करता है:
- सभी नोड्स कम से कम एक अन्य नोड से जुड़े हुए हैं।
- प्रत्येक नोड अन्य नोड को पारदर्शी रूप से डेटा रिले कर सकता है।
- प्रत्येक नोड इससे जुड़े नोड्स को प्रसारित कर सकता है।
ये धारणाएं एक ऐसी संरचना बनाती हैं जो कठोर और अनुमानित दोनों है लेकिन अत्यधिक लचीली भी है। उदाहरण के लिए, आप केवल एक पब्लिक नोड से कनेक्ट करके अपनी मशीन को सार्वजनिक रूप से सुलभ बना सकते हैं। यह पब्लिक नोड, तब, अन्य नोड्स से जुड़ा होता है। वहां से, अन्य उपयोगकर्ता उस नोड के साथ पीयर कर सकते हैं ताकि आपसे कनेक्ट हो सकें।
न केवल इतना, Yggdrasil आपको स्थानीय मशीनों का एक सबनेटवर्क बनाने की भी अनुमति देता है। जैसे, यह अत्यधिक उपयोगी है यदि आप एक VPN बनाना चाहते हैं।
Yggdrasil कैसे इंस्टॉल करें
जैसा कि ऊपर चर्चा की गई है, Yggdrasil कई प्लेटफार्मों और ऑपरेटिंग सिस्टम में उपलब्ध है। इसमें अधिकांश लिनक्स डिस्ट्रीब्यूशन शामिल हैं।
हालांकि, Yggdrasil हमेशा डिफ़ॉल्ट रिपॉजिटरी में नहीं होता है। जैसे, कुछ डिस्ट्रीब्यूशन के लिए आपको इसे इंस्टॉल करने से पहले इसके स्रोतों को शामिल करने की आवश्यकता होती है।
डेबियन और उबंटू में Yggdrasil इंस्टॉल करना
उदाहरण के लिए, यदि आप डेबियन और उबंटू में Yggdrasil इंस्टॉल करना चाहते हैं, तो आपको पहले apt में उनका आधिकारिक GPG कुंजी जोड़ना होगा। ऐसा करने के लिए, निम्न कमांड चलाएं:
gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
वहां से, आपको apt द्वारा अपने पैकेजेस में खोजे जाने वाले स्रोतों की सूची में रिपॉजिटरी जोड़ने की आवश्यकता है:
echo 'deb https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
एक बार हो जाने पर, apt को अपडेट करें और प्रोग्राम इंस्टॉल करें। इसे कोड की इस सिंगल लाइन को चलाकर करें:
sudo apt update && sudo apt install yggdrasil
फेडोरा में Yggdrasil इंस्टॉल करना
डेबियन और उबंटू के विपरीत, फेडोरा में Yggdrasil इंस्टॉल करने की प्रक्रिया सरल है, क्योंकि यह पहले से ही फेडोरा के "कम्युनिटी पैकेजेस" का हिस्सा है।
जैसे, प्रोग्राम इंस्टॉल करना कमांड चलाने जितना सरल है:
sudo dnf copr enable rany/yggdrasil sudo dnf install yggdrasil
आर्क लिनक्स में Yggdrasil इंस्टॉल करना
अंत में, आर्क लिनक्स में Yggdrasil इंस्टॉल करना भी बेहद सरल है। फेडोरा की तरह, यह पहले से ही आर्क के कम्युनिटी सोर्स रिपॉजिटरी में शामिल है।
जैसे, आप pacman के माध्यम से प्रोग्राम इंस्टॉल कर सकते हैं:
sudo pacman -Syu yggdrasil
अपने इंस्टॉलेशन को कॉन्फ़िगर करना
एक बार हो जाने पर, Yggdrasil को एक नोड से कनेक्ट करने के लिए सेट अप करना बहुत सरल है, जिसमें आपको केवल "/etc/yggdrasil.conf" को संपादित करके प्रोग्राम के व्यवहार को कॉन्फ़िगर करने की आवश्यकता है। इसे एक्सेस करने के लिए, nano का उपयोग करें:
sudo nano -w /etc/yggdrasil.conf
Yggdrasil इंस्टॉलेशन के बाद इस फ़ाइल को बनाएगा। हालांकि, यदि यह नहीं करता है, तो आप एक नया कॉन्फ़िगरेशन फ़ाइल बनाने के लिए इस कमांड को चला सकते हैं:
su --command="yggdrasil -genconf > /etc/yggdrasil.conf"
एक पब्लिक नोड से कनेक्ट करना
जैसा कि हमने ऊपर चर्चा की, प्रोग्राम का उपयोग करने के दो तरीके हैं:
- अपनी मशीन को खोजने योग्य बनाने के लिए एक पब्लिक नोड से कनेक्ट करें।
- एक वर्चुअल प्राइवेट नेटवर्क में मशीनों का एक समूह कनेक्ट करें।
पहले वाले के लिए, उस कॉन्फ़िगरेशन फ़ाइल में Peers: ब्लॉक को संपादित करके एक पब्लिक नोड का पता जोड़ें।
यह कॉन्फ़िगरेशन में वह खंड है जो निर्धारित करता है कि आप किन नोड्स से कनेक्ट करना चाहते हैं। जैसे, यहां सूचीबद्ध मशीनें सभी सार्वजनिक रूप से खोजने योग्य और इंटरनेट से कनेक्ट करने योग्य होनी चाहिए।
इस बात को ध्यान में रखते हुए, निम्नलिखित उदाहरण पर विचार करें:
{ # आउटबाउंड पीयर कनेक्शन के लिए कनेक्शन स्ट्रिंग्स की सूची URI फॉर्मेट में, # उदा. tls://a.b.c.d:e या socks://a.b.c.d:e/f.g.h.i:j। ये कनेक्शन # ऑपरेटिंग सिस्टम रूटिंग टेबल का पालन करेंगे, इसलिए आपको # इस खंड का उपयोग तब करना चाहिए जब आप अलग-अलग इंटरफेस के माध्यम से कनेक्ट कर सकते हैं। Peers: [ tls://address.domain:port tcp://1.2.3.4:port socks://[aaaa:...:ffff]/[1111:...:9999] ] [...]
Peers ब्लॉक उन सभी नोड्स की एक बुनियादी सूची है जिनसे आप कनेक्ट करना चाहते हैं।
यह या तो TLS और SOCKS का उपयोग करके एक एन्क्रिप्टेड कनेक्शन स्थापित कर सकता है या TCP का उपयोग करके एक अनएन्क्रिप्टेड कनेक्शन। बाद वाला छोटे, एम्बेडेड डिवाइस को कनेक्ट करने के लिए उपयोगी है जो TLS का समर्थन नहीं करते लेकिन बुनियादी नेटवर्क कनेक्टिविटी रखते हैं।
इसके साथ, आप इसके समुदाय द्वारा प्रदान किए गए कुछ नोड लिंक्स को कॉपी करके पब्लिक Yggdrasil नेटवर्क से कनेक्ट कर सकते हैं।
एक बार हो जाने पर, आप निम्न कमांड चलाकर प्रोग्राम को सक्षम कर सकते हैं:
sudo systemctl enable yggdrasil sudo systemctl start yggdrasil
आप इस वेबपेज पर जाकर टेस्ट कर सकते हैं कि क्या आप नेटवर्क से ठीक से जुड़े हैं।
अपना खुद का प्राइवेट नेटवर्क बनाना
दूसरी ओर, एक प्राइवेट नेटवर्क बनाना थोड़ा शामिल हो सकता है लेकिन अभी भी अपेक्षाकृत सरल है। एक प्राइवेट Yggdrasil नेटवर्क बनाने के लिए, आपको कुछ चीजों की आवश्यकता होगी:
- एक सार्वजनिक रूप से खोजने योग्य मशीन। यह या तो एक स्थानीय मशीन हो सकती है जो CG-NAT द्वारा अवरुद्ध नहीं है या एक सस्ता वर्चुअल प्राइवेट सर्वर।
- विभिन्न नेटवर्क में स्थित कई मशीनें जो एक-दूसरे से सीधे बात नहीं कर सकतीं।
अपने पर्सनल पब्लिक नोड को कॉन्फ़िगर करना
एक प्राइवेट Yggdrasil नेटवर्क बनाने के लिए, आपको पहले अपनी पब्लिक मशीन को अन्य नोड्स से कनेक्ट करने की अनुमति देनी होगी। ऐसा करने के लिए, पब्लिक मशीन के "/etc/yggdrasil.conf" के Listen: ब्लॉक को संशोधित करें।
उदाहरण के लिए, पब्लिक कनेक्शन लेने के लिए कॉन्फ़िगर किया गया एक नोड कुछ इस तरह दिख सकता है:
[...] # इनकमिंग कनेक्शन के लिए सुनने के पते। आपको नॉन-लोकल नोड्स से इनकमिंग पीयरिंग स्वीकार करने के लिए श्रोताओं को जोड़ना होगा। # मल्टीकास्ट पीयर डिस्कवरी किसी भी श्रोताओं के सेट की परवाह किए बिना काम करेगा # यहां। प्रत्येक श्रोता को ऊपर की तरह URI फॉर्मेट में निर्दिष्ट किया जाना चाहिए, उदा. # tls://0.0.0.0:0 या tls://[::]:0 सभी इंटरफेस पर सुनने के लिए। Listen: [ tls://your.ipv4.address.here:12345 tcp://[your:ipv6:address:here]:12345 ] [...]
हमने नोड को IPv4 और IPv6 दोनों से पोर्ट 12345 पर किसी भी इनकमिंग कनेक्शन को लेने के लिए सेट किया है। इसके अलावा, IPv4 कनेक्शन TLS में लपेटा गया है, जबकि IPv6 अनएन्क्रिप्टेड TCP में है।
यहां से, अपनी सेटिंग्स लागू करने के लिए Yggdrasil सर्विस को सक्षम और शुरू करें। उसके बाद, इस नोड से कनेक्ट करना पब्लिक नोड से कनेक्ट करने के समान होगा।
पता खोज और पहुंच प्रतिबंधित करना
डिफ़ॉल्ट रूप से, आपका नव निर्मित Yggdrasil नोड किसी भी इनकमिंग कनेक्शन को स्वीकार करेगा, बशर्ते वे सही पोर्ट का उपयोग कर रहे हों। अपनी मशीनों के लिए एक वास्तव में प्राइवेट VPN बनाने के लिए, आपको उन्हें एक पब्लिक कुंजी व्हाइटलिस्ट में जोड़ना होगा।
एक Yggdrasil नोड एक यूनिक पब्लिक कुंजी प्रसारित करके काम करता है जो Yggdrasil ने जब आपने पहली बार इसे इंस्टॉल किया था तब उत्पन्न की थी। यह कुंजी आपको एक नेटवर्क के भीतर सुरक्षित करने और आपका पता बनाने के लिए उपयोग की जाती है।
आप इस कमांड को चलाकर अपना Yggdrasil पता देख सकते हैं:
sudo yggdrasilctl getself
यह एक IPv6 पता प्रदर्शित करेगा जो "20x: …" से शुरू होता है। इसका उपयोग Yggdrasil के माध्यम से सीधे उस मशीन से कनेक्ट करने के लिए किया जा सकता है।
इसके अलावा, getself कमांड मशीन की पब्लिक कुंजी भी प्रदर्शित करेगा। यह वही है जो आपको अपने पब्लिक नोड में मशीनों की अनुमत सूची बनाने के लिए चाहिए।
अपने पर्सनल नोड को एक्सेस प्रतिबंधित करने के लिए कॉन्फ़िगर करना
अपने Yggdrasil नोड तक पहुंच प्रतिबंधित करने के लिए, आपको अपने पब्लिक नोड के "/etc/yggdrasil.conf" में AllowedPublicKeys: ब्लॉक को संपादित करना होगा। बस उन सभी पब्लिक कुंजियों को जोड़ें जिन्हें आप इस नोड को स्वीकार करना चाहते हैं।
उदाहरण के लिए, यह एक नोड के लिए कॉन्फ़िगरेशन है जो केवल तीन पब्लिक कुंजियों को स्वीकार करता है:
# इनकमिंग पीयरिंग कनेक्शन की अनुमति देने के लिए पीयर पब्लिक कुंजियों की सूची # से। यदि खाली/अपरिभाषित छोड़ दिया जाता है तो डिफ़ॉल्ट रूप से सभी कनेक्शन की अनुमति होगी। # यह आउटगोइंग पीयरिंग को प्रभावित नहीं करता, न ही यह मल्टीकास्ट के माध्यम से खोजे गए # लिंक-लोकल पीयर्स को प्रभावित करता है। AllowedPublicKeys: [ "publickey1" "publickey2" "publickey3" ]
एक बार हो जाने पर, आप Yggdrasil सर्विस को रीस्टार्ट करके अपनी सेटिंग्स लागू कर सकते हैं:
sudo systemctl restart yggdrasil
बधाई हो! अब आपके पास Yggdrasil नेटवर्क कैसे काम करता है, साथ ही प्राइवेट नेटवर्क को कनेक्ट और कॉन्फ़िगर करने का एक बुनियादी विचार है।
यदि यह सब बातें आपको इंटरनेट कैसे काम करता है, इसके बारे में उत्सुक बनाती हैं, तो आप tcpdump के साथ TCP पैकेट कैप्चर करने के बारे में इस लेख को देख सकते हैं।
अक्सर पूछे जाने वाले प्रश्न
1. मैंने अपने दोस्त के Yggdrasil पते को अपनी कॉन्फ़िगरेशन फ़ाइल में जोड़ा है लेकिन उससे कनेक्ट नहीं कर सकता। मैं क्या गलत कर रहा हूं?
यह कई चीजों के कारण हो सकता है। हालांकि, इस मुद्दे के सबसे आम कारण हैं:
- दोनों मशीनें NAT के पीछे हैं और इसलिए एक-दूसरे के साथ सीधा कनेक्शन स्थापित नहीं कर सकतीं।
- "/etc/yggdrasil.conf" में
Peers:ब्लॉक औरListen:ब्लॉक गलत तरीके से कॉन्फ़िगर किए गए हैं।
पहले कारण के लिए, आपको यह सुनिश्चित करने की आवश्यकता है कि कम से कम एक मशीन सार्वजनिक रूप से सुलभ है। आपको यह भी सुनिश्चित करने की आवश्यकता है कि आप जिस पोर्ट का उपयोग कर रहे हैं वह ठीक से पोर्ट फॉरवर्डेड है और आपके स्थानीय नेटवर्क के बाहर से देखा जा सकता है।
दूसरे कारण के लिए, सुनिश्चित करें कि Peers: और Listen: ब्लॉक में पीयरिंग मशीन का वास्तविक IPv4 या IPv6 पता है न कि उसका Yggdrasil पता।
2. मुझे कैसे पता चलेगा कि मेरी मशीनें एक-दूसरे के साथ ठीक से पीयरिंग कर रही हैं?
आप इस कमांड को चलाकर आसानी से जांच सकते हैं कि आपकी मशीनें एक-दूसरे के साथ ठीक से पीयरिंग कर रही हैं या नहीं:
sudo yggdrasilctl getpeers
यह वर्तमान में आपसे जुड़े सभी पीयर्स को उनके Yggdrasil नेटवर्क ट्री में सापेक्ष स्थिति के साथ प्रदर्शित करेगा।
3. क्या एक मजबूत Yggdrasil कुंजी और पता बनाना संभव है?
हां! आप एड्रेस माइनर का उपयोग करके ऐसा कर सकते हैं। यह एक सरल प्रोग्राम है जो ब्रूट फोर्स में एक पब्लिक कुंजी जोड़ी की गणना करेगा जिसमें सामने एक निश्चित मात्रा में शून्य हों।
इसे करने के लिए सबसे आम प्रोग्राम सिंपल Yggdrasil जेनरेटर (SYG) है जिसका नवीनतम संस्करण C++ में लिखा गया है।