Check-Host.cc

Global SRV Record Checker

স্ট্যান্ডার্ড A এবং AAAA রেকর্ডগুলো যেখানে একটি ডোমেইন নেমকে IP অ্যাড্রেসে রূপান্তর করার মধ্যে সীমাবদ্ধ, সেখানে SRV (Service) রেকর্ড এর চেয়ে অনেক বেশি জটিল। RFC 2782-তে সংজ্ঞায়িত, SRV রেকর্ড নির্দিষ্ট নেটওয়ার্ক অ্যাপ্লিকেশনগুলোর জন্য সঠিক হোস্টনেম, প্রোটোকল, এবং সুনির্দিষ্ট পোর্ট নাম্বার ডিফাইন করার একটি প্রমিত উপায় স্থাপন করে। এগুলো হলো এন্টারপ্রাইজ সার্ভিস ডিসকভারির মেরুদণ্ড, যা Microsoft Active Directory, SIP/VoIP রাউটিং, XMPP ইনস্ট্যান্ট মেসেজিং, এবং বিশাল মাল্টিপ্লেয়ার সার্ভার আর্কিটেকচারের (যেমন _minecraft._tcp.example.com রিজলভ করা) জন্য ব্যাপকভাবে ব্যবহৃত হয়।

Syntax এবং Port Binding

একটি SRV রেকর্ডকে এর কঠোর ফরম্যাটিং স্ট্রাকচার দিয়ে তাৎক্ষণিকভাবে চেনা যায়। রেকর্ডের নামটি অবশ্যই সার্ভিস নির্দেশকারী একটি আন্ডারস্কোর (underscore) দিয়ে শুরু হতে হবে, এরপর ট্রান্সপোর্ট প্রোটোকল নির্দেশকারী একটি আন্ডারস্কোর থাকবে, এবং বেস ডোমেইনের সাথে যুক্ত হবে (যেমন, _sip._tls.example.com)। ফলাফলস্বরূপ আসা পে-লোডটি কানেক্টিং ক্লায়েন্টকে চারটি স্পেসিফিক ডেটা পয়েন্ট প্রদান করে: প্রায়োরিটি (Priority), ওয়েট (Weight), টার্গেট পোর্ট (Port), এবং ক্যানোনিকাল টার্গেট হোস্টনেম (Hostname)। এটি অ্যাডমিনিস্ট্রেটরদের নন-স্ট্যান্ডার্ড পোর্ট ব্যবহার করে একটি সিঙ্গেল IP অ্যাড্রেসে একাধিক আলাদা সার্ভিস চালানোর অনুমতি দেয়, এন্ড-ইউজারদের তাদের ক্লায়েন্টে পোর্ট নাম্বার মুখস্থ করা বা টাইপ করার প্রয়োজন ছাড়াই।

Native Failover এবং Weighted Load Balancing

SRV রেকর্ডের সবচেয়ে শক্তিশালী ফিচার হলো এর নেটিভ, মাল্টি-টায়ার্ড (multi-tiered) রাউটিং লজিক। Priority ইন্টিজারটি ঠিক একটি MX রেকর্ডের মতো কাজ করে; কানেক্টিং ক্লায়েন্টরা সর্বদা প্রথমে সর্বনিম্ন প্রায়োরিটির সার্ভারের সাথে হ্যান্ডশেক নেগোশিয়েট করার চেষ্টা করবে। এটি ইমিডিয়েট ফেইলওভার রিডানড্যান্সি (Failover Redundancy) এস্টাবলিশ করে। একাধিক রেকর্ড যদি ঠিক একই প্রায়োরিটি শেয়ার করে, তবে Weight ইন্টিজারটি ট্রিগার হয়। এটি একটি প্রোপোরশনাল লোড ব্যালেন্সার হিসেবে কাজ করে। যদি সার্ভার A এর ওয়েট 75 হয় এবং সার্ভার B এর ওয়েট 25 হয়, তবে ক্লায়েন্ট অ্যাপ্লিকেশন নতুন কানেকশনের 75% সার্ভার A তে রাউট করবে। এটি ইঞ্জিনিয়ারদের বিভিন্ন হার্ডওয়্যার ক্যাপাসিটির ক্লাস্টার জুড়ে বুদ্ধিমত্তার সাথে ট্রাফিক রাউট করার সুযোগ দেয়।

কেন HTTP SRV রেকর্ড ইগনোর করে

জুনিয়র ডেভেলপারদের একটি সাধারণ প্রশ্ন হলো কেন ওয়েব ট্রাফিক (HTTP/HTTPS) নেটিভ লোড ব্যালেন্সিং অর্জনের জন্য SRV রেকর্ড ব্যবহার করে না। উত্তরটি সম্পূর্ণ ঐতিহাসিক। যখন SRV রেকর্ড স্ট্যান্ডার্ডাইজ করা হয়েছিল, ততদিনে কঠোরভাবে পোর্ট 80-তে অপারেট করা HTTP এবং পোর্ট 443-এ HTTPS এর আর্কিটেকচারাল কনভেনশন (Architectural conventions) ইতোমধ্যেই ইউনিভার্সালি প্রতিটি ওয়েব ব্রাউজারে হার্ডকোড করা হয়ে গিয়েছিল। ওয়েবকে SRV লুকআপে শিফট করলে নামমাত্র বেনিফিটের জন্য বিশাল রেজোলিউশন পেনাল্টি (অতিরিক্ত রাউণ্ড-ট্রিপের প্রয়োজন) যুক্ত হতো। এর বদলে, HTTP অ্যাপ্লিকেশন-লেয়ার লোড ব্যালেন্সার এবং Anycast IP রাউটিংয়ের ওপর নির্ভর করে।