Check-Host.cc

گلوبل SRV ریکارڈ چیکر

جبکہ معیاری A اور AAAA ریکارڈز ڈومین نیم کو IP ایڈریس میں تبدیل کرنے تک محدود ہیں، SRV (Service) ریکارڈ اس سے کہیں زیادہ پیچیدہ ہے۔ RFC 2782 میں بیان کردہ، SRV ریکارڈ مخصوص نیٹ ورک ایپلیکیشنز کے لیے درست ہوسٹ نیم، پروٹوکول، اور درست پورٹ نمبر (port number) کی وضاحت کرنے کا ایک معیاری طریقہ قائم کرتا ہے۔ وہ انٹرپرائز سروس ڈسکوری کی ریڑھ کی ہڈی ہیں، جو Microsoft Active Directory، SIP/VoIP روٹنگ، XMPP فوری پیغام رسانی، اور بڑے ملٹی پلیئر سرور آرکیٹیکچرز (جیسے _minecraft._tcp.example.com کو resolve کرنا) کے لیے کثرت سے استعمال ہوتے ہیں۔

سنٹیکس (Syntax) اور پورٹ بائنڈنگ

ایک SRV ریکارڈ اپنے سخت فارمیٹنگ ڈھانچے سے فوری طور پر پہچانا جا سکتا ہے۔ ریکارڈ کا نام سروس کو ظاہر کرنے والے انڈر سکور کے ساتھ شروع ہونا چاہیے، اس کے بعد ٹرانسپورٹ پروٹوکول کو ظاہر کرنے والا انڈر سکور، جو بیس ڈومین کے ساتھ منسلک ہوتا ہے (جیسے، _sip._tls.example.com)۔ نتیجہ خیز پے لوڈ (Payload) کنیکٹ ہونے والے کلائنٹ کو چار مخصوص ڈیٹا پوائنٹس فراہم کرتا ہے: ترجیح (Priority)، وزن (Weight)، ہدف کی پورٹ (Port)، اور کینونیکل ٹارگٹ ہوسٹ نیم (Hostname)۔ یہ منتظمین کو غیر معیاری پورٹس کا استعمال کرتے ہوئے ایک ہی IP ایڈریس پر متعدد الگ الگ سروسز چلانے کی اجازت دیتا ہے، بغیر اس کے کہ آخری صارفین کو اپنے کلائنٹس میں پورٹ نمبر یاد رکھنے اور ٹائپ کرنے کی ضرورت پڑے۔

نیٹو فیل اوور (Native Failover) اور ویٹڈ لوڈ بیلنسنگ

SRV ریکارڈ کی سب سے طاقتور خصوصیت اس کی مقامی، کثیر سطحی (multi-tiered) روٹنگ منطق ہے۔ Priority انٹیجر بالکل MX ریکارڈ کی طرح کام کرتا ہے؛ جڑنے والے کلائنٹ ہمیشہ سب سے کم ترجیح والے سرور کے ساتھ پہلے ہینڈ شیک (handshake) گفت و شنید کرنے کی کوشش کریں گے۔ یہ فوری فیل اوور ریڈنڈنسی (Failover Redundancy) قائم کرتا ہے۔ اگر ایک سے زیادہ ریکارڈز بالکل یکساں ترجیح کا اشتراک کرتے ہیں، تو Weight انٹیجر متحرک ہو جاتا ہے۔ یہ متناسب (proportional) لوڈ بیلنسر کے طور پر کام کرتا ہے۔ اگر سرور اے کا وزن 75 اور سرور بی کا وزن 25 ہے، تو کلائنٹ ایپلیکیشن 75% نئے کنکشنز کو سرور اے پر روٹ کرے گی۔ اس سے انجینئرز کو ہارڈویئر کی مختلف صلاحیتوں کے کلسٹرز میں ذہانت سے ٹریفک روٹ کرنے کی اجازت ملتی ہے۔

HTTP کیوں SRV ریکارڈز کو نظر انداز کرتا ہے

جونیئر ڈویلپرز کی طرف سے ایک عام سوال یہ ہے کہ ویب ٹریفک (HTTP/HTTPS) مقامی لوڈ بیلنسنگ حاصل کرنے کے لیے SRV ریکارڈ کیوں استعمال نہیں کرتا ہے۔ اس کا جواب خالصتاً تاریخی ہے۔ جب تک SRV ریکارڈز کو معیاری بنایا گیا تھا، تب تک پورٹ 80 پر سختی سے کام کرنے والے HTTP اور پورٹ 443 پر HTTPS کے آرکیٹیکچرل کنونشنز (architectural conventions) پہلے سے ہی ہر ویب براؤزر میں عالمی طور پر ہارڈ کوڈ کیے جا چکے تھے۔ ویب کو SRV لک اپس پر منتقل کرنے سے معمولی فائدے کے لیے بڑے پیمانے پر ریزولوشن جرمانہ (resolution penalty) شامل ہو جاتا (جس کے لیے اضافی راؤنڈ ٹرپس کی ضرورت ہوتی ہے)۔ اس کے بجائے، HTTP ایپلیکیشن-لیئر لوڈ بیلنسرز اور Anycast IP روٹنگ پر انحصار کرتا ہے۔