Yggdrasil নেটওয়ার্ক হল একটি IPv6 ওভারলে নেটওয়ার্ক যার লক্ষ্য একটি বিকেন্দ্রীকৃত এবং এনক্রিপ্ট করা জাল নেটওয়ার্ক তৈরি করা। এটি একটি বাইনারি গাছের পাতা হিসাবে নেটওয়ার্কগুলিকে চিকিত্সা করে এটি করে। একটি ওভারলে নেটওয়ার্ক হওয়ায়, Yggdrasil একটি ভার্চুয়াল প্রাইভেট নেটওয়ার্ক (VPN) হিসাবেও কাজ করে যা এর ব্যবহারকারীদের একে অপরের সাথে নিরাপদে যোগাযোগ করতে দেয়।
উপরন্তু, Yggdrasil বিনামূল্যে, সেট আপ করা তুলনামূলকভাবে সহজ এবং প্ল্যাটফর্মের একটি বিস্তৃত অ্যারের জন্য উপলব্ধ। এটি এমন ব্যক্তিদের জন্য Yggdrasil কে একটি শক্তিশালী বিকল্প করে তোলে যারা অন্য লোকেদের সাথে একটি নিরাপদ, ব্যক্তিগত সংযোগ রাখতে আগ্রহী৷
মেশ নেটওয়ার্কিং এবং Yggdrasil কি?
Yggdrasil আন্তঃসংযুক্ত নোডের একটি গাছ হিসাবে একটি নেটওয়ার্ক প্রতিনিধিত্ব করে জাল নেটওয়ার্কিং অর্জন করে। এতে, এই নোডগুলি অন্যান্য নোডগুলিতে রিলে হিসাবে কাজ করতে পারে। এটি Yggdrasil কে একটি সত্যিকারের মেশ নেটওয়ার্ক করে তোলে।
উপরন্তু, নেটওয়ার্কের কাঠামো Yggdrasil কে আপনি যে মেশিন বা ওয়েবসাইট দেখতে চান তা সহজেই খুঁজে পেতে অনুমতি দেয়। পরিবর্তে, এটি আপনাকে আপনার জন্য ট্রাফিক রুট করার জন্য কেন্দ্রীয় সার্ভারের প্রয়োজন ছাড়াই অন্যান্য ব্যবহারকারীদের সাথে যোগাযোগ করতে দেয়৷
কেন Yggdrasil ব্যবহার করবেন?
Yggdrasil এর প্রধান বিক্রয় পয়েন্ট হল যে এটি ইন্টারনেটের মাধ্যমে ডেটা রাউট করার উপায় পরিবর্তন করে। উল্লিখিত নেটওয়ার্কের ডিফল্ট অবস্থা সম্পর্কে কয়েকটি জিনিস ধরে নিয়ে এটি অর্জন করে:
- সমস্ত নোড কমপক্ষে একটি অন্য নোডের সাথে সংযুক্ত।
- প্রতিটি নোড স্বচ্ছভাবে অন্য নোডে ডেটা রিলে করতে পারে৷
- প্রতিটি নোড এর সাথে সংযুক্ত নোডগুলিকে সম্প্রচার করতে পারে৷ ৷
এই অনুমানগুলি একটি কাঠামো তৈরি করে যা কঠোর এবং অনুমানযোগ্য তবে অত্যন্ত নমনীয়। উদাহরণস্বরূপ, আপনি শুধুমাত্র একটি পাবলিক নোডের সাথে সংযোগ করে আপনার মেশিনকে সর্বজনীনভাবে অ্যাক্সেসযোগ্য করে তুলতে পারেন। এই পাবলিক নোড, তারপর, অন্যান্য নোডের সাথে সংযুক্ত। সেখান থেকে, অন্যান্য ব্যবহারকারীরা আপনার সাথে সংযোগ করতে সেই নোডের সাথে পিয়ার করতে পারে৷
শুধু তাই নয়, Yggdrasil আপনাকে স্থানীয় মেশিনের একটি সাবনেটওয়ার্ক তৈরি করতে দেয়। যেমন, আপনি যদি একটি VPN তৈরি করতে চান তাহলে এটি অত্যন্ত উপযোগী৷
৷কিভাবে Yggdrasil ইনস্টল করবেন
উপরে আলোচনা করা হয়েছে, Yggdrasil অনেক প্ল্যাটফর্ম এবং অপারেটিং সিস্টেমে উপলব্ধ। এর মধ্যে বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশন রয়েছে।
যাইহোক, Yggdrasil সর্বদা ডিফল্ট সংগ্রহস্থলে থাকে না। যেমন, কিছু ডিস্ট্রিবিউশনের জন্য আপনাকে এটি ইনস্টল করার আগে এর উত্সগুলি অন্তর্ভুক্ত করতে হবে৷
ডেবিয়ান এবং উবুন্টুতে Yggdrasil ইনস্টল করা হচ্ছে
উদাহরণস্বরূপ, আপনি যদি ডেবিয়ান এবং উবুন্টুতে Yggdrasil ইনস্টল করতে চান, আপনাকে প্রথমে তাদের অফিসিয়াল GPG কী apt-এ যোগ করতে হবে। এটি করতে, নিম্নলিখিত কমান্ডগুলি চালান:
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
একবার হয়ে গেলে, অ্যাপটি আপডেট করুন এবং প্রোগ্রামটি ইনস্টল করুন। কোডের এই একক লাইনটি চালিয়ে এটি করুন:
sudo apt update && sudo apt install yggdrasil
ফেডোরাতে Yggdrasil ইনস্টল করা হচ্ছে
ডেবিয়ান এবং উবুন্টুর বিপরীতে, ফেডোরাতে Yggdrasil ইনস্টল করার প্রক্রিয়াটি সহজ, কারণ এটি ইতিমধ্যেই ফেডোরার "কমিউনিটি প্যাকেজ" এর একটি অংশ৷
যেমন, প্রোগ্রাম ইনস্টল করা কমান্ড চালানোর মতোই সহজ:
sudo dnf copr enable rany/yggdrasil sudo dnf install yggdrasil
আর্ক লিনাক্সে Yggdrasil ইনস্টল করা হচ্ছে
শেষ অবধি, আর্চ লিনাক্সে Yggdrasil ইনস্টল করাও অত্যন্ত সহজ। ফেডোরার মতো, এটি ইতিমধ্যেই আর্চের সম্প্রদায়ের উত্স সংগ্রহস্থলে অন্তর্ভুক্ত৷
৷যেমন, আপনি প্যাকম্যানের মাধ্যমে প্রোগ্রামটি ইনস্টল করতে পারেন:
sudo pacman -Syu yggdrasil
আপনার ইনস্টলেশন কনফিগার করা হচ্ছে
একবার হয়ে গেলে, একটি নোডের সাথে সংযোগ করতে Yggdrasil সেট আপ করা খুবই সহজ, এতে আপনাকে প্রোগ্রামের আচরণ কনফিগার করতে শুধুমাত্র “/etc/yggdrasil.conf” সম্পাদনা করতে হবে। এটি অ্যাক্সেস করতে, ন্যানো ব্যবহার করুন:
sudo nano -w /etc/yggdrasil.conf
Yggdrasil ইনস্টল করার পরে এই ফাইলটি তৈরি করবে। যাইহোক, যদি এটি না হয়, আপনি একটি নতুন কনফিগারেশন ফাইল তৈরি করতে এই কমান্ডটি চালাতে পারেন:
su --command="yggdrasil -genconf > /etc/yggdrasil.conf"
একটি পাবলিক নোডের সাথে সংযোগ করা হচ্ছে
আমরা উপরে আলোচনা করেছি, প্রোগ্রামটি ব্যবহার করার দুটি উপায় রয়েছে:
- আপনার মেশিন আবিষ্কারযোগ্য করতে একটি পাবলিক নোডের সাথে সংযোগ করুন৷
- একটি ভার্চুয়াল প্রাইভেট নেটওয়ার্কে একসাথে একগুচ্ছ মেশিন সংযুক্ত করুন।
প্রথমটির জন্য, Peers:
সম্পাদনা করে আপনার “/etc/yggdrasil.conf” ফাইলে একটি পাবলিক নোডের ঠিকানা যোগ করুন। সেই কনফিগারেশন ফাইলে ব্লক করুন।
এটি কনফিগারেশনের বিভাগ যা নির্ধারণ করে যে আপনি কোন নোডগুলির সাথে সংযোগ করতে চান। যেমন, এখানে তালিকাভুক্ত মেশিনগুলি সর্বজনীনভাবে আবিষ্কারযোগ্য এবং ইন্টারনেট থেকে সংযোগযোগ্য হওয়া উচিত৷
৷এটি মাথায় রেখে, নিম্নলিখিত উদাহরণটি বিবেচনা করুন:
{ # List of connection strings for outbound peer connections in URI format, # e.g. tls://a.b.c.d:e or socks://a.b.c.d:e/f.g.h.i:j. These connections # will obey the operating system routing table, therefore you should # use this section when you may connect via different interfaces. Peers: [ tls://address.domain:port tcp://1.2.3.4:port socks://[aaaa:...:ffff]/[1111:...:9999] ] [...]
পিয়ার ব্লক হল সমস্ত নোডের একটি মৌলিক তালিকা যার সাথে আপনি সংযোগ করতে চান।
এটি হয় TLS এবং SOCKS ব্যবহার করে একটি এনক্রিপ্ট করা সংযোগ স্থাপন করতে পারে অথবা TCP ব্যবহার করে একটি আনক্রিপ্ট করা সংযোগ স্থাপন করতে পারে। পরবর্তীটি ছোট, এমবেডেড ডিভাইসগুলিকে সংযুক্ত করার জন্য দরকারী যেগুলি TLS সমর্থন করে না কিন্তু মৌলিক নেটওয়ার্ক সংযোগ রয়েছে৷
এর সাথে, আপনি এর সম্প্রদায়ের দ্বারা প্রদত্ত কয়েকটি নোড লিঙ্ক কপি করে সর্বজনীন Yggdrasil নেটওয়ার্কের সাথে সংযোগ করতে পারেন৷
একবার হয়ে গেলে, আপনি নিম্নলিখিত কমান্ডগুলি চালিয়ে প্রোগ্রামটি সক্রিয় করতে পারেন:
sudo systemctl enable yggdrasil sudo systemctl start yggdrasil
আপনি এই ওয়েবপৃষ্ঠাটিতে গিয়ে নেটওয়ার্কের সাথে সঠিকভাবে সংযোগ করেছেন কিনা তা পরীক্ষা করতে পারেন৷
৷আপনার নিজস্ব ব্যক্তিগত নেটওয়ার্ক তৈরি করা
অন্যদিকে, একটি ব্যক্তিগত নেটওয়ার্ক তৈরি করা কিছুটা জড়িত হতে পারে তবে এখনও তুলনামূলকভাবে সহজ। একটি ব্যক্তিগত Yggdrasil নেটওয়ার্ক তৈরি করতে, আপনার কিছু জিনিসের প্রয়োজন হবে:
- একটি সর্বজনীনভাবে আবিষ্কারযোগ্য মেশিন। এটি একটি স্থানীয় মেশিন হতে পারে যা CG-NAT দ্বারা অবরুদ্ধ নয় বা একটি সস্তা ভার্চুয়াল প্রাইভেট সার্ভার।
- বিভিন্ন নেটওয়ার্কে অবস্থিত বেশ কয়েকটি মেশিন যা একে অপরের সাথে সরাসরি কথা বলতে পারে না।
আপনার ব্যক্তিগত পাবলিক নোড কনফিগার করা
একটি ব্যক্তিগত Yggdrasil নেটওয়ার্ক তৈরি করতে, আপনাকে প্রথমে আপনার পাবলিক মেশিনকে অন্যান্য নোডের সাথে সংযোগ করার অনুমতি দিতে হবে। এটি করতে, Listen:
পরিবর্তন করুন পাবলিক মেশিনের ব্লক "/etc/yggdrasil.conf।"
উদাহরণস্বরূপ, সর্বজনীন সংযোগ নেওয়ার জন্য কনফিগার করা একটি নোড দেখতে এরকম কিছু হতে পারে:
[...] # Listen addresses for incoming connections. You will need to add # listeners in order to accept incoming peerings from non-local nodes. # Multicast peer discovery will work regardless of any listeners set # here. Each listener should be specified in URI format as above, e.g. # tls://0.0.0.0:0 or tls://[::]:0 to listen on all interfaces. Listen: [ tls://your.ipv4.address.here:12345 tcp://[your:ipv6:address:here]:12345 ] [...]
আমরা IPv4 এবং IPv6 উভয় থেকে 12345 পোর্টে যেকোনো ইনকামিং সংযোগ নিতে নোড সেট করেছি। আরও, IPv4 সংযোগ টিএলএস-এ মোড়ানো হয়, যখন IPv6 এনক্রিপ্টেড TCP-তে থাকে।
এখান থেকে, আপনার সেটিংস প্রয়োগ করতে Yggdrasil পরিষেবা চালু করুন এবং শুরু করুন। এর পরে, এই নোডের সাথে সংযোগ করা একটি পাবলিক নোডের সাথে সংযোগ করার মতোই হবে৷
৷অ্যাড্রেস ডিসকভারি এবং সীমাবদ্ধ অ্যাক্সেস
ডিফল্টরূপে, আপনার নতুন তৈরি Yggdrasil নোড যেকোনো ইনকামিং সংযোগ গ্রহণ করবে, যদি তারা সঠিক পোর্ট ব্যবহার করে থাকে। আপনার মেশিনের জন্য সত্যিকারের একটি ব্যক্তিগত VPN তৈরি করতে, আপনাকে সেগুলিকে একটি পাবলিক কী হোয়াইটলিস্টে যুক্ত করতে হবে৷
একটি Yggdrasil নোড একটি অনন্য সর্বজনীন কী সম্প্রচার করে কাজ করে যা Yggdrasil তৈরি করেছিল যখন আপনি এটি প্রথম ইনস্টল করেছিলেন। এই কীটি আপনাকে একটি নেটওয়ার্কের মধ্যে সুরক্ষিত করতে এবং আপনার ঠিকানা তৈরি করতে ব্যবহার করা হয়৷
আপনি এই কমান্ডটি চালিয়ে আপনার Yggdrasil ঠিকানাটি পরীক্ষা করতে পারেন:
sudo yggdrasilctl getself
এটি একটি IPv6 ঠিকানা প্রদর্শন করবে যা "20x:… " দিয়ে শুরু হবে এটি Yggdrasil এর মাধ্যমে সরাসরি সেই মেশিনের সাথে সংযোগ করতে ব্যবহার করা যেতে পারে৷
উপরন্তু, getself
কমান্ড একটি মেশিনের সর্বজনীন কী প্রদর্শন করবে। আপনার পাবলিক নোডে মেশিনগুলির একটি অনুমোদিত তালিকা তৈরি করতে আপনাকে এটি করতে হবে৷
অ্যাক্সেস সীমাবদ্ধ করতে আপনার ব্যক্তিগত নোড কনফিগার করা
আপনার Yggdrasil নোডে অ্যাক্সেস সীমাবদ্ধ করতে, আপনাকে AllowedPublicKeys:
সম্পাদনা করতে হবে আপনার পাবলিক নোডের "/etc/yggdrasil.conf" এ ব্লক করুন। আপনি এই নোডটি গ্রহণ করতে চান এমন সমস্ত পাবলিক কী যোগ করুন৷
উদাহরণস্বরূপ, এটি একটি নোডের জন্য একটি কনফিগারেশন যা শুধুমাত্র তিনটি সর্বজনীন কী গ্রহণ করে:
# List of peer public keys to allow incoming peering connections # from. If left empty/undefined then all connections will be allowed # by default. This does not affect outgoing peerings, nor does it # affect link-local peers discovered via multicast. AllowedPublicKeys: [ "publickey1" "publickey2" "publickey3" ]
একবার হয়ে গেলে, আপনি Yggdrasil পরিষেবা পুনরায় চালু করে আপনার সেটিংস প্রয়োগ করতে পারেন:
sudo systemctl restart yggdrasil
অভিনন্দন! আপনি এখন Yggdrasil নেটওয়ার্ক কিভাবে কাজ করে তার একটি প্রাথমিক ধারণা, সেইসাথে একটি প্রাইভেট নেটওয়ার্ক কিভাবে সংযোগ এবং কনফিগার করতে হয় তার একটি প্রাথমিক ধারণা আছে৷
যদি এই সমস্ত আলোচনা আপনাকে ইন্টারনেট কীভাবে কাজ করে সে সম্পর্কে কৌতূহলী করে, আপনি এই নিবন্ধটি টিসিপিডম্পের সাথে টিসিপি প্যাকেটগুলি ক্যাপচার করার বিষয়ে দেখতে পারেন৷
প্রায়শই জিজ্ঞাসিত প্রশ্ন
1. আমি আমার কনফিগারেশন ফাইলে আমার বন্ধুর Yggdrasil ঠিকানা যোগ করেছি কিন্তু তার সাথে সংযোগ করতে পারছি না। আমি কি ভুল করছি?
এটি অনেক কিছুর কারণে হতে পারে। যাইহোক, এই সমস্যার সবচেয়ে সাধারণ কারণ হল:
- উভয় মেশিনই একটি NAT এর পিছনে রয়েছে এবং তাই একে অপরের সাথে সরাসরি সংযোগ স্থাপন করতে পারে না।
-
Peers:
ব্লক করুন এবংListen:
"/etc/yggdrasil.conf" এ ব্লক ভুলভাবে কনফিগার করা হয়েছে।
প্রথম কারণের জন্য, আপনাকে নিশ্চিত করতে হবে যে অন্তত একটি মেশিন সর্বজনীনভাবে অ্যাক্সেসযোগ্য। এছাড়াও আপনাকে নিশ্চিত করতে হবে যে আপনি যে পোর্টটি ব্যবহার করছেন সেটি সঠিকভাবে পোর্ট ফরওয়ার্ড করা হয়েছে এবং আপনার স্থানীয় নেটওয়ার্কের বাইরে থেকে দেখা যাবে।
দ্বিতীয় কারণের জন্য, Peers:
নিশ্চিত করুন এবং Listen:
ব্লকে আসল IPv4 বা IPv6 ঠিকানা থাকে পিয়ারিং মেশিনের এবং এর Yggdrasil ঠিকানা নয়।
2. আমার মেশিনগুলি একে অপরের সাথে সঠিকভাবে পিয়ার করছে কিনা আমি কিভাবে জানব?
এই কমান্ডটি চালিয়ে আপনি সহজেই পরীক্ষা করতে পারেন যে আপনার মেশিনগুলি একে অপরের সাথে সঠিকভাবে পিয়ার করছে কিনা:
sudo yggdrasilctl getpeers
এটি আপনার সাথে বর্তমানে সংযুক্ত সকল সহকর্মীর পাশাপাশি Yggdrasil নেটওয়ার্ক ট্রিতে তাদের আপেক্ষিক অবস্থান প্রদর্শন করবে।
3. একটি শক্তিশালী Yggdrasil কী এবং ঠিকানা তৈরি করা কি সম্ভব?
হ্যাঁ! আপনি একটি ঠিকানা মাইনার ব্যবহার করে এটি করতে পারেন. এটি একটি সাধারণ প্রোগ্রাম যা একটি পাবলিক কী জোড়াকে হিংস্রভাবে গণনা করবে যার সামনে একটি নির্দিষ্ট পরিমাণ শূন্য রয়েছে৷
এটি করার জন্য সবচেয়ে সাধারণ প্রোগ্রাম হল সিম্পল Yggdrasil জেনারেটর (SYG) যার সর্বশেষ সংস্করণ C++ এ লেখা হয়েছে।