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

উত্তরটি আসলে কী প্রতিষ্ঠা করে

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

এই পার্থক্যই ঠিক করে মেরামত কোথায় পড়বে। যে হোস্টে A রেকর্ড আছে সেখানে AAAA রেকর্ড অনুপস্থিত থাকা মানে হোস্ট অনুপস্থিত নয়, আর সেটির পেছনে সার্টিফিকেট পুনরায় ইস্যু করা বা টানেল পুনর্নির্মাণ করা একমাত্র উপলব্ধ সূত্রটিই নষ্ট করে। এই পার্থক্য পরবর্তী পদক্ষেপের রূপও ঠিক করে: নামকরণের সমস্যা জোনে ঠিক হয়, আর ধরনের সমস্যা সঠিক রেকর্ড চাওয়ার মাধ্যমে বা ঠিকানা পরিবারটি কেবল অনুপস্থিত তা মেনে নেওয়ার মাধ্যমে ঠিক হয়।

ভ্রান্ত ধারণা: ব্যক্তিগত নাম অনুপস্থিত মানে টানেল ব্যর্থ

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

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

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

সঠিক নাম দিয়ে সঠিক রিজলভারকে জিজ্ঞাসা করুন

রায় লেখার আগে উত্তরদাতাকে লিখে রাখুন। যে লুকআপ দেখায় না কোন সার্ভার উত্তর দিয়েছে তা নীতি সমস্যা ও নেমস্পেস সমস্যার পার্থক্য করতে পারে না, আর দুটির মেরামত সম্পর্কহীন।

resolvectl query vpn.internal.example
resolvectl status | grep -A3 'DNS Servers'
dig +search app.intranet.example A
dig @10.8.0.1 app.intranet.example A

প্রথম দুই লাইন দেখায় স্থানীয় রিজলভার কী সিদ্ধান্ত নিয়েছে এবং কাকে জিজ্ঞাসা করবে। +search লুকআপ পুনরুৎপাদন করে অ্যাপ্লিকেশন কী করে যখন এটি সার্চ সাফিক্স যোগ করে, যা প্রায়ই ডায়াগনস্টিক টুলে টাইপ করা কোয়েরির বদলে প্রকৃত কোয়েরি। শেষ লাইনটি ক্লায়েন্ট নীতি এড়িয়ে সরাসরি অভ্যন্তরীণ সার্ভারকে জিজ্ঞাসা করে; যদি তা সফল হয় অথচ সাধারণ লুকআপ ব্যর্থ হয়, জোন ঠিক আছে আর কোয়েরির রাউটিং নেই।

নেতিবাচক ক্যাশিং মেরামতের পরের বিলম্ব ব্যাখ্যা করে

নেতিবাচক উত্তর ডিজাইন অনুসারে ক্যাশ হয়, এবং RFC 2308 বর্ণনা করে কীভাবে নেতিবাচক ক্যাশের আয়ুষ্কাল জোনের কর্তৃত্ব রেকর্ড থেকে উদ্ভূত হয়। তাই একটি রেকর্ড বা রিজলভার নিয়ম সংশোধন করা ক্লায়েন্টে তাৎক্ষণিক পরিবর্তনের নিশ্চয়তা দেয় না, আর ক্যাশ করা উত্তর ফিরিয়ে দেওয়া লুকআপ পুনরায় চেষ্টা করা নতুন কিছু প্রমাণ করে না। কেবল ভিন্ন উত্তরদাতা, ভিন্ন নাম বা পরিষ্কার করা ক্যাশ নতুন প্রমাণ দেয়।

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

নামকে পথ থেকে আলাদা করুন

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

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

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