আকিহাবারায় ভ্রমণ এবং Starlink + OpenWrt এর মাধ্যমে গ্লোবাল IPv6 পাওয়া
হ্যালো, আমি মুনো (Munou)।
আমি অবশেষে Starlink-এর বাইপাস মোড ব্যবহার করে একটি গ্লোবাল আইপি অ্যাড্রেস পেয়েছি, যা আমি অনেকদিন ধরেই করব করব বলে আসছিলাম____।
আকিহাবারায় ভ্রমণ
আমি বেশ কিছু জাঙ্ক শপে (পুরানো জিনিসের দোকান) গিয়েছিলাম কিন্তু বিশেষ কিছু না পেয়ে এমনিই ঘুরে বেড়াচ্ছিলাম।
এসএসডি-র (SSD) দাম অনেক বেড়ে গেছে। আমার কাছে জাঙ্ক পিসি সংগ্রহের কারণে কয়েকশ গিগাবাইটের কয়েক ডজন এসএসডি আছে, তাই এখন দরকার নেই ভাবছিলাম, কিন্তু যখন সস্তা ছিল তখন টেরাবাইট সাইজের এসএসডি কিনে রাখলে ভালো হতো বলে আফসোস হচ্ছে।
সেমিকন্ডাক্টরের উচ্চমূল্য কি চলতেই থাকবে?



এবং, আমার মনে হলো এটা বেশ সস্তা...।

ওহ?
খোঁজ নিয়ে দেখলাম
Qualcomm IPQ5018 2Core
RAM 512MB
এবং এটি তুলনামূলকভাবে সাম্প্রতিক মডেল হওয়া সত্ত্বেও OpenWrt সাপোর্ট করে বলে মনে হলো।
[OpenWrt Wiki] Techdata: Linksys MX2000
রাউটার এসওসি (SoC) সম্পর্কে আমার খুব একটা ধারণা নেই, তবে ২ কোর দেখে ভাবলাম ঠিক আছে... এই ভেবেই কিনে নিলাম।
১০ হাজার ইয়েনের নিচে OpenWrt ইনস্টল করা যায় এমন রাউটারগুলোর মধ্যে ৫১২ এমবি র্যাম আছে এমন খুব একটা পাওয়া যায় না, তাই কিনে ফেললাম।
Linksys MX2000


ছোট এবং কিউট। এতে ৪টি RJ45 পোর্ট আছে, যার মধ্যে ৩টি ল্যান (LAN) পোর্ট এবং ১টি ওয়ান (WAN) পোর্ট।
তাই, আমি OpenWrt ফ্ল্যাশ করলাম। এই নিবন্ধটি খুব সহজভাবে সবকিছু গুছিয়ে লিখেছে, যা আমার জন্য সহায়ক ছিল।
Linksys MX2000 - OpenWrt
আমি লেটেস্ট OpenWrt উইকিতে দেওয়া ইমেজটি ব্যবহার করেছি।
আমি সাধারণত WebUI-এর LuCI থেকে sysupgrade ইমেজ আপলোড করে ফ্ল্যাশ করেছি।
নিচের কাজগুলো করার মাধ্যমে প্রাথমিক সেটআপ শেষ হলো:
শুধুমাত্র পাবলিক কি (Public Key) দিয়ে SSH অনুমতি দেওয়া
WAN সাইড থেকে SSH ব্লক করা
কার্নেল প্যারামিটার কিছুটা পরিবর্তন করা
ডিফল্টভাবে নিষ্ক্রিয় থাকা ওয়াই-ফাই পুনরায় সক্রিয় করে সেটআপ করা
irqbalance সক্রিয় করা
ইত্যাদি
মেমরি ব্যবহারের হারও প্রত্যাশিত ছিল, কারণ আমি আগে FreeBSD-তে দেখেছিলাম যে এতে যথেষ্ট জায়গা থাকে।
~# free -h
total used free shared buff/cache available
Mem: 442860 203588 180296 2224 58976 186768
Swap: 0 0 0এই পর্যন্ত শেষ করার পর, প্রাথমিক সেটআপ হয়ে গেছে। এখন Starlink-এর সাথে কানেক্ট করে বাইপাস মোড চালু করলাম যাতে Starlink-এর নিজস্ব রাউটার ফাংশন বন্ধ হয়ে যায় এবং অন্য রাউটার (এক্ষেত্রে MX2000 OpenWrt রাউটার) ব্যবহার করা যায়।
IPv6 অ্যাড্রেস ডিস্ট্রিবিউশন
আমি জানি যে IPv4-এর ক্ষেত্রে CGNAT শেয়ারড অ্যাড্রেসের কারণে এটি সম্ভব নয়, তাই আমি তা করছি না।
/etc/config/network
~~略~~
config interface 'lan'
option device 'br-lan'
option proto 'static'
list ipaddr '192.168.1.1/24'
option ip6assign '64'
~~略~~
config interface 'wan6'
option device 'wan'
option proto 'dhcpv6'
option reqaddress 'try'
option reqprefix 'auto'এখন শুধু ক্লায়েন্ট সাইড সহ নিচের কমান্ড দিয়ে IPv6 অ্যাড্রেস চেক করতে হবে।
ip -6 addrএরপর আমি পরীক্ষা করার জন্য OpenWrt-এ IPv6 অ্যাড্রেসের মাধ্যমে নির্দিষ্ট পোর্টে HTTP পেজ অ্যাক্সেস করার অনুমতি দিলাম এবং এটি কাজ করল। কাজ শেষ!
এখন বাকি কাজ হলো রাউটারের আইপি অ্যাড্রেস নিয়মিত আপডেট করা, সেটিকে AAAA রেকর্ডের সাথে লিঙ্ক করা এবং একটি WireGuard সার্ভার সেটআপ করা।
এর ফলে, WireGuard ক্লায়েন্ট সাইডে সার্ভার এন্ডপয়েন্ট হিসেবে শুধু AAAA রেকর্ডের সাথে যুক্ত ডোমেইনটি দিলেই ঘরের WireGuard সার্ভারের সাথে কানেক্ট করা যাবে।
এর সুবিধা হলো ব্যান্ডউইথ লিমিট নিয়ে আর চিন্তা করতে হবে না। বর্তমানে আমি ConoHa-তে একটি WireGuard সার্ভার হোস্ট করছি, কিন্তু সেটির ব্যান্ডউইথ ১০০ এমবিপিএস-এ সীমাবদ্ধ। যদিও Starlink কানেকশন হওয়ায় গতির পার্থক্য খুব একটা বোঝা যায় না...।
আসলে সেটআপ করাটা ধারণার চেয়েও সহজ ছিল এবং WebUI থেকে কাজ করাটাও বেশ সুবিধাজনক মনে হয়েছে।
শুধু পুরনো রাউটার সচল রাখার জন্য নয়, বরং কেন মানুষ আলাদা করে OpenWrt সাপোর্টেড রাউটার কিনে তাতে ফ্ল্যাশ করে, সেটা এখন কিছুটা বুঝতে পারছি।