Check-Host.cc

Start of Authority (SOA) Checker

SOA (Start of Authority) রেকর্ড যেকোনো DNS জোনের অ্যাডমিনিস্ট্রেটিভ হার্ট হিসেবে কাজ করে। এটি একটি বাধ্যতামূলক রেকর্ড; একটি ভ্যালিড SOA ছাড়া, গ্লোবাল রাউটিং টেবিলে ডোমেইনটির কোনো অস্তিত্ব থাকে না। SOA পে-লোড ডোমেইনের কোর অপারেশনাল প্যারামিটারগুলো নির্দেশ করে, যেমন কোন সার্ভারটি ট্রুথের ডেফিনিটিভ সোর্স, কে এটি ম্যানেজ করে, এবং কঠোর টাইমিং মেকানিজম যা নির্দেশ করে কীভাবে সেকেন্ডারি, রিডানড্যান্ট (redundant) নেমসার্ভারগুলো জোন ডেটা রেপ্লিকেট (replicate) করে।

Zone Serial Number এবং State Replication

SOA পে-লোডের সবচেয়ে ক্রিটিক্যাল ইন্টিজার হলো Serial Number। ইন্ডাস্ট্রি কনভেনশন অনুযায়ী, এটিকে প্রায়শই একটি ডেট-স্ট্যাম্প হিসেবে ফরম্যাট করা হয় (যেমন, 24 অক্টোবর, 2023-এর প্রথম পরিবর্তনের জন্য 2023102401)। প্রতিবার কোনো অ্যাডমিনিস্ট্রেটর একটি A, MX, বা TXT রেকর্ড মডিফাই করলে, এই সিরিয়াল নাম্বার অবশ্যই ইনক্রিমেন্ট (increment) করতে হবে। সেকেন্ডারি (স্লেভ) নেমসার্ভারগুলো রুটিন মাফিক প্রাইমারি সার্ভারের SOA রেকর্ডে পোল (poll) করে। তারা যদি তাদের লোকাল ক্যাশে স্টোর করা নাম্বারের চেয়ে বড় কোনো সিরিয়াল নাম্বার ডিটেক্ট করে, তবে এটি আপডেট করা রাউটিং টেবিলগুলো পুল (pull) করার জন্য একটি তাৎক্ষণিক AXFR বা IXFR জোন ট্রান্সফার ট্রিগার করে। এডিট করার সময় যদি সিরিয়াল ইনক্রিমেন্ট করা না হয়, তবে সেকেন্ডারি সার্ভারগুলো কখনও সিঙ্ক (sync) হবে না, যার ফলে ফ্র্যাকচার্ড, ইনকনসিস্টেন্ট DNS রেসপন্স পাওয়া যাবে।

অ্যাডমিনিস্ট্রেটিভ টাইমিং: Refresh, Retry, এবং Expire

SOA রেকর্ড তিনটি স্পেসিফিক টাইমার ডিফাইন করে যা জোনের রেজিলিয়েন্স (resilience) নিয়ন্ত্রণ করে:

  • Refresh: যে ইন্টারভালে (সেকেন্ডে) সেকেন্ডারি সার্ভারগুলো সিরিয়াল পরিবর্তনের জন্য প্রাইমারি সার্ভারকে পোল করার আগে অপেক্ষা করে।
  • Retry: পোলের সময় যদি প্রাইমারি সার্ভার অফলাইনে থাকে, তবে সেকেন্ডারি সার্ভার পুনরায় চেষ্টা করার আগে কতক্ষণ অপেক্ষা করবে তা এটি ডিফাইন করে।
  • Expire: প্রাইমারি সার্ভার স্থায়ীভাবে অফলাইনে চলে গেলে একটি সেকেন্ডারি সার্ভার সর্বোচ্চ কত সময় পর্যন্ত ক্যাশড রেকর্ড সার্ভ করতে থাকবে। এই টাইমারে পৌঁছে গেলে, সেকেন্ডারি সার্ভার কোয়েরির উত্তর দেওয়া বন্ধ করে দেয়, মারাত্মকভাবে পুরোনো ডেটা সার্ভ করা রোধ করতে ডোমেইনটিকে কার্যকরভাবে ডাউন করে দেয়।

Negative Caching এবং Minimum TTL

SOA রেকর্ডের একটি প্রায়শই ভুল বোঝা প্যারামিটার হলো Minimum TTL ভ্যালু। ঐতিহাসিকভাবে একটি বেসলাইন ক্যাশিং টাইম সেট করার জন্য ব্যবহৃত হলেও, RFC 2308 এই ইন্টিজারটিকে এক্সক্লুসিভলি Negative Caching-এর জন্য পুনরায় ব্যবহার করেছে। যদি কোনো ব্যবহারকারী এমন কোনো সাবডোমেইনে কোয়েরি করে যার অস্তিত্ব নেই (যেমন, fake.example.com), তবে Authoritative Server একটি NXDOMAIN এরর দিয়ে রেসপন্স করে। রিজলভার SOA Minimum TTL ব্যবহার করে নির্ধারণ করে যে ঐ ফেইলরটি ঠিক কতক্ষণ ক্যাশ করতে হবে। কোনো অ্যাডমিন যদি দ্রুত টাইপো ফিক্স করে তবে লো ভ্যালু (Low value) দীর্ঘায়িত আউটএজ (outages) রোধ করে, অন্যদিকে হাই ভ্যালু (high value) Authoritative Server-কে র‍্যান্ডম, অস্তিত্বহীন সাবডোমেইনে কোয়েরি করা DDoS ফ্লাড থেকে রক্ষা করে।