আপনার LAN-এর প্রতিটি ডিভাইসের সাথে একটি VPN সংযোগ শেয়ার করুন
টানেল শেয়ার করতে ফরওয়ার্ডিং, অনুবাদ এবং ফেরত রুট দরকার। হোস্ট শেয়ারিং, সেই হোস্টে রাউটার রুট এবং টানেলের মালিক গেটওয়ে—তিনটি তুলনা করুন।
একটি ল্যাপটপ টানেল ধরে রাখে, বাড়ির বাকিরা একই অ্যাক্সেস চায়, আর প্রথম চেষ্টা হলো সবকিছু সংযুক্ত মেশিনের দিকে ঘুরিয়ে দেওয়া। এটি ব্যর্থ হয় এমন কারণে যার VPN-এর সাথে কোনো সম্পর্ক নেই: গ্রহণকারী হোস্টকে প্যাকেট ফরওয়ার্ড করতে হবে, তার উৎস পুনর্লিখন করতে হবে এবং নিশ্চিত করতে হবে যে উত্তরগুলো ফেরার পথ পায়। তিনটির একটি বাদ গেলে সংযুক্ত ল্যাপটপ কাজ করতে থাকে, বাকি প্রতিটি ডিভাইস টাইমআউট হয়। সমাধান ক্লায়েন্ট সেটিং নয়, রাউটিং ডিজাইন।
হোস্টের দিকে ডিভাইস ঘুরিয়ে দেওয়া কেন ব্যর্থ হয়
যে হোস্ট দূরবর্তী নেটওয়ার্কে ঠিকানা করা প্যাকেট পায়, সে ওই মুহূর্তে রাউটার হয়ে যায়, কেউ তাকে তা হিসেবে কনফিগার করুক বা না করুক। লিনাক্সে ও উইন্ডোজে ডিফল্টভাবে ফরওয়ার্ডিং বন্ধ থাকে, যদি কোনো ফিচার তা চালু না করে। অনুবাদ গুরুত্বপূর্ণ কারণ দূরবর্তী পক্ষকে জানতে হবে উত্তর কোথায় পাঠাবে, আর একটি প্রাইভেট LAN ঠিকানা তার কাছে কিছুই বোঝায় না। ফেরত রুট তৃতীয় অংশ, এবং প্রথম ping সফল মনে হলে মানুষ এটিই ভুলে যায়।
এলোমেলোভাবে সেটিং টগল না করে ওই ক্রমে ডায়াগনোস করুন। প্রতিটি অনুপস্থিত অংশ কিছুটা আলাদা উপসর্গ তৈরি করে।
হোস্টে ফরওয়ার্ডিং ও অনুবাদ চালু করুন
সংযুক্ত হোস্টে দুটি পরিবর্তন প্রথম দুই অংশ ঢেকে দেয়: IPv4 ফরওয়ার্ডিং চালু করুন এবং LAN ট্রাফিক টানেল ইন্টারফেসে অনুবাদ করুন।
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADEsysctl মান /etc/sysctl.d-এর অধীনে একটি ফাইলে সংরক্ষণ করুন, এবং রিবুটের পর MASQUERADE নিয়মটি আবার যাচাই করুন, কারণ ফায়ারওয়াল ফ্রন্টএন্ড কাস্টম চেইন মুছে ফেলতে পারে। উইন্ডোজে শেয়ারিং ফিচারটি দুটি ধাপই করে, কিন্তু এটি LAN অ্যাডাপ্টারকে একটি নির্দিষ্ট সাবনেটে পুনরায় ঠিকানা দেয় এবং তার গেটওয়ে মুছে দেয়, যা স্ট্যাটিক অ্যাড্রেসিং ও পোর্ট ফরওয়ার্ডিং ভেঙে দেয়। শেয়ারিং ব্যর্থ হয়েছে বলে সিদ্ধান্ত নেওয়ার আগে নতুন ঠিকানায় রাউটারের হোস্ট পর্যন্ত পথ পুনরুদ্ধার করুন। তারপর দ্বিতীয় ডিভাইস ট্রাফিক পাঠালে নিয়মের কাউন্টার বাড়তে দেখুন।
LAN-কে রিবুটে টিকে থাকা একটি পথ দিন
অন্য ডিভাইসগুলোর দূরবর্তী প্রিফিক্সে একটি রুট দরকার, আর এটি দেওয়ার দুটি উপায় প্রভাবের পরিধিতে আলাদা।
ip route add 10.8.0.0/24 via 192.168.1.20 dev eth0ক্লায়েন্টের ডিফল্ট গেটওয়ে হোস্টের দিকে ঘুরিয়ে দিলে তার সব ট্রাফিক হোস্টের মধ্য দিয়ে যায়, স্থানীয় প্রিন্টিং ও ফাইল শেয়ারিংসহ, তাই হোস্ট ঘুমালে অসম্পর্কিত জিনিস বন্ধ হয়ে যায়। দূরবর্তী প্রিফিক্সের জন্য রাউটারে একটি নির্দিষ্ট রুট যোগ করা সংকীর্ণ: কেবল টানেলের পেছনের গন্তব্যগুলো সংযুক্ত মেশিনে যায়, আর বাকি LAN কাজ করতে থাকে। উপরের সাবনেটগুলো উদাহরণ, তাই নিজের LAN ও টানেল রেঞ্জ বসান। যেভাবেই হোক, টানেল চালু ও পরে বন্ধ অবস্থায় দ্বিতীয় ডিভাইস থেকে পরীক্ষা করুন।
টানেলকে দোষ দেওয়ার আগে MTU দেখুন
টানেল ব্যবহারযোগ্য প্যাকেটের আকার কমায়, আর দ্বিতীয় ডিভাইস কিছুই জানে না। বড় ট্রান্সফার ও TLS হ্যান্ডশেক আটকে যায়, ছোট অনুরোধ সফল হয়।
ping -M do -s 1400 10.8.0.5একটি উত্তর প্রমাণ করে ওই আকারটি পথটি খণ্ডন ছাড়াই পার হয়; টাইমআউট মানে এনক্যাপসুলেশন ওভারহেড প্যাকেটটিকে টানেলের MTU-এর বাইরে ঠেলে দিয়েছে। শেয়ারিং ইন্টারফেসে MTU কমান বা ফরওয়ার্ডারে সর্বোচ্চ সেগমেন্ট আকার সীমিত করুন, তারপর একই প্রোব পুনরাবৃত্তি করুন। আগে LAN পাশে একই আকার পরীক্ষা করুন, কারণ স্থানীয় ব্যর্থতা টানেল নয়, LAN-এর দিকে ইঙ্গিত করে। কার্যকর আকারটি লিখে রাখুন, কারণ পরে প্রদানকারী বা টানেল পরিবর্তনে তা সরে যেতে পারে।
একটি অতিরিক্ত ডিভাইসের জন্য হোস্ট শেয়ারিংই যথেষ্ট। পরিবারের জন্য রাউটারে রুটটি রাখুন। যখন ল্যাপটপ আপনার সাথে চলে গেলেও অ্যাক্সেস টিকতে হবে, তখন টানেল নিজেই একটি নিবেদিত গেটওয়েতে থাকা উচিত।