DNS-এর উপর VPN আর VPN DNS সার্ভার এক জিনিস নয়
একটি রিজলভার সেটিং, এনক্রিপ্টেড DNS এবং DNS-এর ভিতরে ডেটা বহনকারী একটি টানেল — এগুলো তিনটি আলাদা জিনিস। আপনার আসলে কোনটি দরকার তা যাচাই করুন।
DNS-এর উপর VPN একটি পরিবহন ধারণা বর্ণনা করে, এবং এটি কোনো ডিভাইসকে কাস্টম রিজলভারের দিকে নির্দেশ করার সমার্থক নয়। বিভ্রান্তি মেটানো প্রশ্নটি সহজ: DNS বার্তাগুলো আসলে কী বহন করে? একটি সাধারণ VPN একটি রিজলভার ইনস্টল করতে পারে যাতে আওতাভুক্ত অ্যাপ্লিকেশনগুলো প্রাইভেট নাম খুঁজে পায়, আর সেই রিজলভার বদলালে কেবল নাম রেজলিউশনই বদলায়। নিচের যাচাইগুলো ক্রমানুসারে চালান, কারণ তিনটি বিন্যাস শব্দভাণ্ডার ভাগ করে নেয় আর প্রায় কিছুই নয়।
তিনটি বিন্যাস আলাদা করুন
প্রথম বিন্যাসে VPN একটি রিজলভার বা নাম-নীতি সেটিং সরবরাহ করে। অ্যাপ্লিকেশন ডেটা এখনও নিজের নেটওয়ার্ক সংযোগের মধ্য দিয়েই যায়, আর টানেল কেবল প্রভাবিত করে কোন সার্ভার লুকআপের উত্তর দেয়।
দ্বিতীয়টিতে এনক্রিপ্টেড DNS নিজেই DNS বিনিময়কে সুরক্ষিত করে। DNS over HTTPS এবং DNS over TLS নির্বাচিত রিজলভারের কাছে কোয়েরি মোড়ায়, এবং অন্য কোনো অ্যাপ্লিকেশনের প্যাকেট বহন করে না। এরা আপনার বেছে নেওয়া রিজলভার থেকে কোয়েরির নামও লুকায় না, যা স্থানীয় নেটওয়ার্ক থেকে সেগুলো লুকানোর চেয়ে ভিন্ন একটি বিশ্বাস-সীমা।
তৃতীয়টিতে একটি সহযোগী ক্লায়েন্ট অন্য ডেটা DNS বার্তায় এনকোড করে এবং একটি সহযোগী এন্ডপয়েন্ট তা পুনর্গঠন করে। সাধারণ রিজলভার পথটিই পরিবহনে পরিণত হয়, আর রিজলভার এখন নাম-সেবা নয়, ডেটা পথের একটি উপাদান।
DNS বার্তাগুলো কী বহন করে তা যাচাই করুন
রিজলভার বদলান এবং অ্যাপ্লিকেশনের ট্রাফিক পথ বদলায় কি না লক্ষ্য করুন। অ্যাপ্লিকেশন যদি একই সকেটে একই ঠিকানায় সংযোগ রাখে, তাহলে আপনি নাম রেজলিউশন বদলেছেন, আর কিছু নয়।
DNS-বাহিত টানেলের জন্য সার্ভার-পক্ষে মিলে যাওয়া একটি বিন্যাস দরকার। Iodine একটি নথিভুক্ত উদাহরণ: এর প্রকল্পের নথি DNS-এর মধ্য দিয়ে একটি IP টানেল বর্ণনা করে, এবং এটির জন্য এমন সার্ভার উপাদান দরকার যা এনকোডিং বোঝে। Android-এ একটি পাবলিক রিজলভার ঠিকানা লিখলে সেই এন্ডপয়েন্ট সরবরাহ হয় না, আর দুইটি পণ্যের ভাগ করা একটি বিপণন শব্দ কোনো প্রোটোকল স্পেসিফিকেশন নয়।
ক্যাপচারই নির্ধারক যাচাই। রিজলভারে সাধারণ কোয়েরি ছাড়া আর কিছু না দেখলে কোনো টানেল নেই। কোয়েরির নাম ও উত্তরে এনকোড করা পেলোড দেখলে আপনি বাহক খুঁজে পেয়েছেন, আর পরের প্রশ্ন হলো এটি কতটা বহন করতে পারে।
প্রতিশ্রুতির আগে ধারণক্ষমতা যাচাই করুন
DNS তৈরি হয়েছে কোয়েরি ও উত্তরের জন্য, বাল্ক ডেলিভারির জন্য নয়। এনকোডিং ওভারহেড, বার্তার আকারের সীমা এবং রিজলভারের আচরণ—সবই নামমাত্র পথের একটি অংশ নেয়, তাই উপযোগী ধারণক্ষমতা অন্তর্নিহিত লিংকের ইঙ্গিতের চেয়ে কম। নিজের পথে না মাপা যেকোনো থ্রুপুট সংখ্যাকে বাজেট নয়, প্রকল্পনা হিসেবে ধরুন। দুই দিকেই মাপুন, কারণ অনুরোধ-উত্তর বাহকে আপলোড ও ডাউনলোড আলাদা সীমায় পৌঁছাতে পারে।
কোন ট্রাফিক টানেলে ঢুকবে তা ক্লায়েন্টকেও ঠিক করতে হয়। একটি স্থানীয় VPN-সেবা ইন্টারফেস প্যাকেট সংগ্রহ করতে পারে, কিন্তু ইন্টারফেস দূরবর্তী পরিবহন কীভাবে সেগুলো সুরক্ষিত বা অগ্রসর করে তা নিয়ে কিছুই বলে না। বাহক যখন স্ট্রিম নয়, অনুরোধ-উত্তর প্রোটোকল, তখন ফ্র্যাগমেন্টেশন ও পুনঃপ্রেরণ ভিন্নভাবে আচরণ করে, আর খোলা থাকা সংযোগ ইন্টারঅ্যাকটিভ লেটেন্সি নিয়ে খুব কম বলে।
যে ট্রাফিক বহন করতে চান তা দিয়েই মাপুন। পর্যায়ক্রমিক হার্টবিটের জন্য ঠিকঠাক লাগা টানেল ইন্টারঅ্যাকটিভ সেশনের জন্য অচল হতে পারে, আর উল্টোটাও সত্য।
বাহকের নিরাপত্তা যাচাই করুন
ধরে নেবেন না যে DNS এনক্যাপসুলেশন গোপনীয়তা বা শক্তিশালী প্রমাণীকরণ দেয়। রিজলভার পথ ও টানেল এন্ডপয়েন্ট যা দেখতে পায় তা নির্ভর করে বাস্তবায়ন কী প্রকাশ করে, আর সেই প্রকাশ নকশাভেদে ভিন্ন।
এনক্রিপশন আর বাহক নির্বাচন আলাদা বৈশিষ্ট্য। সাধারণ IP পথের উপরেই একটি টানেল এনক্রিপ্ট করা যায়, আর DNS-বাহিত টানেল তার পেলোডের সুরক্ষা নিয়ে বা ছাড়াই তৈরি করা যায়। যেভাবেই হোক অ্যাপ্লিকেশনের HTTPS রাখুন, আর টানেলের নাম নয়, তার প্রকৃত নিরাপত্তা নকশা মূল্যায়ন করুন।
প্রয়োজন যদি স্থানীয় নেটওয়ার্ক থেকে গোপনীয়তা হয়, তবে এনক্রিপ্টেড DNS আর ডেটা টানেল তার ভিন্ন ভিন্ন অংশের উত্তর দেয়। কোনটি বাছবেন তার আগে লিখে রাখুন আপনি কোন পর্যবেক্ষকের বিরুদ্ধে প্রতিরক্ষা করছেন।
প্রকৃত ব্যর্থতার সঙ্গে সমাধান মেলান
সাধারণ ধীর VPN-এর ক্ষেত্রে DNS-বাহিত টানেলে বদল করা সমস্যার উপর আরেকটি সীমিত পরিবহন যোগ করে। এটি রেডিওর মান, যানজট বা সার্ভারের লোড ঠিক করে না, বরং সাধারণত সেগুলোকে আরও দৃশ্যমান করে।
প্রাইভেট নামের ব্যর্থতার ক্ষেত্রে আগে অভিপ্রেত রিজলভার নীতি দেখুন: কোন সার্ভার উত্তর দেবে, কোন নামগুলো আওতায়, এবং ক্লায়েন্টকে এটি ব্যবহারের অনুমতি আছে কি না। তারপর প্রয়োজন মেটায় এমন একটি অনুমোদিত পরিবহন বাছুন, আর পরিবর্তনের নথিতে রিজলভার কনফিগারেশন রেখে দিন যাতে পরের ঘটনা একই খোঁজা আবার শুরু না করে।
চেকলিস্টটি ছোট: বিন্যাস শনাক্ত করুন, বার্তাগুলো কী বহন করে তা নিশ্চিত করুন, ধারণক্ষমতা মাপুন, তারপর বিশ্বাস পর্যালোচনা করুন। উপসর্গের সঙ্গে না মেলা যেকোনো ধাপ বোঝায় অন্য দুই বিন্যাস এখনও খেলায় আছে।