ডাবল NAT এবং আপনার VPN: ক্লায়েন্ট কাজ করে, সার্ভার করে না
দুটি ঠিকানা অনুবাদকারী রাউটার খুব কমই বাইরের দিকে যাওয়া VPN ক্লায়েন্ট আটকায়। তাদের পেছনে সার্ভার হোস্ট করা আরও কঠিন, বিশেষত যখন বাইরের স্তরটি ক্যারিয়ার-গ্রেড NAT।
আপনার রাউটার আরেকটি রাউটারের পেছনে, WAN ঠিকানাটি ব্যক্তিগত, তবুও VPN ক্লায়েন্ট সংযুক্ত হয়। এই সমন্বয় তাদের অবাক করে যারা ভাবেন ডাবল NAT টানেল ভেঙে দেবে, কিন্তু অনুবাদ সবচেয়ে ভালোভাবে সামলায় বাইরের দিকে যাওয়া সংযোগগুলোই। একই দুটি স্তরের পেছনে VPN সার্ভার হোস্ট করাই সাধারণত ব্যর্থ হয়। কিছু বদলানোর আগে সংযোগের দিকটি এঁকে নিন।
প্রথমে সংযোগের দিকটি এঁকে নিন
ভেতরের রাউটারের স্ট্যাটাস পৃষ্ঠা খুলে এর WAN ঠিকানা লিখে নিন, তারপর কোনো পাবলিক সেবা আপনার জন্য যে ঠিকানা জানায় তার সাথে মিলিয়ে দেখুন। দুটি আলাদা হলে আপনার রাউটার ও ইন্টারনেটের মধ্যে অন্তত একটি অনুবাদক আছে। WAN ঠিকানা যদি 100.64.0.0/10 এর মধ্যে পড়ে, তবে বাইরের অনুবাদকটি সম্ভবত আপনার প্রোভাইডারের এবং আপনি সেটি নিয়ন্ত্রণ করেন না। এই দুটি তথ্যই ঠিক করে পরের ধাপগুলোর মধ্যে কোনটি আদৌ কাজ করতে পারে।
curl -s https://ifconfig.me
ip -brief address
traceroute -n 1.1.1.1
ডাবল NAT মানে ডাবল VPN নয়। অনুবাদ ঠিকানা ও পোর্ট পুনর্লিখন করে; এটি দ্বিতীয় এনক্রিপ্টেড টানেল যোগ করে না, এবং কিছুই এনক্রিপ্ট করে না। দুটি ধারণা আলাদা রাখা জরুরি, কারণ সমাধানগুলো সম্পূর্ণ ভিন্ন, আর তার একটিতে সেটিংস পৃষ্ঠা নয়, প্রোভাইডারের সঙ্গে কথা বলা লাগে।
বাইরের দিক: ক্লায়েন্ট জিজ্ঞাসা করে, অনুবাদকরা ম্যাপ করে
বাইরের দিকে যাওয়া টানেল আপনার মেশিন থেকে একটি প্যাকেট দিয়ে শুরু হয়, তাই প্রতিটি অনুবাদক একটি ম্যাপিং তৈরি করে উত্তরটি ফিরে আসতে দিতে পারে। প্রোটোকল, পোর্ট ও নিষ্ক্রিয়তার টাইমার ঠিক করে সেই ম্যাপিং কাজে লাগার মতো যথেষ্ট সময় টিকে থাকবে কি না। বেশিরভাগ ভোক্তা রাউটার কোনো কনফিগারেশন ছাড়াই এটি সামলায়।
যে ব্যর্থতাগুলো আসলে দেখা যায় সেগুলো সাধারণত টাইমআউট ও প্রোটোকল সমর্থন নিয়ে, রাউটারের সংখ্যা নিয়ে নয়। কয়েক মিনিট নীরবতার পর যে টানেল ভেঙে পড়ে সেটি একটি মেয়াদোত্তীর্ণ ম্যাপিং, আর keepalive হলো স্বাভাবিক উত্তর। IPsec-এ মানসম্মত NAT-traversal এক্সটেনশন আছে, তাই এটি অনুবাদ পার হতে পারে না বলে দাবি করা একেবারেই ভুল। টানেল যদি একেবারেই প্রতিষ্ঠিত না হয়, টোপোলজিকে দোষ দেওয়ার আগে এন্ডপয়েন্ট ও ক্রেডেনশিয়াল দেখুন।
wg show
ping -c3 10.8.0.1
থামুন, যদি বাইরের দিকে যাওয়া টানেল একটি নেটওয়ার্ক থেকে কাজ করে আর অন্যটি থেকে না। ওই তুলনাটি নেটওয়ার্ক নিয়ে, রাউটারের সংখ্যা নিয়ে নয়।
ভেতরের দিক: ফরওয়ার্ডিং কেবল আপনার নিজের সরঞ্জামই কভার করে
সার্ভার হোস্ট করা উল্টো দিক: ইন্টারনেট থেকে একটি নতুন সংযোগ আসে এবং প্রতিটি স্তর পেরিয়ে আপনার মেশিনে পৌঁছাতে হয়। ভেতরের রাউটারের পোর্ট-ফরওয়ার্ডিং নিয়ম কেবল তখনই সাহায্য করে যখন বাইরের অনুবাদকও সেই ট্রাফিক আপনার কাছে পৌঁছে দেয়। স্থানীয় নিয়মের পুনরাবৃত্তি প্রোভাইডারের সরঞ্জামের নিয়ন্ত্রণ দেয় না।
nc -vz 203.0.113.10 51820
ss -lunp 'sport = :51820'
ভেতরের রাউটারের WAN ঠিকানা আপনার দেখা পাবলিক ঠিকানার সঙ্গে মিলিয়ে দেখুন এবং প্রতিটি মান কোথা থেকে এসেছে তা টুকে রাখুন। WAN ঠিকানা ব্যক্তিগত বা শেয়ার করা রেঞ্জে হলে বাইরের স্তর এমন অনুবাদ করছে যা আপনি কনফিগার করতে পারেন না। যে নিয়মগুলো কার্যকর হতে পারে না সেগুলোতে একটি সন্ধ্যা নষ্ট করার আগে প্রোভাইডারকে জিজ্ঞাসা করুন সে কোন ভেতরের দিকের পৌঁছানোর সমর্থন দেয়। রাউটার সরানো বা ফায়ারওয়াল ব্যাপকভাবে বন্ধ করা কোনো রোগনির্ণয় নয়, এবং একটি খোলা পোর্টের বিনিময়ে এটি খারাপ লেনদেন।
থামুন, যদি বাইরের স্তরটি প্রোভাইডারের হয় এবং সেটি ফরওয়ার্ড না করে। তখন সমর্থিত উত্তর হলো ভিন্ন অ্যাক্সেস পদ্ধতি বা রিলে, আপনার দিকে আরেকটি নিয়ম নয়।
একবারে একটি চলক পরীক্ষা করুন
প্রতি পরীক্ষায় একটি জিনিস বদলান এবং ফলাফল লিখে রাখুন, কারণ ডাবল NAT পথে একক রাউটারের পথের চেয়ে বেশি চলক থাকে। প্রোফাইল ও ডিভাইস স্থির রাখুন, তারপর অন্য একটি অ্যাক্সেস নেটওয়ার্কের সঙ্গে তুলনা করুন। খেয়াল করুন দর-কষাকষি ব্যর্থ হয় কি না, নিষ্ক্রিয়তার পর সেশন ভেঙে যায় কি না, নাকি কেবল ব্যক্তিগত গন্তব্যগুলোই ব্যর্থ হয়। এই তিনটি পর্যবেক্ষণ তিনটি ভিন্ন স্তরের দিকে ইশারা করে।
journalctl -u wg-quick@wg0 -n 30 --no-pager
ip route get 10.20.30.40
ওভারল্যাপিং ব্যক্তিগত সাবনেট আলাদা একটি ফাঁদ যা কোনো পরিমাণ অনুবাদ ঠিক করতে পারে না। আপনার হোম নেটওয়ার্ক ও দূরবর্তী নেটওয়ার্ক একই রেঞ্জ ব্যবহার করলে মাঝখানে যত অনুবাদকই থাকুক, রুট দ্বন্দ্ব দেখা দেয়। এক দিকের নম্বর বদলানোই একমাত্র টেকসই উত্তর।
দূরবর্তী গেটওয়ে একই মনোযোগ দাবি করে, কারণ এর ফরওয়ার্ডিং নিয়ম ও রিটার্ন রুট হতে পারে অনুপস্থিত টুকরো। যে টানেল প্রমাণীকরণ পাস করে তারও ব্যবহারযোগ্য অ্যাপ্লিকেশন পথ নাও থাকতে পারে, আর সেই ব্যর্থতা ক্লায়েন্টের দিক থেকে একই রকম দেখায়। হাঁটাটি শেষ হয় যখন আপনি বলতে পারেন কোন দিকটি ব্যর্থ হয় এবং কোন স্তর সেটির মালিক।