অফিস VPN-এ সংযোগ করুন, আর হঠাৎ প্রতিটি নাম লুকআপ কর্পোরেট রিজলভারে যায়। পাবলিক নাম এখনো রিজলভ হয়, তাই স্থানীয় প্রিন্টারের নাম ব্যর্থ না হওয়া পর্যন্ত বা split-horizon রেকর্ড অফিসের ঠিকানা ফেরত না দেওয়া পর্যন্ত কিছুই ভাঙা মনে হয় না। কিছু Fedora সেটআপে উল্টোটা ঘটে: টানেল ওঠার পরেও ISP রিজলভার উত্তর দিতে থাকে। দুটোই একটিই প্রশ্ন — কোন রিজলভার এই কোয়েরির মালিক — আর NetworkManager সিস্টেমে উত্তরটি থাকে প্রতি-সংযোগের DNS বৈশিষ্ট্যে।

দুটি সংযোগ, একটি জয়ী রিজলভার

প্রতিটি সংযোগ একটি DNS অগ্রাধিকার ঘোষণা করে। সাধারণ সংযোগের ডিফল্ট 50 আর VPN সংযোগের ডিফল্ট 0, এবং ছোট মানটাই জেতে। এই ডিফল্টের কারণেই একটি VPN সংযোগ যে কোনো ডোমেইনের জন্য তারের লিংককে নীরবে ছাড়িয়ে যায়: কেউ বেছে না নিয়েও শূন্য পঞ্চাশকে হারায়।

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

অগ্রাধিকার ক্রম ঠিক করে, সার্চ তালিকা মালিকানা ঠিক করে

nmcli -f connection.id,ipv4.dns,ipv4.dns-search,ipv4.dns-priority con show "Corp VPN"
resolvectl status
readlink -f /etc/resolv.conf

সার্চ তালিকা হলো মালিকানার ঘোষণা। corp.example মতো খালি ডোমেইন একটি সার্চ প্রত্যয় ও একটি রাউটিং ডোমেইন হয়ে যায়। শুধু-রাউটিং রূপ ~corp.example সেই প্রত্যয়ের অধীনে লুকআপগুলো এই সংযোগে পাঠায়, ডোমেইনটি ছোট নামের সঙ্গে যোগ না করেই। ওই টিল্ডাটাই «এই সার্ভারকে জিজ্ঞাসা করো» আর «এই সার্ভারকে জিজ্ঞাসা করো এবং আমার টাইপিং শেষ করো»-র মধ্যে পার্থক্য।

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

তারপর পছন্দটি স্পষ্ট করুন এবং পুনরায় সক্রিয় করুন:

nmcli con modify "Corp VPN" ipv4.dns-priority -100
nmcli con modify "Corp VPN" ipv6.dns-priority -100
nmcli con modify "Corp VPN" ipv4.dns-search "~corp.example,corp.example"
nmcli con up "Corp VPN"

ঋণাত্মক অগ্রাধিকার হলো «এই সংযোগকে অগ্রাধিকার দাও» বলার নথিভুক্ত উপায়, আর দুই ঠিকানা পরিবারই সেট করা IPv6 সংযোগযুক্ত হোস্টে আচরণ সামঞ্জস্যপূর্ণ রাখে। সংযোগ পুনরায় সক্রিয় না করে বৈশিষ্ট্য বদলালে এখন যা চলছে তার কিছুই বদলায় না, তাই ক্রমটি একটি স্পষ্ট up দিয়ে শেষ হয়।

বিভাজন systemd-resolved-এর হাতে রাখুন

ডিফল্ট dnsmasq প্লাগইন কোয়েরিগুলো একটি স্থানীয় রিজলভারে ঢালে, তাই প্রতি-লিংক বিচ্ছেদ মোটা থাকে। systemd-resolved প্রতি লিংকে বিভাজন প্রকাশ করে, আর resolvectl query যে লিংক উত্তর দিয়েছে তার নাম বলে।

systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved NetworkManager
resolvectl query build.corp.example

এরপর কর্পোরেট লিংক corp.example বহন করে আর একটি পাবলিক রিজলভার বাকিটা পরিবেশন করে। কোয়েরি ভুল লিংকে পৌঁছালে কমান্ডটি যে লিংক উত্তর দিয়েছে তার নাম বলে, আর তা জানা শুধু ঠিকানা জানার চেয়ে ভালো।

DNS নকশা টানেলের ধরনের সঙ্গে মেলান

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

তারপর আছে kill switch, যা টানেলের বাইরের DNS আটকায়। টানেলের জোনগুলোর জন্য নাম রিজলভ হয় আর বাকি সব জায়গায় ব্যর্থ হয়, অথচ সংযোগ পুরোপুরি সুস্থ। কাজের উত্তর হলো LAN রিজলভারের জন্য স্পষ্ট অনুমতি বা এমন স্থানীয় ক্যাশ যা শুধু কর্পোরেট জোন ফরোয়ার্ড করে, আর দুটোর যেকোনোটি টানেলের ত্রুটি নয় বরং মালিকসহ একটি ব্যতিক্রম।

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

প্রতি লিংকে যাচাই করুন, তারপর পুনঃসংযোগের পরে আবার

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

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

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