Check-Host.cc

MG (Mail Group) Experimental Checker

MG (Mail Group) রেকর্ডটি ডোমেইন নেম সিস্টেমের মূল ফ্যাব্রিকের মধ্যেই নেটিভলি মেইলিং লিস্ট (mailing list) ফাংশনালিটি বিল্ড করার একটি ইনক্রেডিবলি অ্যাম্বিশাস, প্রারম্ভিক ইঞ্জিনিয়ারিং অ্যাটেম্পট ছিল। অ্যাপ্লিকেশন-লেয়ার মেইলিং লিস্ট ম্যানেজার আসার আগে, নেটওয়ার্ক ইঞ্জিনিয়াররা থিওরাইজ (theorize) করেছিলেন যে ইন্টারনেট ব্যাকবোন জুড়ে গ্রুপ ডিস্ট্রিবিউশন লজিক ডিকটেট (dictate) করতে তারা DNS রেকর্ড ব্যবহার করতে পারেন। কনসেপ্টটিকে RFC 1035-এ সার্ভার-টু-সার্ভার রাউটিং ফেজে বাল্ক ইমেইল ডুপ্লিকেশন (bulk email duplication) হ্যান্ডেল করার জন্য একটি এক্সপেরিমেন্টাল মেকানিজম হিসেবে আউটলাইন করা হয়েছিল।

DNS-Level Payload Duplication

MG রেকর্ডের মেকানিক্স DNS নোড ক্লাস্টারিংয়ের ওপর নির্ভর করত। একজন অ্যাডমিনিস্ট্রেটর একটি সিউডো-ডোমেইন (pseudo-domain) নোড তৈরি করতেন, যেমন dev-team.example.com। এরপর তারা এই সিঙ্গেল নোডটিতে একাধিক MG রেকর্ড অ্যাটাচ করতেন, যেখানে প্রতিটি রেকর্ড এক্সপ্লিসিটলি টিম মেম্বারদের ইন্ডিভিজুয়াল MB (Mailbox) রেকর্ডের দিকে পয়েন্ট করত। যখন কোনো এক্সটারনাল মেইল সার্ভার ঐ গ্রুপ অ্যাড্রেসটিতে একটি ইমেইল পাঠানোর চেষ্টা করত, তখন এটি MG রেকর্ডগুলোর জন্য DNS-এ কোয়েরি করত। Authoritative Nameserver মেম্বারদের ফুল অ্যারে (array) রিটার্ন করত। সেন্ডিং সার্ভারটির এরপর ইমেইল পে-লোডটি ডুপ্লিকেট করার এবং DNS রেসপন্সে লিস্ট করা প্রত্যেকটি মেইলবক্সে মেসেজটি ডেলিভার করার জন্য সেপারেট SMTP কানেকশন ইনিশিয়েট করার কথা ছিল।

The Caching এবং Propagation Failure

DNS ক্যাশিংয়ের ইনহেরেন্ট (inherent) নেচারের কারণে MG প্রোটোকল রিয়েল-ওয়ার্ল্ড ডিপ্লয়মেন্টগুলোতে স্পেকট্যাকুলারলি ফেইল করেছিল। DNS হেভিলি Time-To-Live (TTL) ভ্যালুর ওপর নির্ভর করে, যেখানে ইন্টারমিডিয়েট ISP-গুলো নেটওয়ার্ক লোড কমানোর জন্য 24 থেকে 48 ঘণ্টা পর্যন্ত রেকর্ড ক্যাশ করে রাখে। কোনো ইউজার যদি কোনো মেইলিং লিস্ট থেকে আনসাবস্ক্রাইব করতে চাইত, তবে সিসঅ্যাডমিনকে জোন ফাইল থেকে তার MG রেকর্ডটি ডিলিট করতে হতো। তবে, যেহেতু এক্সটারনাল সার্ভারগুলোর কাছে ওল্ড গ্রুপ লিস্টটি ক্যাশড (cached) অবস্থায় ছিল, তাই গ্লোবাল TTL এক্সপায়ার (expire) হওয়া পর্যন্ত ইউজার দিনের পর দিন বাল্ক ইমেইলগুলো পেতেই থাকত। স্ট্যাটিক DNS জোন এডিট করার মাধ্যমে ডায়নামিক ইউজার সাবস্ক্রিপশন ম্যানেজ করা কম্পিউটেশনালি ইনফিশিয়েন্ট (inefficient) এবং ইউজারদের জন্য হাইলি ফ্রাস্ট্রেটিং ছিল।

Application-Layer Lists এর উত্থান

নেটওয়ার্ক আর্কিটেক্টরা ইউনিভার্সালি এই উপসংহারে পৌঁছেছেন যে মেইলিং লিস্টগুলোর জন্য কমপ্লেক্স স্টেট ম্যানেজমেন্ট (state management) প্রয়োজন—বাউন্স (bounces) হ্যান্ডেল করা, আনসাবস্ক্রাইব লিঙ্ক প্রসেস করা এবং মডারেশন কিউ (moderation queues) ম্যানেজ করা—যাতে এগুলো হ্যান্ডেল করার জন্য DNS কখনোই ডিজাইন করা হয়নি। MG রেকর্ডটি সম্পূর্ণভাবে পরিত্যাগ করা হয়েছে। ইন্ডাস্ট্রি অ্যাপ্লিকেশন-লেভেল লিস্ট ম্যানেজারের দিকে শিফট করেছে, যেমন GNU Mailman, Majordomo, এবং আধুনিক Exchange Distribution Groups। এই অ্যাপ্লিকেশনগুলো একটি স্ট্যান্ডার্ড MX রেকর্ডের পেছনে বসে, একটি সিঙ্গেল ইমেইল পে-লোড রিসিভ করে, এবং গ্লোবাল DNS রাউটিং টেবিল থেকে মেইলিং লিস্ট লজিকটিকে সম্পূর্ণ ডিকাপল (decouple) করে, ইন্টারনাল SQL ডেটাবেস ব্যবহার করে ডুপ্লিকেশন এবং ডিস্ট্রিবিউশন তাৎক্ষণিকভাবে ম্যানেজ করে।