কেন আপনার Windows VPN স্থানীয় প্রিন্টার নষ্ট করে এবং কীভাবে তা থামাবেন
ফুল-টানেল ক্লায়েন্ট ডিফল্ট রুটের মালিক হয়, তাই প্রিন্টার ও NAS সাড়া দেওয়া বন্ধ করে। সেই রুটটি সরান, তারপর আপনার প্রয়োজনীয় কাজের প্রিফিক্সগুলো আবার যোগ করুন।
VPN সংযোগ করুন এবং প্রিন্টারটি অদৃশ্য হয়ে যায়, NAS শেয়ারটি খোলা বন্ধ হয়ে যায়, এবং পাশের মেশিনে রিমোট ডেস্কটপ সেশনের সময় শেষ হয়ে যায়। কিছুই ভাঙেনি। ক্লায়েন্ট একটি ডিফল্ট রুট যোগ করেছে এবং এখন ল্যাপটপের নাম দেওয়া প্রতিটি গন্তব্যের মালিক, এমনকি তিন মিটার দূরে থাকাগুলোরও। এটাই পুরো প্রক্রিয়া, এবং এটিকে VPN ত্রুটি বলা হলো সেই জিনিস যা এক লাইনের সমাধানকে একটি সাপোর্ট কেসে পরিণত করে।
আগে রুট টেবিল পড়ুন
কিছু পরিবর্তন করার আগে, IPv4 টেবিলটি route print -4 দিয়ে নিন এবং আউটপুটটি রাখুন। সংযোগ করুন, আবার নিন এবং 0.0.0.0 লাইনগুলো তুলনা করুন: সক্রিয় ডিফল্ট রুট একটি ইন্টারফেসের নাম দেয়, এবং সেই ইন্টারফেস যদি টানেল হয়, তবে স্থানীয় প্রিন্টিং ও ব্রাউজিং আগে অফিসে পাঠানো হচ্ছে।
দ্বিতীয় কলামের ইন্টারফেস নম্বরটিই সেই মান যা একটি স্থায়ী রুটকে পরে উল্লেখ করতে হয়, তাই টানেল চালু থাকতেই তা লিখে রাখুন। এটি সেই মানও যা অ্যাডাপ্টার পুনরায় তৈরি হলে বদলে যায়, এই কারণেই এর সাথে পিন করা রুটগুলো চুপচাপ তাদের উপযোগিতা ছাড়িয়ে যেতে পারে।
ডিফল্ট রুট সরানোর তিনটি উপায়
বিল্ট-ইন Windows প্রোফাইলে নিয়ন্ত্রণটি একটি চেকবক্স। সংযোগের বৈশিষ্ট্য খুলুন, IPv4, তারপর Advanced, এবং Use default gateway on remote network আনটিক করুন; নতুন Settings অ্যাপ একই ডায়ালগ আরও এক স্তর গভীরে লুকায়। একটি উন্নীত প্রম্পট থেকে একই পরিবর্তন একটি cmdlet:
Set-VpnConnection -Name "Corp" -SplitTunneling $true
একটি OpenVPN প্রোফাইল ভিন্নভাবে কাজ করে, তাই এর আচরণ চেকবক্স প্রত্যাশীদের বিভ্রান্ত করে। এর redirect-gateway def1 নির্দেশিকা ডিফল্ট রুট মোটেই প্রতিস্থাপন করে না; এটি দুইটি অর্ধ-পরিসরের রুট ইনস্টল করে, 0.0.0.0/1 এবং 128.0.0.0/1, যা একসাথে ডিফল্টকে না মুছেই তার উপর জয়ী হয়। মূল ডিফল্ট টিকে থাকায়, net_gateway-এ নির্দেশিত একটি প্রিফিক্স যোগ করলে কেবল সেই প্রিফিক্সই স্থানীয় রাউটারে ফেরত যায়। এই সূক্ষ্ম বিষয়টিই ব্যাখ্যা করে কেন def1 প্রোফাইলের সমাধান কোনো খুঁজে না পাওয়া চেকবক্স নয়, বরং একটি প্রিফিক্স রুট।
কেবল কাজের অংশটুকুই ফিরিয়ে দিন
ডিফল্ট রুট চলে যাওয়ায় টানেল কিছুই বহন করে না, তাই কাজের প্রিফিক্সগুলো স্পষ্টভাবে নাম দিতে হয়। যে cmdlet একটি প্রিফিক্সকে সংযোগের সাথে বাঁধে সেটি স্থায়ী রুটের চেয়ে নিরাপদ, কারণ এটি কেবল সেই সংযোগ চালু থাকাকালীন ইনস্টল হয় এবং ইন্টারফেস নম্বরের উপর নির্ভর করে না:
Add-VpnConnectionRoute -ConnectionName "Corp" -DestinationPrefix 172.20.0.0/16
পুরোনো পদ্ধতিটি এখনও কাজ করে এবং এখনও প্রতিটি চেকলিস্টে আছে: route -p add 172.20.0.0 mask 255.255.0.0 172.20.0.1 if 14, টানেলের নিজস্ব ইন্টারফেস ইনডেক্স ও গেটওয়ে ঠিকানা সহ। এটি রিবুট জুড়ে টিকে থাকে, যা উদ্দেশ্যও এবং ঝুঁকিও, কারণ পরের বুটে ইনডেক্সটি অন্য কিছুর হতে পারে।
বাকিটা মেট্রিক নির্ধারণ করে। যদি ভৌত ও টানেল অ্যাডাপ্টার দুটোই একই প্রিফিক্সের জন্য রুট দাবি করে, কম মেট্রিক জেতে, এবং টানেলের মেট্রিক বাড়ানো কোনো হ্যাক নয়, বরং বৈধ ক্লায়েন্ট-সাইড নিয়ন্ত্রণ।
যখন সার্ভার আপনার হয়ে সিদ্ধান্ত নেয়
যে ক্লায়েন্ট আপনার চেকবক্স উপেক্ষা করে সে সাধারণত একটি নীতিমালা মেনে চলছে। Cisco প্রোফাইলে Allow Local LAN Access সেটিং থাকে, এবং একটি হেডএন্ড tunnel-all নীতিমালা পাঠাতে পারে যা ক্লায়েন্ট যা পছন্দ করুক তা উপেক্ষা করে; বাধ্যতামূলক-টানেল স্থাপনায় স্থানীয়ভাবে বদলানোর কোনো সুইচ নেই। একই ডায়ালগ বারবার যাচাই না করে পুশ করা রুট ও নীতিমালার লাইনগুলোর জন্য ক্লায়েন্ট লগ পড়ুন।
তারপর নাম রেজোলিউশন দেখুন, যা রাউটিং থেকে আলাদা একটি সুইচ। একটি স্প্লিট টানেল এখনও অভ্যন্তরীণ রিজলভার ও সার্চ সাফিক্স পেতে পারে, তাই একটি স্থানীয় ডিভাইস ঠিকানা দিয়ে পৌঁছানো যায় কিন্তু DNS দিকটাও ঠিক না হওয়া পর্যন্ত নাম দিয়ে খুঁজে পাওয়া যায় না।
ওভারল্যাপ একটি ভিন্ন সমস্যা
যদি হোম LAN এবং অফিস LAN 192.168.0.0/24 এর মতো একটি প্রিফিক্স শেয়ার করে, কোনো রুট তাদের আলাদা করতে পারে না। সেই পরিসরের প্রতিটি প্যাকেটের একটি অনুসন্ধান ফলাফল থাকে, এবং সমাধান হলো এক দিক পুনঃনম্বর করা বা পুল থেকে অনূদিত ঠিকানা দিয়ে অফিসে পৌঁছানো। আরও নির্দিষ্ট রুট যোগ করলে কেবল নেটওয়ার্কের কোন অর্ধেক ভাঙবে তা সরে যায়।
পাঁচটি নয়, একটি যাচাই দিয়ে শেষ করুন: সংযোগ করুন, তারপর একটি অভ্যন্তরীণ হোস্ট ও একটি পাবলিক হোস্টের বিরুদ্ধে tracert চালান। প্রথম হপ আলাদা হওয়া উচিত, এবং যদি না হয়, ক্লায়েন্ট যা রিপোর্ট করুক না কেন, স্প্লিটটি কার্যকর নয়। তারপর একবার পুনঃসংযোগ করুন এবং পুনরাবৃত্তি করুন, কারণ পুশ করা রুট প্রতিটি সেশনে ফিরে আসে।