টানেল উঠে আসে, ক্লায়েন্ট সবুজ বিন্দু দেখায়, আর ssh 192.168.1.20 তবুও টাইমআউট না হওয়া পর্যন্ত ঝুলে থাকে। ছোট একটি ক্লাউড ইনস্ট্যান্স ভাড়া নিয়ে তাতে WireGuard বসানোর পর ঠিক এটাই পেয়েছি: হ্যান্ডশেক ঠিক, DNS ঠিক, আর আমার ডেস্কের NAS যেন চাঁদে আছে। টানেলে কোনো ত্রুটি ছিল না। এন্ডপয়েন্ট এমন নেটওয়ার্কে রাখা ছিল যার আমার বাড়িতে কোনো রুট নেই। এন্ডপয়েন্টের অবস্থান ঠিক করে কোন নেটওয়ার্কগুলো সংলগ্ন, তাই যে সম্পদে আগে হাত দিতে হবে তা দিয়ে এটি বাছুন, হোস্টিং দ্বিতীয়তে মিলিয়ে দেখুন।

টানেল কেবল সেই নেটওয়ার্কে পৌঁছায় যেগুলো এন্ডপয়েন্ট রুট করতে পারে

VPN আপনার ক্লায়েন্টকে এন্ডপয়েন্টের নিজের রাউটিং ডোমেইনের ভিতরে একটি ঠিকানা দেয়। ক্লায়েন্ট 192.168.1.20-এ প্যাকেট পাঠালে এন্ডপয়েন্টকে জানতে হয় সেটি কোথায় যায়। ক্লাউড VM-এর টেবিল প্রোভাইডারের VPC সাবনেট জানে; আপনার LAN-এর কথা সে কখনো শোনেনি। সংযুক্ত হওয়া আর পৌঁছানো দুটি আলাদা সত্য, আর বাড়ি বনাম ক্লাউডের বেশিরভাগ বিভ্রান্তি আসে প্রথমটিকে দ্বিতীয়টির প্রমাণ ধরে নেওয়া থেকে।

একটি কমান্ডই ঠিক করে দেয়। এন্ডপয়েন্টে, ip route get 192.168.1.20 হয় LAN ইন্টারফেসের নাম বলে, নয় ডিফল্ট রুটে ইশারা করে। বাড়ির বক্সে উত্তর LAN দিক। ক্লাউড ইনস্ট্যান্সে প্যাকেট ইন্টারনেটের দিকে বেরিয়ে মরে যায়। চালু করা net.ipv4.ip_forward=1 এবং MASQUERADE নিয়ম যোগ করা তা বদলায় না, কারণ বাড়ির দিক থেকে কেউ ক্লাউডে লিঙ্ক শেষ না করা পর্যন্ত ফরওয়ার্ড করার কিছু নেই।

বাড়ির ক্ষেত্রে দ্বিতীয় অর্ধ আছে: ফেরার পথ। টানেল বক্স দিয়ে LAN ছাড়া প্যাকেট NAT হয়, নয়তো LAN-এর টানেল সাবনেটে ফেরার স্ট্যাটিক রুট দরকার। কেবল এক দিক কাজ করলে যাচাই করুন sysctl net.ipv4.conf.all.rp_filter। কঠোর রিভার্স-পাথ ফিল্টারিং সেই উত্তর ফেলে দেয় যেগুলো রুটের প্রত্যাশার চেয়ে ভিন্ন ইন্টারফেসে আসে, আর উপসর্গটি দেখতে হুবহু ফায়ারওয়াল নিয়মের মতো।

কনফিগে হাত দেওয়ার আগে উপসর্গ পড়ুন

টানেল তৈরি হয় না: কী, এন্ডপয়েন্ট ঠিকানা বা ব্লক করা UDP পোর্ট। টানেল ওঠে কিন্তু LAN হোস্ট মৃত: অবস্থান ও রাউটিং। টানেল ওঠে কিন্তু ব্রাউজিং মৃত: ফরওয়ার্ডিং, NAT বা DNS। এগুলো তিন স্তর ও তিন আলাদা যাচাই, আর আগে থেকেই সঠিক কনফিগ পুনর্লিখন একটি সন্ধ্যা নষ্ট করে।

SymptomFirst suspectCheck
Handshake fails, no transferKeys, endpoint port, UDP blockedwg show, then the port from outside
Peer pings, LAN host times outNo route to the LANip route get on the endpoint
Tunnel up, name resolution failsDNS options in the peer configResolve a name from the client
Large transfers reset the connectionMTULower the tunnel MTU and retry

বাড়িতে ভিতরে আসা পৌঁছানো আলাদা যাচাই দাবি করে, কারণ এটিই ঠিক করে বাড়িতে হোস্টিং আদৌ সম্ভব কি না। আপনার রাউটার যে WAN ঠিকানা জানায় তার সাথে বাইরের হোস্ট যে ঠিকানা দেখে তা মিলিয়ে দেখুন। যদি সেটি 100.64.0.0/10-এ পড়ে, বা দুটো না মেলে, আপনি carrier-grade NAT-এর পেছনে এবং কোনো পোর্ট ফরওয়ার্ডই কাজ করবে না। সত্যিকারের বিকল্প হলো রিলে, বাড়ি থেকে বাইরে ডায়াল করা ক্লাউড লিঙ্ক, বা এন্ডপয়েন্ট সরানো।

বাড়ির হোস্টিং কী দেয় আর কী নেয়

বাড়িই একমাত্র অবস্থান যা ডিফল্টে LAN-এর ভিতরে থাকে, আর সেখানেই সার্ভার রাখার পুরো কারণ। শুধু লোকাল সেগমেন্টে সাড়া দেওয়া ডিভাইস, যেমন প্রিন্টার আর নন-লোকাল সাবনেট প্রত্যাখ্যান করা NAS অ্যাডমিন পেজ, বাড়তি রাউটিং ছাড়াই কাজ করে। মেশিন, রাউটার আর আপলিংকও আপনি নিজেই চালান।

খরচ ভৌত। বাড়ির আপলোড একসাথে সব ক্লায়েন্টের সিলিং, তাই ভিডিও কল আর ব্যাকআপ একই পাইপের জন্য লড়ে। বিদ্যুৎ, ডিস্ক ক্ষয়, প্যাচ, DDNS দরকার এমন ডাইনামিক ঠিকানা, ভিতরে UDP ফরওয়ার্ড করা রাউটার, আর সম্ভাব্য ডাবল NAT — সব আপনার ঘাড়ে। মানুষ যেটি এড়িয়ে যায় সেটি পুনরুদ্ধার: আপনি বাইরে থাকতে বক্স মরে গেলে ঘরে ঢোকার একমাত্র পথও তার সাথে মরে। একই কী দিয়ে দ্বিতীয় ডিভাইস, বা অন্তত ভৌত প্রবেশের পরিকল্পনা রাখুন।

বাড়িতে বক্স ছাড়া LAN প্রবেশ চাইলে ভান না করে লিঙ্ক বানান। ক্লাউড এন্ডপয়েন্ট রাউটার হয়ে যায়: বাড়ির দিক থেকে AllowedIPs = 192.168.1.0/24 দিয়ে ক্লাউড পিয়ারে টানেল, সাথে ক্লাউড বক্সে ফরওয়ার্ডিং ও NAT। strongSwan-এর ফরওয়ার্ডিং গাইড ওই সেটআপের ফেরার অর্ধেক ধাপ দেখায়, আর এখানেই এসব চেষ্টার বেশিরভাগ ব্যর্থ হয়। বাড়ির পিয়ার এখন যেকোনো কিছু কাজ করতে ওঠা থাকতে হবে, অর্থাৎ একটি নির্ভরতা অন্যটির সাথে বদলেছেন এবং তা লিখে রাখা উচিত।

ক্লাউড এন্ডপয়েন্ট আসলে কীসের জন্য

ক্লাউড এন্ডপয়েন্ট আপনার পাবলিক প্রস্থান বদলায়। ট্রাফিক প্রোভাইডারের ঠিকানা পরিসর থেকে বেরোয়, আর সাইটগুলো আপনার বাড়ির ঠিকানার বদলে সেই ঠিকানা দেখে। মূল্য এখানেই, আর তাই ক্লাউড VPN আপনার NAS দেয় না: আপনি প্রস্থান সরিয়েছেন, LAN নয়।

গেস্ট সিস্টেম, VPN সার্ভিস ও তার ক্রেডেনশিয়াল আপনি চালান, আর হাইপারভাইজার ও ভৌত নেটওয়ার্ক চালান প্রোভাইডার; রাত 2টায় কিছু ভাঙলে এই ভাগটা গুরুত্বপূর্ণ। পাবলিক এন্ডপয়েন্ট নিরন্তর স্ক্যান হয়, তাই ম্যানেজমেন্ট পোর্ট বন্ধ রাখুন, কেবল VPN পোর্ট খুলুন, এবং নির্ধারিত সময়ে প্যাচ করুন। সিকিউরিটি গ্রুপ ও প্রোভাইডার ফায়ারওয়ালকে সেই পোর্ট অনুমতি দিতে হবে, আর কিছু ক্লাউডে ইনস্ট্যান্সের সোর্স-ডেস্টিনেশন চেক না ঠিকলে ফরওয়ার্ড করা ট্রাফিক ফেলে দেওয়া হয়।

ছোট ইনস্ট্যান্স মুষ্টিমেয় ক্লায়েন্ট সামলায়, কিন্তু এনক্রিপশন CPU-র কাজ, আর ক্রেডিট শেষ হওয়া burstable ইনস্ট্যান্স দীর্ঘ চাপে অসম আচরণ করে। স্পেক শিট নয়, আপনি সত্যিই যে পথ ব্যবহার করেন তা দেখুন।

যে সিদ্ধান্ত লিখে রাখা যায়

কাজটাই অবস্থান ঠিক করে, বক্সের লেবেল নয়। বাড়ির LAN-এ ডিভাইস দরকার হলে সবচেয়ে সস্তা সঠিক উত্তর বাড়িতে এন্ডপয়েন্ট; ফেরার লিঙ্ক বানানোর পরেই ক্লাউড বক্স কাজ করে। আলাদা পাবলিক প্রস্থান চাইলে উত্তর ক্লাউড, আর LAN প্রশ্ন ওঠেই না। দুটোই চাওয়া বৈধ, তবে তার মানে দুই এন্ডপয়েন্ট, দুই সেট কী ও দুই নথিভুক্ত রুট।

What you needEndpoint locationWhat else must exist
Reach a NAS or printer on the home LANA box on that LANPort forward or relay, DDNS, recovery plan
Browse from an exit unrelated to homeCloud instanceFirewall and egress rules, patching
Both, reliablyTwo endpoints, or cloud plus a link homeSeparate keys, routes, documented failure modes

ক্লায়েন্ট থেকে ক্রমানুসারে যাচাই করুন: হ্যান্ডশেক, পিয়ার ঠিকানা, LAN হোস্ট, তারপর প্রস্থানের IP। curl -s https://ifconfig.me ইন্টারনেট যা দেখে তা দেখায়, আর ip route get 192.168.1.20 এন্ডপয়েন্ট যা মনে করে তা দেখায়। প্রস্থান যাচাই পাস করে NAS যাচাই ঝুলে থাকলে অবস্থান সম্পর্কে উত্তর আপনার কাছে আছে; ক্লায়েন্টে AllowedIPs বদলে রুট তৈরি হবে না। 10.8.0.0/24, 192.168.1.0/24-এর মতো বিভক্ত লাইন LAN ট্রাফিক টানেলে রাখে কেবল সেই রুট সত্যিই থাকলে।

সম্পর্কিত নিবন্ধ