দুটি VPN, একটি রিজলভার: যে শেষে লেখে, সে-ই জেতে
দুটি ক্লায়েন্টই DNS নীতি ইনস্টল করতে পারে, আর শেষ যে লেখে সে জিততে পারে। সাফিক্সগুলোকে রিজলভারের সঙ্গে মিলিয়ে নিন এবং টানেলের বাইরে একটি বুটস্ট্র্যাপ পথ রাখুন।
দুটি VPN ক্লায়েন্ট সংযুক্ত, একটি কাজের জন্য আর একটি ল্যাব নেটওয়ার্কের জন্য, এবং অভ্যন্তরীণ নাম কেবল সেই ক্লায়েন্টের জন্যই রিজলভ হয় যা শেষে সংযুক্ত হয়েছে। এই ধরনটি এক ক্লায়েন্টের বাগের মতো দেখায়। সাধারণত এটি দুটি প্রোগ্রাম একই রিজলভার কনফিগারেশন লেখার অনিবার্য ফল, যেখানে কোন নাম কার মালিকানা তা নিয়ে কোনো সমঝোতা নেই।
ভ্রান্ত ধারণা: নতুনতম VPN-ই DNS-এর মালিক
সর্বশেষ সংযোগ জেতে—এমন কোনো সাধারণ নিয়ম নেই। কী ঘটে তা প্ল্যাটফর্মের পদ্ধতি এবং প্রতিটি ক্লায়েন্ট কীভাবে তা লেখে তার উপর নির্ভর করে। যে ক্লায়েন্ট রিজলভার ফাইল প্রতিস্থাপন করে সে এক ফল দেয়; যে ক্লায়েন্ট প্রতি-লিঙ্ক ডোমেন যোগ করে সে অন্য ফল দেয়; যে ক্লায়েন্ট কিছুই করে না সে আগের অবস্থা অক্ষত রাখে।
তাই যে আচরণ দেখা যায় তা দুটি বাস্তবায়নের বৈশিষ্ট্য, নথিভুক্ত কোনো অগ্রাধিকার নয়। কেবল চালুর ক্রম থেকে যুক্তি করলে কখনো ঠিক, কখনো ভুল হবে—আর ভুলটা এমনভাবে হবে যা পুনরুৎপাদন করা কঠিন। তার বদলে ম্যাপিংটি লিখে রাখুন। দুটি ক্লায়েন্টের ভেতরে বাস করা কোনো নকশা নকশা নয়।
নেমস্পেসকে রিজলভারের সঙ্গে মিলিয়ে নিন
ব্যক্তিগত সাফিক্সগুলো এবং প্রতিটি নেটওয়ার্কের প্রয়োজনীয় রিজলভার তালিকাভুক্ত করুন, তারপর ঠিক করুন পাবলিক নাম কোথায় যাবে। সেই তালিকাই নকশা। সেটি ছাড়া ক্লায়েন্টরা দুর্ঘটনাক্রমে সিদ্ধান্ত নিচ্ছে।
যে প্ল্যাটফর্ম প্রতি-লিঙ্ক DNS বা রাউটিং ডোমেন সমর্থন করে সে বিভাজনটি সচেতনভাবে প্রকাশ করতে পারে: একটি ডোমেন একটি লিঙ্কে যায়, আরেকটি ডোমেন অন্যটিতে, আর বাকি সব একটি স্পষ্ট ডিফল্ট অনুসরণ করে। একই ফাইল পুনর্লিখন করা দুটি সমতল স্ক্রিপ্ট সেই নকশা রক্ষা করতে পারে না, কারণ প্রত্যেকে মনে করে তার কাছেই পুরো কনফিগারেশন আছে।
Windows-এ নেম রিজলিউশন নীতি টেবিল সাফিক্সগুলোকে নির্দিষ্ট সার্ভারে পাঠাতে পারে, এবং একটি VPN ক্লায়েন্ট সেখানে নিয়ম ইনস্টল করতে পারে। অ্যাডাপ্টার তালিকা নয়, নীতিটি যাচাই করুন, কারণ নামটি অ্যাডাপ্টার তালিকা রিজলভ করে না।
একটি বুটস্ট্র্যাপ পথ রাখুন
প্রতিটি ক্লায়েন্টকে তার নিজস্ব এন্ডপয়েন্ট খুঁজে নিতে হবে, তবেই সে সেই এন্ডপয়েন্টের দেওয়া সেবা ব্যবহার করতে পারবে। যদি এন্ডপয়েন্টের হোস্টনাম কেবল টানেলের মধ্য দিয়েই রিজলভ করা যায়, আর টানেলের সেই হোস্টনাম রিজলভ করা দরকার হয়, তবে আপনার একটি চক্রাকার নির্ভরতা আছে যা সংযোগ টাইমআউট হিসেবে দেখা দেয়। উভয় টানেলের বাইরে একটি বুটস্ট্র্যাপ পথ রাখুন। সংযোগ বাঁচানোর দিন পর্যন্ত এতে কোনো খরচ নেই।
প্রতিটি রিজলভারের দিকে যাওয়ার পথটি দেখুন, কেবল তার জন্য কনফিগার করা নামটি নয়। যে রিজলভার কেবল অন্য টানেল দিয়ে পৌঁছানো যায় সে অনুপস্থিত রিজলভারের মতো আচরণ করে, আর লক্ষণটি রাউটিং ত্রুটি নয়, টাইমআউট।
ওভারল্যাপিং ঠিকানা DNS-এর সমস্যা নয়
একই ঠিকানা পরিসর ব্যবহার করা দুটি ব্যক্তিগত নেটওয়ার্ক DNS ক্রম দিয়ে ঠিক করা যায় না। যদি উভয় টানেলই 10.0.0.0/8 দাবি করে, তবে সঠিকভাবে রিজলভ হওয়া একটি নামও এমন ঠিকানায় নির্দেশ করে যেখানে হোস্ট সঠিক টানেলে রাউট করতে পারে না। এর জন্য ঠিকানা পর্যায়ের সমাধান দরকার—আলাদা পরিসর, একটি নেমস্পেস বা অনুবাদ—আরেকটি রিজলভার সেটিং নয়। এটি আগেই ঠিক করলে এমন DNS কনফিগারেশনের দীর্ঘ ঘোরাঘুরি এড়ানো যায় যা কখনোই কাজ করত না।
নেম রিজলিউশনকে দোষ দেওয়ার আগে উভয় টানেলের ঠিকানা বণ্টন তুলনা করুন। যখন উভয় প্রান্ত একই প্রিফিক্স পাঠায়, হোস্ট তার জন্য একটি রুট রাখে, এবং দ্বিতীয় টানেল দিয়ে রিজলভ হওয়া একটি নামও প্রথম টানেলের মালিকানাধীন ঠিকানায় পৌঁছায়। আলাদা পরিসর, প্রতি নেটওয়ার্কে নেমস্পেস বা অনুবাদই সমাধান; প্রতিটি ক্লায়েন্ট সংযুক্ত হওয়ার পর যাচাই করুন রাউট টেবিল আপনার উদ্দিষ্ট পথ দেখাচ্ছে কি না।
বাস্তব অ্যাপ্লিকেশন দিয়ে এটি প্রমাণ করুন
এমন দুটি হোস্ট বাছুন যেগুলো কেবল নিজেদের নেমস্পেসেই আছে এবং একটি পাবলিক নাম, তারপর প্রতিটিকে সেই ক্লায়েন্ট দিয়ে রিজলভ করুন যার তার মালিক হওয়া উচিত। প্রত্যাশিত রিজলভার থেকে সঠিক উত্তর প্রমাণ করে না যে অ্যাপ্লিকেশনটি হোস্টে পৌঁছায়, কারণ সেই ঠিকানার রুট এখনো ব্যর্থ হতে পারে। প্রতিটি লুকআপের পর ব্যবহারকারী যে প্রোগ্রামটি সত্যিই চালাবেন তা দিয়ে একটি সংযোগ পরীক্ষা করুন।
নিজস্ব এনক্রিপ্টেড DNS বিকল্প আছে এমন ক্লায়েন্ট আপনি এইমাত্র যাচাই করা নীতি বাইপাস করতে পারে, তাই পর্যালোচনার অংশ হিসেবে সেই সেটিংটি দেখুন। তারপর ভেন্ডর যে ক্রম সমর্থন করে সেই ক্রমে উভয় ক্লায়েন্ট পুনঃসংযুক্ত করুন এবং লুকআপগুলো পুনরাবৃত্তি করুন; ক্রম বদলালে উত্তরগুলো বদলে গেলে, প্রতিদ্বন্দ্বী কোনো লেখক এখনো কনফিগারেশনের একটি অংশের মালিক। কিছু সম্পাদনা করার আগে খুঁজে বের করুন কোন উপাদানটি নিয়মটি ইনস্টল করে—ক্লায়েন্ট, অপারেটিং সিস্টেম প্রোফাইল বা একটি ম্যানেজমেন্ট এজেন্ট। ক্রম ও মালিকদের লিখে রাখুন যাতে পরের ব্যক্তি এগুলো আবার আবিষ্কার করতে না হয়।