একটি WireGuard পিয়ার ট্রাফিক পার করে আর দ্বিতীয়টি হ্যান্ডশেক সম্পন্ন করে কিন্তু টানেলের পেছনে কোনো কিছুতে কখনো পৌঁছায় না। যে পিয়ারটি কাজ করছে তা আপনাকে বলে যে ইন্টারফেস, UDP পোর্ট ও সার্ভারের কী সম্ভবত ঠিক আছে। এটি দ্বিতীয় পিয়ারের AllowedIPs, তার ভেতরের সোর্স ঠিকানা বা মাঝখানের ফরওয়ার্ডিং নিয়ম সম্পর্কে কিছুই বলে না। তালিকাটি ক্রমে শেষ করুন এবং যে প্রথম ধাপের শর্ত ব্যর্থ হয় সেখানেই থামুন।

ধাপ 1: প্যাকেটের যে পথে যাওয়া উচিত তা লিখে রাখুন

একই হাবে থাকা দুটি ক্লায়েন্ট স্বয়ংক্রিয়ভাবে একে অপরের কাছে পৌঁছায় না। হাব-অ্যান্ড-স্পোক ডিজাইনে সার্ভার প্যাকেটটি wg0-তে গ্রহণ করে এবং তা আবার wg0 থেকে অন্য পিয়ারের কাছে ফরওয়ার্ড করতে হয়, যার জন্য IP ফরওয়ার্ডিং ও একটি ফরওয়ার্ড নিয়ম দরকার। সরাসরি পিয়ার-টু-পিয়ার ডিজাইনে প্রতিটি পক্ষের কাছে অন্যটির এন্ডপয়েন্ট এবং AllowedIPs-এর ভেতরে অন্যটির টানেল ঠিকানা থাকতে হয়। কোনো কনফিগারেশন পড়ার আগেই স্থির করুন আপনি কোন ডিজাইন ঠিক করছেন।

প্রত্যাশিত পথটি আপনাকে এটাও বলে দেয় কোথায় দেখতে হবে। প্যাকেটটি যদি হাব পেরোবে, তাহলে ব্যর্থ হপটি হয় প্রেরকের AllowedIPs, নয় হাবের ফরওয়ার্ডিং, নয় প্রাপকের AllowedIPs। যদি সরাসরি যাওয়ার কথা হয়, তাহলে হাব অপ্রাসঙ্গিক এবং দুই পিয়ারের এন্ডপয়েন্ট ফিল্ডগুলোই গুরুত্বপূর্ণ।

ধাপ 2: AllowedIPs দুই দিকেই মেলান, এক দিকে নয়

WireGuard AllowedIPs-কে একইসঙ্গে রাউটিং টেবিল ও অ্যাক্সেস লিস্ট হিসেবে ব্যবহার করে। পাঠানোর সময় টানেল বেছে নিতে গন্তব্য ঠিকানা পিয়ারের AllowedIPs-এ খোঁজা হয়; গ্রহণের সময় ভেতরের সোর্স ঠিকানা প্রেরক পিয়ারের AllowedIPs-এর ভেতরে পড়তে হয়, নইলে প্যাকেট বাদ পড়ে। যে কোনো দিকে একটি রেঞ্জ অনুপস্থিত থাকলে একই উপসর্গ দেখা যায়: ট্রান্সপোর্ট কাজ করে, পেলোড উবে যায়।

ফাইল নয়, লাইভ অবস্থা পড়ুন, কারণ রিলোড নীরবে ব্যর্থ হয়ে থাকতে পারে: sudo wg show wg0 allowed-ips। সার্ভারে ব্যর্থ পিয়ারের এন্ট্রিতে তার টানেল ঠিকানা থাকতে হবে, যেমন 10.90.0.3/32। ক্লায়েন্টে সার্ভার পিয়ারের এন্ট্রিতে আপনার পরীক্ষার গন্তব্যটি থাকতে হবে, সেটি হাবের টানেল ঠিকানা হোক বা দূরবর্তী সাবনেট। ওভারল্যাপিং রেঞ্জ লুকআপকে অস্পষ্ট করে এবং আপনি যে পিয়ার চাননি তাকেও বেছে নিতে পারে, তাই সেগুলো আলাদা রাখুন।

ধাপ 3: ভেতরের সোর্স ঠিকানা যাচাই করুন

যে ক্লায়েন্ট 10.90.0.3-কে wg0 দিয়ে রাউট করে কিন্তু তার Wi-Fi ঠিকানা থেকে প্যাকেট পাঠায়, প্রাপক তাকে প্রত্যাখ্যান করবে, কারণ সোর্সটি পিয়ারের AllowedIPs-এর সঙ্গে মেলে না। কার্নেল আসলে কী বেছে নেয় তা ip route get 10.90.0.3 from 10.90.0.2 দিয়ে নিশ্চিত করুন, এবং টানেল ইন্টারফেসে নির্ধারিত ঠিকানা ip -brief addr show wg0 দিয়ে নিশ্চিত করুন।

গ্রহণকারী Linux হোস্টে রিভার্স-পাথ ফিল্টারিং দ্বিতীয় দরজা। ফিরতি রুটের মালিক ইন্টারফেসে কঠোর rp_filter এমন টানেল ট্রাফিক বাদ দিতে পারে যার ফিরতি পথ যে ইন্টারফেস দিয়ে এসেছে তার সঙ্গে মেলে না। বন্ধ করার আগে কার্যকর মানটি দেখুন; অনেক টপোলজিতে সঠিক সমাধান একটি রুট, শিথিল ফিল্টার নয়।

ধাপ 4: হাবের ফরওয়ার্ডিং ও ফিরতি পথ পর্যালোচনা করুন

হাবকে যদি পিয়ারদের মধ্যে ফরওয়ার্ড করতে হয়, কার্নেলের net.ipv4.ip_forward=1 দরকার, আর ফায়ারওয়ালকে ফরওয়ার্ড করা ফ্লো গ্রহণ করতে হবে: wg0-তে ইন, wg0 থেকে আউট, প্রেরকের টানেল ঠিকানা থেকে প্রাপকের ঠিকানায়। একটি সাধারণ ব্যর্থতা হলো এমন ইনপুট নিয়ম যা UDP 51820 গ্রহণ করে কিন্তু কোনো ফরওয়ার্ড নিয়ম নেই], ফলে হ্যান্ডশেক সফল হয় আর পেলোড মরে যায়। কার্যকর নিয়মগুলো sudo nft list ruleset বা আপনার ফায়ারওয়াল ম্যানেজারের সমতুল্য কমান্ড দিয়ে তালিকাভুক্ত করুন।

তারপর উত্তরটি দেখুন। গন্তব্য হোস্টের প্রেরকের কাছে ফিরতি রুট থাকতে হবে, হয় হাবের মাধ্যমে নয় তার নিজের গেটওয়ের মাধ্যমে। হাব যদি টানেল সাবনেটে NAT-ও করে, তবে যাচাই করুন যে অনুবাদটি ফরওয়ার্ড করা ফ্লোতে প্রযোজ্য এবং উত্তরটি স্টেট শেষ হওয়ার আগেই হাবে পৌঁছায়। কী-এর সমস্যার মতো দেখানো একমুখী ব্যর্থতা প্রায়শই ঠিক এই ফিরতি রুট।

শেষে, হ্যান্ডশেককে ডেটা থেকে আলাদা করুন। যে পিয়ার হ্যান্ডশেক শেষ করে কিন্তু বড় ট্রান্সফারে আটকে যায়, তার সাধারণত ওই নির্দিষ্ট পথে MTU বা MSS সমস্যা থাকে, AllowedIPs সমস্যা নয়। প্রথমে ছোট পিং দিয়ে, পরে পূর্ণ আকারের পিং দিয়ে পরীক্ষা করুন এবং দুই পিয়ার মেলান।

ধাপ 5: একটি জিনিস বদলান আর কাজ করা পিয়ারটি অক্ষত রাখুন

ব্যর্থ পথে একটি মাত্র পরিবর্তন করুন এবং দুই পিয়ার আবার পরীক্ষা করুন। প্রতিটি পিয়ারের AllowedIPs 0.0.0.0/0 দিয়ে বদলে দেওয়া হলো আগে থেকেই কাজ করা পিয়ারটি ভাঙার দ্রুততম উপায়, কারণ এটি ওই ইন্টারফেসের সব ট্রাফিকের রাউটিং সিদ্ধান্ত বদলে দেয়। শুধু ওই একটি পিয়ার সম্পাদনা করুন, রিলোড করুন, এবং লাইভ অবস্থা আবার পড়ুন।

কোন পথ সফল হলো, কোনটি ব্যর্থ হলো এবং প্রতিটির সঠিক কমান্ড আউটপুট লিখে রাখুন। এই তুলনাটি VPN ভাঙা—এমন সাধারণ রিপোর্টের চেয়ে অনেক মূল্যবান, আর পরের ব্যক্তি প্রথমেই এটিই চাইবে।

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