ল্যাপটপটি অফিস VPN-এ সংযোগ করে এবং সবকিছু তার পিছু পিছু যায়, যার মধ্যে একটি প্রিন্টারের ওয়েব পেজ এবং একটি ইন্ট্রানেট রয়েছে যা কেবল স্থানীয় নেটওয়ার্কে সাড়া দেয়। হাতে তৈরি একটি রুট এক ঘণ্টার জন্য এটি ঠিক করে, তারপর সংযোগ কেটে যায়, আবার ফিরে আসে, আর ব্যতিক্রমটি হারিয়ে যায়। টানেলে কোনো সমস্যা নেই: Windows একটি মাত্র রাউটিং টেবিল রাখে, এবং VPN অ্যাডাপ্টার প্রতিটি সংযোগে সেই টেবিলের নিজের অংশ পুনরায় লেখে। যা টিকে থাকে তা হলো অ্যাডাপ্টারের নিজের এন্ট্রির বাইরে যা থাকে।

টানেল কোন এন্ট্রি দখল করে

টেবিলটি দুইবার লিখে রাখুন, একবার টানেল বন্ধ থাকা অবস্থায় আর একবার চালু থাকা অবস্থায়, এবং ডিফল্ট লাইনগুলো তুলনা করুন। যখন প্রোফাইল ডিফল্ট প্রিফিক্স দাবি করে, তখন অ্যাডাপ্টারের এন্ট্রি টেবিলের সবচেয়ে চওড়া সারি, তাই যেকোনো ব্যতিক্রম তার চেয়ে সরু হতে হবে। এটি প্রিফিক্স দৈর্ঘ্যের হিসাব, বিশ্বাস বা নীতির বিবৃতি নয়। এটি আরও নির্ধারণ করে ব্যতিক্রমটি কোন ইন্টারফেসের নাম নেবে।

এগিয়ে যাওয়ার আগে ইন্টারফেস ইনডেক্স ও স্থানীয় গেটওয়ে লিখে রাখুন, কারণ মেশিন অন্য নেটওয়ার্কে যোগ দিলে দুটোই বদলে যায়। নিচের কমান্ডগুলো সেগুলো স্মৃতি থেকে নয়, মেশিন থেকে পড়ে।

route print -4
Find-NetRoute -RemoteIPAddress 198.51.100.30

দ্বিতীয় কমান্ডটি জানায় সেই একটি ঠিকানা এখন যে ইন্টারফেস ও পরবর্তী হপ ব্যবহার করবে, যা চল্লিশটি সারি পড়ে অনুমান করার চেয়ে ভালো। সংযোগের আগে ও পরে এটি চালান, তাহলে পরিবর্তন রেকর্ডে যুক্ত করার মতো জোড়াটি আপনি পাবেন। দুই আউটপুটই এই পাতার বাকি অংশে ব্যবহৃত সংখ্যাগুলো দেয়।

হোস্ট রুট নির্দিষ্টতায় জেতে

দীর্ঘতম-প্রিফিক্স মিল বিজয়ী নির্ধারণ করে, তাই ফিজিক্যাল গেটওয়ে দিয়ে একটি /32 টানেলের মধ্য দিয়ে যাওয়া ডিফল্টকে হারিয়ে দেয়, টানেল স্পর্শ না করেই। সেই ঠিকানার ট্রাফিক স্থানীয় ইন্টারফেস ছেড়ে যায়, বাকি সবকিছু নিজের পুরনো পথেই থাকে। টানেল এখনও ডিফল্ট বহন করে এবং সেই গন্তব্যের একমাত্র প্রার্থী থাকা বন্ধ করে দেয়। প্রিফিক্স দৈর্ঘ্যই একমাত্র লিভার যা টেবিল দেখায়, এবং এই কাজের জন্য তা যথেষ্ট।

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

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

রুটটিকে পরের পুনঃসংযোগের চেয়ে বেশি দিন বাঁচান

Windows কোনো VPN সংযোগে বাদ দেওয়ার নির্দেশ দেয় না, তাই ব্যতিক্রমটিকে ফিজিক্যাল ইন্টারফেসেই থাকতে হবে যেখানে অ্যাডাপ্টার তা পুনরায় লিখবে না। উত্তরটির মতো দেখতে কমান্ডলেটটি উল্টোটি করে: Add-VpnConnectionRoute একটি প্রিফিক্স টানেলের ভেতরে নিয়ে যায়, আর এটাই উল্টো ক্ষেত্র, যেখানে একটি বিভক্ত প্রোফাইলের একটি গন্তব্য বহন করা উচিত এবং বাকিটা স্থানীয় রাখা উচিত। এখানে এর কাছে যাওয়া নিশ্চিত করে যে যে ট্রাফিক আপনি বাইরে রাখতে চেয়েছিলেন তা ভেতরে চলে যায়।

হাতে লেখা রূপটি একটি একক কমান্ড। এর দুর্বলতা পুনঃসংযোগ নয়, নেটওয়ার্ক পরিবর্তন।

route -p add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7

এটি -p এর কারণে রিবুটের পরও টেকে এবং টানেল বাকি সবকিছু বহন করার সময় একটি ঠিকানা ইন্টারফেস 7 দিয়ে পাঠায়। ল্যাপটপটি অন্য নেটওয়ার্কে নিয়ে গেলে গেটওয়ে ও ইনডেক্স দুটোই পুরনো হয়ে যায়, তাই এন্ট্রিটি চুপচাপ ব্যর্থ হয়। এটি কার মালিকানা এবং কখন সরাতে হবে তা লিখে রাখুন।

সংযোগ স্ক্রিপ্টটিই বেশি টেকসই সংস্করণ, কারণ এটি এন্ট্রি টিকে গেছে বলে আশা করার বদলে প্রতিটি সংযোগের পরে ব্যতিক্রমটি আবার যোগ করে। নিচের দুই লাইন টানেল যে শুরু করে তার মধ্যে থাকা উচিত, লগঅন স্ক্রিপ্টে নয়।

rasdial Office
route add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7

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

রাউটিং একটি প্রসেস বাছতে পারে না

কখনও কখনও চাহিদাটি গন্তব্যের চেয়েও সরু: একটি প্রোগ্রাম স্থানীয় পথ নেবে, আর বাকি সব টানেলের ভেতরে থাকবে। রাউটিং তা প্রকাশ করতে পারে না, কারণ এটি প্রসেসের বদলে ঠিকানার সাথে মেলে। কাজ করার মতো প্যাটার্নটি সমস্যাটিকে লঞ্চারের দিকে ঠেলে দেয়।

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

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

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

ব্যতিক্রমটি পুনঃসংযোগে টিকেছে কি না নিশ্চিত করুন

পরিবর্তনটি যেভাবে ব্যর্থ হবে সেভাবেই পরীক্ষা করুন: সংযোগ বিচ্ছিন্ন করুন, আবার সংযোগ দিন, নতুন একটি অ্যাপ্লিকেশন খুলুন, তারপর স্থানীয় থাকা উচিত এমন একটি ঠিকানা এবং টানেল ব্যবহার করা উচিত এমন একটি ঠিকানা চান। দুটোকেই সংযুক্ত অবস্থায় Find-NetRoute এর সাথে তুলনা করুন।

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

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